ADR-073 ActifActive

npm scope correction: `@agentica` → `@agentica-ds` (amends ADR-072)

DateDate
2026-07-16
DécideursDecision makers
Design System Lead

Context

ADR-072 (2026-07-15) decided to publish Agentica as @agentica/tokens and @agentica/components, based on a registry check that found @agentica/tokens and @agentica/components both returning 404, with no npm user or organization named agentica apparently existing.

That check only tested the two specific package names — it did not confirm whether the agentica scope itself (the npm organization) was unclaimed. On 2026-07-16, while creating the npm organization through the web UI, the "Create" action for agentica failed. Querying the public registry directly confirmed why:

GET https://registry.npmjs.org/-/org/agentica/package
→ 200 {"@agentica/core":"write","@agentica/rpc":"write","@agentica/benchmark":"write",
       "@agentica/chat":"write","@agentica/pg-selector":"write", ...}

The agentica scope is already claimed by an unrelated, pre-existing open-source AI agent framework, publishing under package names (core, rpc, benchmark, chat, pg-selector, openai-vector-store, pg-vector-selector, vector-selector, prompt-jsx) that happened not to collide with tokens or components — which is why the ADR-072 check passed without detecting the conflict. A package-name-availability check is not a scope-availability check.

Decision

The npm scope is corrected to @agentica-ds. Packages become @agentica-ds/tokens and @agentica-ds/components.

Verified genuinely unclaimed (not just empty) via the same registry endpoint, compared against both the existing agentica org and a deliberately nonexistent scope:

ScopeGET /-/org/{scope}/package
agentica (existing, unrelated org)200 — 9 packages
agentica-ds (chosen)200{} (org shape, zero packages)
a deliberately nonexistent scope404{"error":"Scope not found"}

@agentica-ds/tokens and @agentica-ds/components individually also return 404. The npm organization agentica-ds was created 2026-07-16 (owner: gnegreiros, free "Unlimited public packages" plan, 2FA enabled on the account).

Alternatives considered: agentica-design (rejected — longer, no added clarity over -ds) and agtc (rejected — matches the existing CSS/component prefix, but reads as opaque outside the codebase; -ds is a conventional, self-explanatory design-system suffix).

Every other decision in ADR-072 is unchanged: the two-package split, ESM-only, npm workspaces (not pnpm), Changesets, site/ depending on both packages via "workspace:*", and the npm organization (not a personal account) owning the scope.

Rejected alternatives

AlternativeReason for rejection
agentica-designLonger than agentica-ds with no clarity gain; both are equally unambiguous.
agtcMatches the existing internal prefix (agtc-button, --agtc-*) but is opaque to an external consumer browsing npm; -ds is a recognizable, conventional suffix.
Keep @agentica and contact the existing org's owner about the nameNo contact path evidenced, no guarantee of a response, and blocks the "publication npm" initiative on a third party for no architectural benefit.

Consequences

For AI agents:

@agentica-ds/tokens and @agentica-ds/components — never @agentica/*.

ADR-072 (packages/tokens/, packages/components/, workspace wiring) had not been implemented yet, so the scope was caught before it touched any file.

For developers:

ADR-072 — only the scope string changes.

For designers:

Accepted cost:

product name (Agentica) and the site domain (agentica.design). Judged acceptable: the -ds suffix is a standard, self-explanatory disambiguator, and the alternative (disputing the agentica scope with an unrelated project) was rejected above.

Incidents or triggers

Caught 2026-07-16 during npm organization creation: the agentica org creation failed in the npm web UI. Root-caused by querying the public registry API (registry.npmjs.org/-/org/{scope}/package) instead of relying on the UI error message alone, which distinguished "scope taken by another org" from a generic loading error.

← ADR-072 ADR-074 →