Back to Everything Claude Code

ECC v2.0.0-rc.1 Naming And Publication Matrix

docs/releases/2.0.0-rc.1/naming-and-publication-matrix.md

2.0.012.6 KB
Original Source

ECC v2.0.0-rc.1 Naming And Publication Matrix

Snapshot date: 2026-05-19. Publication state refreshed 2026-05-26 after the GitHub prerelease and npm next readbacks succeeded.

This matrix records the rc.1 identity after the public repository rename to affaan-m/ECC. It is evidence for planning, not a publication action.

Decision

For v2.0.0-rc.1, ship the public identity as ECC.

Use affaan-m/ECC as the canonical GitHub repo and ECC as the product name in copy, plugin slugs, status surfaces, diagrams, and release collateral. Keep the npm package and package entry points as ecc-universal until a separate post-rc migration plan exists.

Reason:

  • the current install surface already works as ecc-universal plus the ecc plugin slug;
  • the exact npm package name ecc is already occupied by an unrelated elliptic curve cryptography package;
  • affaan-m/ECC is the live public GitHub repo;
  • Claude and Codex plugin surfaces are already short enough as ecc;
  • rc.1 should prove the release, plugin, and publication pipeline before any npm/package rename.

Current Values

SurfaceCurrent valueEvidence commandCurrent resultRelease decision
Product display nameECCrg -n "^# ECC|displayName.*ECC|affaan-m/ECC" README.md .codex-plugin/plugin.json docs/releases/2.0.0-rc.1Present across README, plugin manifests, release copy, and URL ledgerKeep for rc.1 and GA
GitHub repoaffaan-m/ECCgit remote get-url originhttps://github.com/affaan-m/ECC.gitKeep for rc.1 and GA
npm packageecc-universalnode -p "require('./package.json').name"ecc-universalKeep for rc.1
npm package version2.0.0-rc.1 local, 1.10.0 registry latest, 2.0.0-rc.1 registry nextnode -p "require('./package.json').version" and npm view ecc-universal name version dist-tags --jsonLocal rc.1 is ready; registry latest remains 1.10.0; next points to 2.0.0-rc.1Keep rc on next, not latest
Exact npm short nameeccnpm view ecc name version description repository.url --jsonOccupied by [email protected], "Elliptic curve cryptography functions."Do not use
Scoped npm short name@affaan-m/eccnpm view @affaan-m/ecc name version --jsonRegistry 404Possible future scoped package if npm scope policy permits
Former package nameeverything-claude-codenpm view everything-claude-code name version dist-tags --jsonRegistry reports unpublished on 2026-02-07Do not revive for rc.1
Claude plugin slugeccnode -p "require('./.claude-plugin/plugin.json').name"eccKeep
Claude plugin version2.0.0-rc.1claude plugin validate .claude-plugin/plugin.json; claude plugin tag .claude-plugin --dry-runValidation passed on Claude Code 2.1.143; dry run would create ecc--v2.0.0-rc.1Ready for release-tag gate
Claude marketplace entryecc.claude-plugin/marketplace.json; claude plugin marketplace add --help; Anthropic plugin marketplace docsVersion and repo point at current rc.1 surface; GitHub, git URL, remote marketplace JSON, and local path marketplace sources are supportedKeep
Codex plugin slugeccnode -p "require('./.codex-plugin/plugin.json').name"eccKeep
Codex plugin version2.0.0-rc.1node tests/plugin-manifest.test.js; node tests/docs/ecc2-release-surface.test.jsPlugin manifest passed 54/54; release surface passed 21/21 on Codex CLI 0.131.0Ready for Codex marketplace/manual marketplace gate
Codex repo marketplaceecc.agents/plugins/marketplace.json; codex plugin marketplace add --help; OpenAI Codex plugin docsRepo marketplace add supports GitHub shorthand, Git URLs, SSH URLs, local roots, --ref, and --sparse; local and GitHub-ref temp-home add smokes passedUse as rc.1 Codex distribution path
OpenCode packageecc-universalnode -p "require('./.opencode/package.json').name"ecc-universalKeep
OpenCode buildGenerated package outputnpm run build:opencodePassedReady for package dry-run gate
npm pack surfaceReduced runtime packageNPM_CONFIG_USERCONFIG=/dev/null npm pack --dry-run --jsonProduced ecc-universal-2.0.0-rc.1.tgz, 2228 entries, 4,348,504 bytes packed, 13,024,929 bytes unpackedNeeds final release-commit rerun

Publication Paths

PathCurrent evidenceRequired next actionBlocker
GitHub releasev2.0.0-rc.1 prerelease is live at https://github.com/affaan-m/ECC/releases/tag/v2.0.0-rc.1Keep release notes aligned with the URL ledger; rerun evidence before any follow-up release editRemaining plugin, video, billing, and outbound URLs still gated
npm[email protected] is live on next; registry latest remains 1.10.0Keep rc on next; do not move latest before GA approvalRemaining plugin, video, billing, and outbound URLs still gated
Claude pluginclaude plugin validate .claude-plugin/plugin.json passed; claude plugin tag --help confirms the release tag flow creates {name}--v{version} tags and can push themRun claude plugin tag .claude-plugin --dry-run from the clean release commit, then tag/push only after release approvalNo plugin release tag created in this pass
Claude marketplace.claude-plugin/marketplace.json points at ecc and the public repoVerify marketplace update/install path after tag existsExternal marketplace propagation not verified
Codex plugincodex plugin marketplace supports local and Git marketplace sources; .codex-plugin/plugin.json is present; .agents/plugins/marketplace.json exposes ecc from the repo root; temp-home local and GitHub-ref marketplace adds passedPublish rc.1 docs with the repo-marketplace command, then monitor OpenAI's official Plugin Directory pathDo not claim official Plugin Directory listing before OpenAI submission evidence
OpenCode package.opencode/package.json builds from source and ships inside npm packageRe-run npm run build:opencode and package dry-run from release commitOpenCode CLI 1.2.21 does not expose a separate plugin publication command in this pass
ECC Tools billing claimREADME and launch copy mention ECC Tools / marketplace contextECC-Tools #89/#90/#91 add selected-target billing readback, selected-target announcement gating, and ignored --env-file support; #92 adds the non-breaking operator bearer path; #93 records the live selected-target gate passBilling evidence ready; repeat the live selected-target gate before any payment announcement
Social and longform copyX thread, LinkedIn copy, article outline, GitHub release copy existReplace stale URLs and publish only after the remaining plugin/video/billing/outbound gates are approvedGitHub prerelease and npm URLs are live; plugin, video, billing, and outbound URLs are not final

ITO-46 Blocker Register

ChannelCurrent statusRequired metadata/evidenceOwnerBlocker or follow-up
GitHub releaseLive prerelease at https://github.com/affaan-m/ECC/releases/tag/v2.0.0-rc.1Tag, release URL, prerelease flag, final release notes, URL ledgerRelease ownerKeep release edits behind final evidence and owner approval
npm[email protected] is published on next; registry latest is 1.10.0Pack summary, publish readback, next dist-tag readback, registry signature evidencePackage ownerDo not move rc.1 to latest before GA approval
Short npm nameecc is occupied; @affaan-m/ecc returns 404Name availability outputs and migration planRelease ownerKeep ecc-universal for rc.1; scoped rename is post-rc only
Claude plugin[email protected] validates; tag dry run would create ecc--v2.0.0-rc.1claude plugin validate ., claude plugin tag .claude-plugin --dry-run, marketplace install/update smokePlugin ownerReal tag push and marketplace propagation require release approval
Claude marketplaceDocs and CLI support GitHub, git URL, remote marketplace JSON, and local path sourcesPublic repo marketplace JSON, support/contact metadata, post-tag install smokePlugin ownerNo external official listing has been submitted in this pass
Codex repo marketplaceLocal and GitHub-ref temp-home marketplace add smokes passed on Codex CLI 0.131.0.codex-plugin/plugin.json, .agents/plugins/marketplace.json, repo/personal marketplace evidencePlugin ownerOfficial Plugin Directory listing requires OpenAI submission/listing evidence
Codex official Plugin DirectoryOpenAI docs describe the curated official directory; ECC has not submitted or received listing evidenceDirectory submission link or OpenAI approval path once availablePlugin ownerTrack as an ITO-56/ITO-46 follow-up; do not claim an official listing
OpenCode packagenpm run build:opencode passedBuilt .opencode package metadata inside npm tarballPackage ownerNo separate public plugin channel identified; follows npm
Billing/native paymentsMarketplace Pro target readback, selected-target announcement preflight, env-file operator path, non-breaking operator bearer, and live selected-target gate have passed2026-05-20 selected-target readback, webhook provenance, selected-target announcement gate, ECC-Tools #91 --env-file support, ECC-Tools #92 operator bearer, ECC-Tools #93 live gate evidenceECC Tools ownerRepeat the live gate immediately before rc.1 announcement; final copy still waits on release/plugin/live URL approvals
Social/longform copyDrafts exist; GitHub and npm links are liveFinal live GitHub, npm, Claude, Codex, video, and billing URLsRelease ownerPublish only after remaining plugin/video/billing/outbound approvals exist

Package Rename After rc.1

If the package layer moves from ecc-universal toward a shorter npm surface after rc.1, do it as a staged migration:

  1. Keep ecc-universal as the npm package until a replacement package has a verified owner, deprecation plan, and install migration.
  2. Keep affaan-m/ECC as the canonical repo for public docs, release notes, plugin marketplace entries, npm metadata, and external links.
  3. Reserve or create any new npm/package surfaces before announcing the package rename.
  4. Ship a compatibility guide that maps old commands, package names, plugin slugs, and docs URLs to the new names.

Evidence Captured In This Pass

text
git rev-parse HEAD
67e63e63f9bfd074bd6a21bf6bac71f3dfefa58b

node -p "require('./package.json').name + '@' + require('./package.json').version"
[email protected]

node -p "require('./.claude-plugin/plugin.json').name + '@' + require('./.claude-plugin/plugin.json').version"
[email protected]

node -p "require('./.codex-plugin/plugin.json').name + '@' + require('./.codex-plugin/plugin.json').version"
[email protected]

node -p "require('./.opencode/package.json').name + '@' + require('./.opencode/package.json').version"
[email protected]

npm view ecc name version description repository.url --json
[email protected] is occupied by an unrelated elliptic curve cryptography package.

npm view ecc-universal name version dist-tags --json
registry latest is 1.10.0; next is 2.0.0-rc.1.

npm view [email protected] name version dist.tarball dist.integrity time --json
registry returned version 2.0.0-rc.1, the rc tarball URL, and published time
2026-05-26T00:36:22.940Z.

claude plugin validate .claude-plugin/plugin.json
Validation passed on Claude Code 2.1.143.

claude plugin validate .
Validation passed with one warning: root CLAUDE.md is not loaded as plugin
context; ship plugin context through skills instead.

claude plugin tag .claude-plugin --dry-run
Would create and push tag ecc--v2.0.0-rc.1.

node tests/docs/ecc2-release-surface.test.js
21 release-surface checks passed.

node tests/plugin-manifest.test.js
54 plugin-manifest checks passed.

npm run build:opencode
Passed.

npm pack --dry-run --json
Produced ecc-universal-2.0.0-rc.1.tgz, 2228 entries, 4,348,504 bytes
packed, and 13,024,929 bytes unpacked.

npm publish --tag next --dry-run
Dry run would publish [email protected] to npm with tag next.

codex plugin marketplace add --help
Supports GitHub shorthand, HTTP(S) Git URLs, SSH URLs, local marketplace roots,
--ref, and Git-only --sparse.

HOME="$(mktemp -d)" codex plugin marketplace add <local-checkout>
Added marketplace ecc and recorded the installed marketplace root as
<local-checkout> without touching the real Codex config.

HOME="$(mktemp -d)" codex plugin marketplace add affaan-m/ECC --ref "$(git rev-parse HEAD)"
Added marketplace ecc from the GitHub repo pinned to
67e63e63f9bfd074bd6a21bf6bac71f3dfefa58b without touching the real Codex
config.