mirror of
https://github.com/affaan-m/everything-claude-code.git
synced 2026-05-20 07:43:07 +08:00
120 lines
8.1 KiB
Markdown
120 lines
8.1 KiB
Markdown
# ECC v2.0.0-rc.1 Release Name And Plugin Publication Checklist
|
|
|
|
Snapshot date: 2026-05-18. Canonical repo decision refreshed 2026-05-19
|
|
after the public repo rename to `affaan-m/ECC`.
|
|
|
|
This checklist is the operator gate for release naming, package publication,
|
|
and Claude/Codex plugin distribution. It is not a publication action by itself.
|
|
Run it from the exact release commit before creating tags, publishing npm,
|
|
submitting marketplace forms, or posting announcements.
|
|
|
|
## Fixed rc.1 Decision
|
|
|
|
Ship `v2.0.0-rc.1` as **ECC**.
|
|
|
|
- Keep the GitHub repo at `affaan-m/ECC`.
|
|
- Keep the npm package as `ecc-universal`.
|
|
- Keep Claude and Codex plugin slugs as `ecc`.
|
|
- Publish the npm prerelease on the `next` dist-tag, not `latest`.
|
|
- Do not rename the npm package to `ecc` or `@affaan-m/ecc` before rc.1.
|
|
- Treat `affaan-m/ECC` as the canonical public repo for rc.1 and GA release
|
|
copy.
|
|
|
|
Reasons:
|
|
|
|
- `ecc-universal` is the current working install and package surface.
|
|
- `ecc` on npm is occupied by an unrelated elliptic-curve package.
|
|
- `@affaan-m/ecc` is unclaimed on npm, but would require a migration plan.
|
|
- `affaan-m/ECC` is now the live public GitHub repo.
|
|
- Claude and Codex already expose the desired short namespace as `ecc`.
|
|
|
|
## Current Surface Evidence
|
|
|
|
| Surface | Current value | Evidence command | 2026-05-18 result | Release action |
|
|
| --- | --- | --- | --- | --- |
|
|
| Git commit | `67e63e63f9bfd074bd6a21bf6bac71f3dfefa58b` | `git rev-parse HEAD` | Recorded from clean `main` before this ITO-46 evidence refresh | Re-run from final release commit |
|
|
| GitHub repo | `affaan-m/ECC` | `git remote get-url origin` | `https://github.com/affaan-m/ECC.git` | Keep for rc.1 and GA |
|
|
| npm package | `ecc-universal@2.0.0-rc.1` local, `1.10.0` registry latest | `node -p "require('./package.json').name + '@' + require('./package.json').version"` and `npm view ecc-universal name version dist-tags --json` | Local rc.1 ready; registry still latest `1.10.0` | Publish rc.1 with `--tag next` after approval |
|
|
| Exact npm short name | `ecc` | `npm view ecc name version description repository.url --json` | Occupied by unrelated `ecc@0.0.2` | Do not use |
|
|
| Scoped npm short name | `@affaan-m/ecc` | `npm view @affaan-m/ecc name version --json` | 404 | Candidate only after migration plan |
|
|
| Claude plugin | `ecc@2.0.0-rc.1` | `claude plugin validate .claude-plugin/plugin.json`; `claude plugin validate .`; `claude plugin tag .claude-plugin --dry-run` | Validation passed on Claude Code `2.1.143`; full plugin validation has one expected root `CLAUDE.md` context warning; dry run would create `ecc--v2.0.0-rc.1` | Run dry-run tag again from the final commit, then tag/push only after approval |
|
|
| Claude marketplace | `.claude-plugin/marketplace.json` | `claude plugin marketplace add --help`; Anthropic plugin marketplace docs | GitHub repo, git URL, remote marketplace JSON, and local path marketplace sources are supported | Verify post-tag marketplace install/update path after final evidence |
|
|
| Codex plugin | `ecc@2.0.0-rc.1` | `node tests/plugin-manifest.test.js`; `codex plugin marketplace add --help`; OpenAI Codex plugin docs | Plugin manifest passed 54/54; local and GitHub-ref repo marketplace smokes passed on Codex CLI `0.131.0` | Use repo marketplace for rc.1; do not claim official directory listing until OpenAI publishing path is available |
|
|
| OpenCode package | `ecc-universal@2.0.0-rc.1` | `node -p "require('./.opencode/package.json').name + '@' + require('./.opencode/package.json').version"` | Matches rc.1 package identity | Follow npm package publication |
|
|
| Billing claim | Pending ECC Tools readiness | ECC Tools billing gate and Marketplace account readback | Code-side gate exists; live Marketplace account readback still pending | Do not announce native payments |
|
|
|
|
## Required Gate
|
|
|
|
Run these checks from the final release commit and paste the exact output into
|
|
a fresh `publication-evidence-YYYY-MM-DD.md` file before release actions:
|
|
|
|
```bash
|
|
git status --short --branch
|
|
git rev-parse HEAD
|
|
git remote get-url origin
|
|
npm view ecc name version description repository.url --json
|
|
npm view @affaan-m/ecc name version --json
|
|
npm view ecc-universal name version dist-tags --json
|
|
node tests/plugin-manifest.test.js
|
|
node tests/docs/ecc2-release-surface.test.js
|
|
claude plugin validate .claude-plugin/plugin.json
|
|
claude plugin tag .claude-plugin --dry-run
|
|
codex plugin marketplace add --help
|
|
HOME="$(mktemp -d)" codex plugin marketplace add ./
|
|
HOME="$(mktemp -d)" codex plugin marketplace add affaan-m/ECC --ref "$(git rev-parse HEAD)"
|
|
npm pack --dry-run --json
|
|
npm publish --tag next --dry-run
|
|
npm run build:opencode
|
|
npm run preview-pack:smoke
|
|
npm run release:approval-gate -- --format json
|
|
```
|
|
|
|
If a command is unavailable on the release machine, record the exact error and
|
|
keep the related publication action blocked.
|
|
|
|
## Publication Order
|
|
|
|
| Step | Action | Required evidence | Stop condition |
|
|
| --- | --- | --- | --- |
|
|
| 1 | Freeze name and version | Package, Claude plugin, Codex plugin, OpenCode package, `VERSION`, and release docs all say `2.0.0-rc.1` | Any `preview`/`rc.1` mismatch |
|
|
| 2 | Verify clean release branch | `git status --short --branch` shows only the intended release commit and no unrelated drift | Any unexplained dirty file |
|
|
| 3 | Verify package and plugin manifests | `node tests/plugin-manifest.test.js` and `node tests/docs/ecc2-release-surface.test.js` pass | Manifest or release-surface failure |
|
|
| 4 | Dry-run package surface | `npm pack --dry-run --json`; `npm publish --tag next --dry-run` | Missing files, wrong dist-tag, or publish dry-run failure |
|
|
| 5 | Dry-run Claude distribution | `claude plugin validate`; `claude plugin tag .claude-plugin --dry-run`; marketplace source/help evidence | Validation, tag, or install-smoke failure |
|
|
| 6 | Verify Codex repo marketplace | `codex plugin marketplace add --help`; temp-home local and GitHub-ref repo marketplace add smoke; OpenAI official directory status recorded | Missing repo marketplace or unverified official-directory status |
|
|
| 7 | Verify OpenCode package | `npm run build:opencode` | Build failure |
|
|
| 8 | Regenerate release URL ledger | Live and approval-gated URLs separated in `release-url-ledger-YYYY-MM-DD.md` | Placeholder, private URL, or announcement URL drift |
|
|
| 9 | Create GitHub prerelease | `gh release view v2.0.0-rc.1 --json tagName,url,isPrerelease` | Missing URL or wrong prerelease flag |
|
|
| 10 | Publish npm rc | `npm view ecc-universal version dist-tags --json` shows rc.1 on `next` | rc.1 lands on `latest` or registry output is unclear |
|
|
| 11 | Publish/plugin-submit | Claude official submission and Codex repo marketplace evidence recorded | Form not submitted, listing not visible, or docs status changed |
|
|
| 12 | Announce | X, LinkedIn, GitHub release, and longform copy use final live URLs | Any final URL is still pending |
|
|
|
|
## Do Not Proceed
|
|
|
|
- Do not publish npm before `npm pack --dry-run --json` is captured from the
|
|
final release commit.
|
|
- Do not create or push Claude plugin tags before `claude plugin tag
|
|
.claude-plugin --dry-run` passes from the final release commit.
|
|
- Do not claim an official Codex Plugin Directory listing unless OpenAI
|
|
documents a public submission path or confirms the plugin has been listed.
|
|
- Do not announce billing, Marketplace, or native payments until ECC Tools live
|
|
Marketplace account readback returns ready.
|
|
- Do not rename the npm package until rc.1 is published and a migration guide
|
|
maps old install names to new names.
|
|
- Do not post social copy while any release, npm, plugin, or billing URL is
|
|
still approval-gated.
|
|
|
|
## External Distribution Sources
|
|
|
|
- Anthropic Claude Code plugin docs: `https://code.claude.com/docs/en/plugins`
|
|
- Anthropic Claude Code marketplace docs:
|
|
`https://code.claude.com/docs/en/plugin-marketplaces`
|
|
- OpenAI Codex plugin docs:
|
|
`https://developers.openai.com/codex/plugins/build#add-a-marketplace-from-the-cli`
|
|
|
|
As of this snapshot, Anthropic documents self-hosted marketplace distribution
|
|
through GitHub, git URL, remote marketplace JSON, and local path sources.
|
|
OpenAI documents repo/personal marketplace distribution for Codex and describes
|
|
an official Plugin Directory, but ECC has not submitted or received an official
|
|
directory listing in this pass.
|