mirror of
https://github.com/affaan-m/everything-claude-code.git
synced 2026-05-18 23:03:06 +08:00
docs: add release plugin publication checklist
This commit is contained in:
@@ -229,7 +229,8 @@ Required safeguards:
|
||||
## Near-Term Implementation Order
|
||||
|
||||
1. Extend the harness adapter matrix and public scorecard onramp.
|
||||
2. Add the release/name/plugin publication checklist with evidence fields.
|
||||
2. Keep the release/name/plugin publication checklist current with fresh
|
||||
final-commit evidence before rc.1 publication.
|
||||
3. Define the HUD/status JSON contract and fixture directory.
|
||||
4. Start AgentShield policy schema plus SARIF fixtures.
|
||||
5. Audit ECC Tools billing and check-run surfaces.
|
||||
|
||||
@@ -12,6 +12,8 @@
|
||||
- verify `preview-pack-manifest.md` lists the public release, Hermes, adapter,
|
||||
observability, publication, and announcement artifacts before running final
|
||||
publish checks
|
||||
- verify `release-name-plugin-publication-checklist-2026-05-18.md` still
|
||||
matches current GitHub, npm, Claude, Codex, OpenCode, and billing surfaces
|
||||
- keep private tokens, personal docs, and raw workspace exports out of the repo
|
||||
|
||||
## Release Surface
|
||||
@@ -19,6 +21,9 @@
|
||||
- verify package, plugin, marketplace, OpenCode, and agent metadata stays at `2.0.0-rc.1`
|
||||
- verify `ecc2/Cargo.toml` stays at `0.1.0` for rc.1; `ecc2/` remains an alpha control-plane scaffold
|
||||
- complete `publication-readiness.md` with fresh evidence before any GitHub release, npm publish, plugin submission, or announcement post
|
||||
- rerun the release name/plugin publication checklist before creating a
|
||||
GitHub prerelease, publishing npm, pushing Claude plugin tags, recording the
|
||||
Codex marketplace path, or posting public copy
|
||||
- include `publication-evidence-2026-05-17.md` and
|
||||
`operator-readiness-dashboard-2026-05-17.md` in the final evidence review,
|
||||
then rerun publish-facing checks from the exact release commit
|
||||
|
||||
@@ -29,6 +29,7 @@ surfaces, or posting announcements.
|
||||
| `docs/releases/2.0.0-rc.1/operator-readiness-dashboard-2026-05-18.md` | Current prompt-to-artifact operator dashboard | Shows PR/issue/discussion/platform/supply-chain gates current and publication, plugin, billing, AgentShield, ECC Tools, legacy, and Linear productization gaps still open |
|
||||
| `docs/releases/2.0.0-rc.1/release-url-ledger-2026-05-18.md` | Live URL and approval-gated URL ledger for release copy | Must be regenerated from the final release commit before public announcements |
|
||||
| `docs/releases/2.0.0-rc.1/naming-and-publication-matrix.md` | Naming, slug, and publication-path decision record | Keeps `Everything Claude Code / ECC`, npm `ecc-universal`, and plugin slug `ecc` for rc.1 |
|
||||
| `docs/releases/2.0.0-rc.1/release-name-plugin-publication-checklist-2026-05-18.md` | Release name, package, Claude plugin, Codex plugin, and publication-order checklist | Freezes rc.1 identity and requires final commit evidence before release, npm, plugin, billing, or announcement actions |
|
||||
| `docs/releases/2.0.0-rc.1/x-thread.md` | X launch draft | Must replace placeholders with live URLs after release/package/plugin publication |
|
||||
| `docs/releases/2.0.0-rc.1/linkedin-post.md` | LinkedIn launch draft | Must replace placeholders with live URLs after release/package/plugin publication |
|
||||
| `docs/releases/2.0.0-rc.1/article-outline.md` | Longform launch outline | Must stay release-candidate framed until GA evidence exists |
|
||||
@@ -91,6 +92,8 @@ The preview pack is assembled, but publication is still blocked until these live
|
||||
surfaces exist and are recorded in a final evidence file:
|
||||
|
||||
- final release URL ledger regenerated from the intended release commit;
|
||||
- final release name/plugin publication checklist rerun from the intended
|
||||
release commit;
|
||||
- GitHub prerelease `v2.0.0-rc.1`;
|
||||
- npm `ecc-universal@2.0.0-rc.1` on the `next` dist-tag;
|
||||
- Claude plugin tag / marketplace propagation for `ecc@ecc`;
|
||||
|
||||
@@ -6,6 +6,9 @@ URLs from the exact commit being released.
|
||||
|
||||
For the current rc.1 naming decision and package/plugin publication path, see
|
||||
[`naming-and-publication-matrix.md`](naming-and-publication-matrix.md).
|
||||
For the May 18 release name, package, Claude plugin, Codex plugin, and
|
||||
publication-order gate, see
|
||||
[`release-name-plugin-publication-checklist-2026-05-18.md`](release-name-plugin-publication-checklist-2026-05-18.md).
|
||||
For the assembled rc.1 preview pack boundary, see
|
||||
[`preview-pack-manifest.md`](preview-pack-manifest.md).
|
||||
For the May 12 dry-run evidence pass, see
|
||||
@@ -105,6 +108,7 @@ Record the exact commit SHA and command output before any publication action:
|
||||
| Linear roadmap | Linear project and issue readback | Detailed roadmap exists with release, security, AgentShield, ECC Tools, legacy, and observability lanes | `publication-evidence-2026-05-15.md`: project and 16 issue lanes recorded |
|
||||
| Operator readiness dashboard | `npm run operator:dashboard -- --json --allow-untracked docs/drafts/` | Current queue state mapped to macro-goal deliverables and incomplete gaps | `publication-evidence-2026-05-18.md`: generated from `3b7e0ba3`, platform ready true, dashboard ready true, 0 open PRs, 0 open issues, 0 discussion gaps; regenerated May 18 dashboard now also tracks the URL ledger |
|
||||
| Release URL ledger | `docs/releases/2.0.0-rc.1/release-url-ledger-2026-05-18.md` plus placeholder-marker scan | Live links and approval-gated links are separated before announcement copy is posted | Ledger records public repo/docs/CI/supply-chain/npm/OpenAI Codex documentation URLs and blocks GitHub release/npm/plugin/billing/social URLs until approval-gated checks pass |
|
||||
| Release name and plugin publication checklist | `docs/releases/2.0.0-rc.1/release-name-plugin-publication-checklist-2026-05-18.md` | Name/package/plugin values are frozen, final-release commands are listed, and Claude/Codex publication paths cite current official docs | Checklist keeps `Everything Claude Code / ECC`, `ecc-universal`, and plugin slug `ecc` for rc.1; no rename, npm publish, plugin tag, official listing, billing claim, or announcement before final evidence |
|
||||
|
||||
## Do Not Publish If
|
||||
|
||||
|
||||
@@ -0,0 +1,115 @@
|
||||
# ECC v2.0.0-rc.1 Release Name And Plugin Publication Checklist
|
||||
|
||||
Snapshot date: 2026-05-18.
|
||||
|
||||
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 **Everything Claude Code (ECC)**.
|
||||
|
||||
- Keep the GitHub repo at `affaan-m/everything-claude-code`.
|
||||
- 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 to `affaan-m/ecc`, `ecc`, or `@affaan-m/ecc` before rc.1.
|
||||
|
||||
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 not available to the current GitHub auth context.
|
||||
- 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 | `0e88e6a4ddf9968e55faa07f3ad8a03d3943b58c` | `git rev-parse HEAD` | Recorded from `main` | Re-run from final release commit |
|
||||
| GitHub repo | `affaan-m/everything-claude-code` | `git remote get-url origin` | `https://github.com/affaan-m/everything-claude-code.git` | Keep for rc.1 |
|
||||
| Possible short repo | `affaan-m/ecc` | `gh repo view affaan-m/ecc --json nameWithOwner,url,isPrivate` | GraphQL could not resolve repository | Do not depend on it for rc.1 |
|
||||
| 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` | Validation passed | Run dry-run tag, then tag/push only after approval |
|
||||
| Claude marketplace | `.claude-plugin/marketplace.json` | `claude plugin marketplace --help`; Anthropic plugin marketplace docs | GitHub, git URL, remote marketplace JSON, and local path marketplace sources are supported | Submit official listing through the current Anthropic forms only 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 | Repo marketplace and local marketplace roots are supported | Use repo marketplace for rc.1; official Plugin Directory is still pending |
|
||||
| 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/everything-claude-code --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
|
||||
```
|
||||
|
||||
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`; temp install smoke | Validation, tag, or install-smoke failure |
|
||||
| 6 | Verify Codex repo marketplace | `codex plugin marketplace add --help`; temp-home 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 Codex official Plugin Directory availability unless OpenAI docs
|
||||
no longer say official public plugin publishing is pending.
|
||||
- Do not announce billing, Marketplace, or native payments until ECC Tools live
|
||||
Marketplace account readback returns ready.
|
||||
- Do not rename the repo or package until rc.1 is published and a migration
|
||||
guide maps old 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 official marketplace submission through
|
||||
Claude.ai and Console forms. OpenAI documents repo/local marketplace
|
||||
distribution for Codex and says official public Plugin Directory publishing and
|
||||
self-serve plugin management are coming soon.
|
||||
@@ -52,6 +52,7 @@ const expectedReleaseFiles = [
|
||||
'quickstart.md',
|
||||
'preview-pack-manifest.md',
|
||||
'publication-readiness.md',
|
||||
'release-name-plugin-publication-checklist-2026-05-18.md',
|
||||
];
|
||||
|
||||
test('release candidate directory includes the public launch pack', () => {
|
||||
@@ -174,6 +175,7 @@ test('preview pack manifest assembles release, Hermes, and publication gates', (
|
||||
'scripts/preview-pack-smoke.js',
|
||||
'docs/releases/2.0.0-rc.1/publication-readiness.md',
|
||||
'docs/releases/2.0.0-rc.1/naming-and-publication-matrix.md',
|
||||
'docs/releases/2.0.0-rc.1/release-name-plugin-publication-checklist-2026-05-18.md',
|
||||
]) {
|
||||
assert.ok(manifest.includes(artifact), `preview pack manifest missing ${artifact}`);
|
||||
}
|
||||
@@ -288,6 +290,8 @@ test('publication readiness checklist gates public release actions on evidence',
|
||||
assert.ok(may15Evidence.includes('announcementGate.ready === true'));
|
||||
assert.ok(source.includes('ECC-Tools #73 added announcementGate'));
|
||||
assert.ok(source.includes('official Plugin Directory publishing and self-serve management are documented as coming soon'));
|
||||
assert.ok(source.includes('release-name-plugin-publication-checklist-2026-05-18.md'));
|
||||
assert.ok(source.includes('Release name and plugin publication checklist'));
|
||||
assert.ok(may15Evidence.includes('| Trunk discussions | GraphQL discussion count and maintainer-touch sweep | 58 total discussions;'));
|
||||
assert.ok(source.includes('58 trunk discussions, 0 without maintainer touch'));
|
||||
assert.ok(may15Evidence.includes('env -u GITHUB_TOKEN'));
|
||||
@@ -295,6 +299,42 @@ test('publication readiness checklist gates public release actions on evidence',
|
||||
assert.ok(may15Evidence.includes('0 open PRs, 0 open issues'));
|
||||
});
|
||||
|
||||
test('release name and plugin publication checklist freezes rc.1 surfaces', () => {
|
||||
const checklist = read(
|
||||
'docs/releases/2.0.0-rc.1/release-name-plugin-publication-checklist-2026-05-18.md'
|
||||
);
|
||||
const launchChecklist = read('docs/releases/2.0.0-rc.1/launch-checklist.md');
|
||||
const referenceArchitecture = read('docs/ECC-2.0-REFERENCE-ARCHITECTURE.md');
|
||||
|
||||
for (const value of [
|
||||
'Everything Claude Code (ECC)',
|
||||
'`affaan-m/everything-claude-code`',
|
||||
'`ecc-universal`',
|
||||
'`ecc` on npm is occupied',
|
||||
'`@affaan-m/ecc` is unclaimed on npm',
|
||||
'Claude plugin',
|
||||
'Codex plugin',
|
||||
'self-serve plugin management are coming soon',
|
||||
'Do not rename the repo or package until rc.1 is published',
|
||||
'Do not announce billing, Marketplace, or native payments',
|
||||
]) {
|
||||
assert.ok(checklist.includes(value), `release name/plugin checklist missing ${value}`);
|
||||
}
|
||||
|
||||
for (const command of [
|
||||
'claude plugin validate .claude-plugin/plugin.json',
|
||||
'claude plugin tag .claude-plugin --dry-run',
|
||||
'codex plugin marketplace add --help',
|
||||
'npm publish --tag next --dry-run',
|
||||
'npm run preview-pack:smoke',
|
||||
]) {
|
||||
assert.ok(checklist.includes(command), `release name/plugin checklist missing command ${command}`);
|
||||
}
|
||||
|
||||
assert.ok(launchChecklist.includes('release-name-plugin-publication-checklist-2026-05-18.md'));
|
||||
assert.ok(referenceArchitecture.includes('Keep the release/name/plugin publication checklist current'));
|
||||
});
|
||||
|
||||
test('release checklist and roadmap link to publication readiness evidence gate', () => {
|
||||
const launchChecklist = read('docs/releases/2.0.0-rc.1/launch-checklist.md');
|
||||
const roadmap = read('docs/ECC-2.0-GA-ROADMAP.md');
|
||||
|
||||
Reference in New Issue
Block a user