From 81fca2cea6f1399c52c8faa70f9a17e42f0bd447 Mon Sep 17 00:00:00 2001 From: Affaan Mustafa Date: Sun, 17 May 2026 22:49:08 -0400 Subject: [PATCH] docs: add rc1 release URL ledger --- docs/releases/2.0.0-rc.1/linkedin-post.md | 3 ++ ...operator-readiness-dashboard-2026-05-18.md | 8 +-- .../2.0.0-rc.1/preview-pack-manifest.md | 2 + .../2.0.0-rc.1/publication-readiness.md | 10 ++-- docs/releases/2.0.0-rc.1/release-notes.md | 18 +++++-- .../release-url-ledger-2026-05-18.md | 53 +++++++++++++++++++ docs/releases/2.0.0-rc.1/x-thread.md | 3 ++ scripts/operator-readiness-dashboard.js | 9 +++- scripts/preview-pack-smoke.js | 3 ++ 9 files changed, 96 insertions(+), 13 deletions(-) create mode 100644 docs/releases/2.0.0-rc.1/release-url-ledger-2026-05-18.md diff --git a/docs/releases/2.0.0-rc.1/linkedin-post.md b/docs/releases/2.0.0-rc.1/linkedin-post.md index 463dbe74..78a64885 100644 --- a/docs/releases/2.0.0-rc.1/linkedin-post.md +++ b/docs/releases/2.0.0-rc.1/linkedin-post.md @@ -37,3 +37,6 @@ There is still more to harden before GA, especially around packaging, installers Public publication is still approval-gated until the GitHub release, npm `next` publish, plugin path, final URLs, and billing/native-payments claims have live evidence. + +The release URL ledger now separates links that already resolve from links that +must wait for the approval-gated release, package, plugin, and billing checks. diff --git a/docs/releases/2.0.0-rc.1/operator-readiness-dashboard-2026-05-18.md b/docs/releases/2.0.0-rc.1/operator-readiness-dashboard-2026-05-18.md index e45a5e27..5a950f24 100644 --- a/docs/releases/2.0.0-rc.1/operator-readiness-dashboard-2026-05-18.md +++ b/docs/releases/2.0.0-rc.1/operator-readiness-dashboard-2026-05-18.md @@ -2,8 +2,8 @@ This dashboard is generated by `npm run operator:dashboard`. It is an operator snapshot, not release approval. -Generated: 2026-05-18T02:29:14.483Z -Commit: d14191bed8e94e84b9ea12c2be4f0d4ae11944fc +Generated: 2026-05-18T03:07:55.408Z +Commit: 1e7e449a980a8f23d02bca60bb7fa60d6685eb15 Status: work remaining ## Current Status @@ -28,7 +28,7 @@ Status: work remaining | ECC 2.0 preview pack ready | docs/releases/2.0.0-rc.1/preview-pack-manifest.md | current | preview pack manifest and deterministic smoke gate are in-tree | repeat clean-checkout preview-pack smoke before publication | | Include Hermes specialized skills safely | docs/HERMES-SETUP.md and skills/hermes-imports/SKILL.md | current | Hermes setup/import artifacts are covered by preview-pack smoke | repeat preview-pack smoke before release review | | Prepare name-change, Claude plugin, and Codex plugin paths | naming-and-publication-matrix plus publication-readiness | in_progress | naming matrix and plugin readiness gates exist | real tag/push, marketplace submission, and final channel choice remain approval-gated | -| Prepare release notes, articles, tweets, and push notifications | docs/releases/2.0.0-rc.1 social and release-copy files | in_progress | release notes, X thread, and LinkedIn draft are present | URL-backed refresh and publish approval still pending | +| Prepare release notes, articles, tweets, and push notifications | docs/releases/2.0.0-rc.1 social and release-copy files | in_progress | release notes, X thread, LinkedIn draft, and URL ledger are present | final live release/npm/plugin/billing URLs and publish approval still pending | | Advance AgentShield enterprise iteration | AgentShield PR evidence plus enterprise roadmap | in_progress | AgentShield policy promotion `reviewItems` landed in `87aec47`; package-manager hardening drift detection landed in `28d08c7`; workflow action runtime pins were refreshed in `659f569`; npm age-gate guidance was corrected in `ee585cd`; package-manager hardening Action outputs landed in `1124535`; policy-promotion Action outputs and runtime-smoke job-summary evidence landed in `1593925`; ECC-Tools consumes those outputs in `8658951`, surfaces operator-readable status/pack/count/digest telemetry in `16c537f`, and renders hosted promotion judge audit traces in `05d4e82`; all are mirrored in the GA roadmap | deepen live operator approval/readback after Marketplace/payment gates | | Advance ECC Tools native payments and AI-native harness-agnostic app | ECC Tools PR evidence, billing gate, hosted analysis lanes | in_progress | billing announcement gate, hosted analysis lanes, AgentShield fleet-summary consumption, hosted finding evidence paths, harness-route policy linking, policy-promotion Action-output telemetry, operator-visible promotion output details, hosted promotion judge audit traces, billing announcement preflight, and production KV readback state are mirrored in the GA roadmap | complete Marketplace purchase/webhook readback, then run the live announcement gate | | Audit, prune, or attach legacy work | docs/stale-pr-salvage-ledger.md and legacy inventory | current | legacy salvage ledger and inventory are current; all localization tails are attached to Linear ITO-55 for manual language-owner review | repeat legacy scan before release | @@ -39,7 +39,7 @@ Status: work remaining ## Top Actions - `naming-and-plugin-publication`: real tag/push, marketplace submission, and final channel choice remain approval-gated -- `release-notes-and-notifications`: URL-backed refresh and publish approval still pending +- `release-notes-and-notifications`: final live release/npm/plugin/billing URLs and publish approval still pending - `agentshield-enterprise-iteration`: deepen live operator approval/readback after Marketplace/payment gates - `ecc-tools-next-level`: complete Marketplace purchase/webhook readback, then run the live announcement gate diff --git a/docs/releases/2.0.0-rc.1/preview-pack-manifest.md b/docs/releases/2.0.0-rc.1/preview-pack-manifest.md index 6c9bf9ea..2b9fcd42 100644 --- a/docs/releases/2.0.0-rc.1/preview-pack-manifest.md +++ b/docs/releases/2.0.0-rc.1/preview-pack-manifest.md @@ -27,6 +27,7 @@ surfaces, or posting announcements. | `docs/releases/2.0.0-rc.1/publication-evidence-2026-05-18.md` | Current May 18 queue-zero state, #1970/#1971/#1972 merge batch, current-head Mini Shai-Hulud/TanStack protection recheck, no-lifecycle install, npm audit/signature checks, AgentShield project `.claude` scan, work-items sync, Linear sync, operator dashboard refresh, and Supply-Chain Watch success for `3b7e0ba3` | Current strongest readiness snapshot; must still be repeated from a strict clean checkout before real publication | | `docs/releases/2.0.0-rc.1/operator-readiness-dashboard-2026-05-17.md` | Previous prompt-to-artifact operator dashboard | Superseded by the May 18 generated dashboard | | `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/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 | @@ -89,6 +90,7 @@ cd ecc2 && cargo test 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; - 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`; diff --git a/docs/releases/2.0.0-rc.1/publication-readiness.md b/docs/releases/2.0.0-rc.1/publication-readiness.md index 9e335563..5b15d41e 100644 --- a/docs/releases/2.0.0-rc.1/publication-readiness.md +++ b/docs/releases/2.0.0-rc.1/publication-readiness.md @@ -48,6 +48,8 @@ For the May 17 operator dashboard refresh, see [`operator-readiness-dashboard-2026-05-17.md`](operator-readiness-dashboard-2026-05-17.md). For the May 18 operator dashboard refresh, see [`operator-readiness-dashboard-2026-05-18.md`](operator-readiness-dashboard-2026-05-18.md). +For the May 18 live/pending release URL ledger, see +[`release-url-ledger-2026-05-18.md`](release-url-ledger-2026-05-18.md). ## Release Identity Matrix @@ -77,7 +79,7 @@ For the May 18 operator dashboard refresh, see | Codex plugin | Manifest version matches package and docs, repo marketplace points at the plugin root, and OpenAI's current official Plugin Directory status is recorded | `node tests/docs/ecc2-release-surface.test.js`; `node tests/plugin-manifest.test.js`; `codex plugin marketplace add --help`; temp-home `codex plugin marketplace add ` | `Blocker: official Plugin Directory publishing and self-serve management are documented as coming soon` | Plugin owner | Repo-marketplace distribution verified; official directory pending | | OpenCode package | Build output is regenerated from source and package metadata is current | `npm run build:opencode` | `Blocker: none for local build; public distribution still follows npm/plugin release` | Package owner | Evidence recorded | | ECC Tools billing reference | Any billing claim links to verified Marketplace/App state | `env -u GITHUB_TOKEN gh repo view ECC-Tools/ECC-Tools --json nameWithOwner,isPrivate,viewerPermission` plus internal `/api/billing/readiness?accountLogin=` readback | `Blocker: ECC-Tools #73 added announcementGate; live Marketplace test-account readback must return announcementGate.ready === true before payment announcement` | ECC Tools owner | Code gate recorded; live billing readback pending | -| Announcement copy | X, LinkedIn, GitHub release, and longform copy point to live URLs | `rg -n "TODO" docs/releases/2.0.0-rc.1` and repeat for `TBD` | `Blocker: final live release/npm/plugin URLs do not exist yet` | Release owner | Pending | +| Announcement copy | X, LinkedIn, GitHub release, and longform copy point to live URLs | placeholder-marker scan and `release-url-ledger-2026-05-18.md` | `Blocker: final live release/npm/plugin/billing URLs do not exist yet; live and pending URLs are separated in the May 18 ledger` | Release owner | URL ledger recorded; final URLs pending | | Privileged workflow hardening | Release and maintenance workflows avoid persisted checkout tokens | `node scripts/ci/validate-workflow-security.js` | `Blocker:` | Release owner | Evidence recorded in post-hardening refresh | ## Required Command Evidence @@ -101,7 +103,8 @@ Record the exact commit SHA and command output before any publication action: | Queue baseline | `gh pr list` / `gh issue list` across trunk, AgentShield, JARVIS, ECC Tools, and ECC website | Under 20 open PRs and under 20 open issues | `publication-evidence-2026-05-17.md`: platform audit ready, 0 open PRs and 0 open issues across checked repos | | Discussion baseline | `node scripts/discussion-audit.js --json` | No unmanaged active discussion queue and no answerable Q&A missing an accepted answer | `publication-evidence-2026-05-15.md`: 58 trunk discussions, 0 without maintainer touch; other tracked repos disabled or 0 | | 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 | +| 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 | ## Do Not Publish If @@ -122,6 +125,7 @@ Record the exact commit SHA and command output before any publication action: 3. Create or verify the GitHub prerelease. 4. Publish npm with the rc dist-tag. 5. Submit or update plugin marketplace surfaces. -6. Update release notes with final live URLs. +6. Regenerate the release URL ledger and update release notes with final live + URLs. 7. Publish GitHub release copy. 8. Publish X, LinkedIn, and longform copy only after the public URLs work. diff --git a/docs/releases/2.0.0-rc.1/release-notes.md b/docs/releases/2.0.0-rc.1/release-notes.md index 12f6a0f9..27700241 100644 --- a/docs/releases/2.0.0-rc.1/release-notes.md +++ b/docs/releases/2.0.0-rc.1/release-notes.md @@ -16,7 +16,11 @@ Claude Code remains a core target. Codex, OpenCode, Cursor, Gemini, and other ha - Added Zed as a project-local planning/install target while keeping BYOK and OpenRouter secrets outside ECC-managed project files. - Added command-registry coverage, platform audit, discussion audit, operator dashboard, Linear progress readiness, and preview-pack smoke gates. - Added a local [observability readiness gate](../../architecture/observability-readiness.md) for loop status, session traces, harness audit, and ECC2 tool-risk logs. -- Refreshed the release-readiness evidence after the May 2026 Mini Shai-Hulud/TanStack campaign follow-up, including full-campaign AgentShield IOC coverage, queue-zero/discussion checks, a detailed Linear roadmap gate, and the May 17 operator dashboard snapshot. +- Refreshed the release-readiness evidence after the May 2026 Mini + Shai-Hulud/TanStack campaign follow-up, including full-campaign AgentShield + IOC coverage, queue-zero/discussion checks, a detailed Linear roadmap gate, + the May 18 operator dashboard snapshot, and a live/pending release URL + ledger for announcement gating. ## Since v1.10.0 @@ -44,6 +48,9 @@ feature branch: - launch collateral for GitHub release copy, X, LinkedIn, article outline, Telegram/Hermes handoff, demo prompts, and the approval-gated launch checklist. +- a release URL ledger that separates links which already resolve from links + that must wait for the GitHub release, npm rc package, plugin tag/directory, + and ECC Tools billing readback. ## Why This Matters @@ -84,9 +91,12 @@ What stays local: 2. Read the [Hermes setup guide](../../HERMES-SETUP.md). 3. Review the [cross-harness architecture](../../architecture/cross-harness.md). 4. Run the [observability readiness gate](../../architecture/observability-readiness.md). -5. Start with one workflow lane: engineering, research, content, or outreach. -6. Import only sanitized operator patterns into ECC skills. -7. Treat `ecc2/` as an alpha control plane until release packaging and installer behavior are finalized. +5. Check the [release URL ledger](release-url-ledger-2026-05-18.md) before + using any announcement links. +6. Start with one workflow lane: engineering, research, content, or outreach. +7. Import only sanitized operator patterns into ECC skills. +8. Treat `ecc2/` as an alpha control plane until release packaging and installer + behavior is finalized. ## Do Not Treat This As Published Yet diff --git a/docs/releases/2.0.0-rc.1/release-url-ledger-2026-05-18.md b/docs/releases/2.0.0-rc.1/release-url-ledger-2026-05-18.md new file mode 100644 index 00000000..af2a5e11 --- /dev/null +++ b/docs/releases/2.0.0-rc.1/release-url-ledger-2026-05-18.md @@ -0,0 +1,53 @@ +# ECC v2.0.0-rc.1 Release URL Ledger + +This ledger separates links that are already public from links that only become +valid after the approval-gated release, package, plugin, and announcement +steps. Regenerate it from the final release commit before posting any public +announcement. + +Captured from commit `25ac57ac40e9fc5a0606e76e6339e72c79748c99` on +2026-05-18. + +## Live Now + +| Surface | URL | Verification | +| --- | --- | --- | +| Repository | | `git remote get-url origin` | +| Current evidence commit | | `git rev-parse HEAD` | +| Release pack folder | | Pushed to `main` at `25ac57ac` | +| Release notes draft | | In-tree release copy | +| Hermes setup guide | | In-tree sanitized Hermes guide | +| May 18 evidence snapshot | | Current strongest readiness evidence | +| May 18 operator dashboard | | Prompt-to-artifact dashboard | +| Pushed-head CI | | CI passed for `25ac57ac` | +| Pushed-head Supply-Chain Watch | | Supply-Chain Watch passed for `25ac57ac` | +| npm package page | | `npm view ecc-universal name version dist-tags --json` returned `latest: 1.10.0`; rc.1 is not published yet | +| Codex marketplace CLI docs | | Official docs list `codex plugin marketplace add` for GitHub shorthand, Git URLs, SSH URLs, and local marketplace roots | +| Codex official Plugin Directory status | | Official docs say public Plugin Directory publishing and self-serve management are coming soon | + +## Approval-Gated URLs + +| Surface | Intended URL or command | Gate before use | +| --- | --- | --- | +| GitHub prerelease | | `gh release view v2.0.0-rc.1 --repo affaan-m/everything-claude-code --json tagName,url,isPrerelease` must return the prerelease | +| npm rc package | | `npm publish --tag next` approval and post-publish `npm view ecc-universal dist-tags --json` | +| Claude plugin tag | `claude plugin tag .claude-plugin --dry-run`, then real tag only after approval | Clean release commit and plugin tag/push approval | +| Codex repo marketplace install | `codex plugin marketplace add affaan-m/everything-claude-code --ref v2.0.0-rc.1` | GitHub tag must exist; official Plugin Directory submission remains separate | +| ECC Tools native-payments announcement | ECC Tools Marketplace/App URL plus billing readiness readback | Marketplace-managed test account must return `announcementGate.ready === true` | +| Public announcements | X, LinkedIn, GitHub release, and longform URLs | GitHub release, npm, plugin, and billing URLs must resolve first | + +## Pre-Post Check + +Run these immediately before publication: + +```bash +git status --short --branch +gh release view v2.0.0-rc.1 --repo affaan-m/everything-claude-code --json tagName,url,isPrerelease +npm view ecc-universal name version dist-tags --json +codex plugin marketplace add --help +rg -n "TODO|TBD|PLACEHOLDER" docs/releases/2.0.0-rc.1 +npm run preview-pack:smoke +``` + +Do not post the social or notification copy until the approval-gated URLs above +resolve from a clean release commit. diff --git a/docs/releases/2.0.0-rc.1/x-thread.md b/docs/releases/2.0.0-rc.1/x-thread.md index 774213bc..ec9b1312 100644 --- a/docs/releases/2.0.0-rc.1/x-thread.md +++ b/docs/releases/2.0.0-rc.1/x-thread.md @@ -78,3 +78,6 @@ Hermes x ECC setup: 12/ Release notes: + +URL ledger: + diff --git a/scripts/operator-readiness-dashboard.js b/scripts/operator-readiness-dashboard.js index c510339e..dbc74e47 100644 --- a/scripts/operator-readiness-dashboard.js +++ b/scripts/operator-readiness-dashboard.js @@ -470,6 +470,7 @@ function buildRequirements(rootDir, platformReport) { const roadmap = readText(rootDir, 'docs/ECC-2.0-GA-ROADMAP.md'); const publicationReadiness = readText(rootDir, 'docs/releases/2.0.0-rc.1/publication-readiness.md'); const namingMatrix = readText(rootDir, 'docs/releases/2.0.0-rc.1/naming-and-publication-matrix.md'); + const releaseUrlLedger = readText(rootDir, 'docs/releases/2.0.0-rc.1/release-url-ledger-2026-05-18.md'); const previewManifest = readText(rootDir, 'docs/releases/2.0.0-rc.1/preview-pack-manifest.md'); const previewPackSmoke = readText(rootDir, 'scripts/preview-pack-smoke.js'); const progressSync = readText(rootDir, 'docs/architecture/progress-sync-contract.md'); @@ -598,8 +599,12 @@ function buildRequirements(rootDir, platformReport) { && fileExists(rootDir, 'docs/releases/2.0.0-rc.1/linkedin-post.md') ? 'in_progress' : 'not_complete', - 'release notes, X thread, and LinkedIn draft are present', - 'URL-backed refresh and publish approval still pending' + includesAll(releaseUrlLedger, ['Live Now', 'Approval-Gated URLs', 'Codex marketplace CLI docs']) + ? 'release notes, X thread, LinkedIn draft, and URL ledger are present' + : 'release notes, X thread, and LinkedIn draft are present', + includesAll(releaseUrlLedger, ['Live Now', 'Approval-Gated URLs', 'Codex marketplace CLI docs']) + ? 'final live release/npm/plugin/billing URLs and publish approval still pending' + : 'URL-backed refresh and publish approval still pending' ), buildRequirement( 'agentshield-enterprise-iteration', diff --git a/scripts/preview-pack-smoke.js b/scripts/preview-pack-smoke.js index c739ca02..fc7a03a2 100644 --- a/scripts/preview-pack-smoke.js +++ b/scripts/preview-pack-smoke.js @@ -25,7 +25,10 @@ const REQUIRED_ARTIFACTS = [ `${RELEASE_DIR}/publication-evidence-2026-05-15.md`, `${RELEASE_DIR}/publication-evidence-2026-05-16.md`, `${RELEASE_DIR}/publication-evidence-2026-05-17.md`, + `${RELEASE_DIR}/publication-evidence-2026-05-18.md`, `${RELEASE_DIR}/operator-readiness-dashboard-2026-05-17.md`, + `${RELEASE_DIR}/operator-readiness-dashboard-2026-05-18.md`, + `${RELEASE_DIR}/release-url-ledger-2026-05-18.md`, `${RELEASE_DIR}/naming-and-publication-matrix.md`, `${RELEASE_DIR}/x-thread.md`, `${RELEASE_DIR}/linkedin-post.md`,