mirror of
https://github.com/affaan-m/everything-claude-code.git
synced 2026-05-20 11:19:58 +08:00
chore: add release owner approval packet (#2001)
This commit is contained in:
95
docs/releases/2.0.0-rc.1/owner-approval-packet-2026-05-19.md
Normal file
95
docs/releases/2.0.0-rc.1/owner-approval-packet-2026-05-19.md
Normal file
@@ -0,0 +1,95 @@
|
||||
# ECC v2.0.0-rc.1 Owner Approval Packet
|
||||
|
||||
Snapshot date: 2026-05-19.
|
||||
|
||||
This packet is the final human decision sheet for the rc.1 public launch. It
|
||||
does not publish anything by itself. Use it to approve, defer, or block each
|
||||
release action after the final evidence commands are rerun from the intended
|
||||
release commit.
|
||||
|
||||
Source commit for the clean evidence baseline this packet extends:
|
||||
`e7a7b2aaa33c0657cad9db3fa2ced0e636cd0f8c`.
|
||||
|
||||
## Current Evidence
|
||||
|
||||
| Evidence | Current recorded state | Repeat before approval |
|
||||
| --- | --- | --- |
|
||||
| Platform audit | ready true, 0 open PRs, 0 open issues, 0 discussion gaps, 0 dirty files | yes |
|
||||
| Preview pack smoke | ready true, digest `790430aef4a8`, 5/5 checks | yes |
|
||||
| Video suite | ready true, 15/15 source assets, 13/13 suite artifacts, 12/12 publish candidates | yes |
|
||||
| Release surface tests | 26/26 passed after this packet was added | yes |
|
||||
| Full local suite | 2548/2548 passed after this packet was added | yes |
|
||||
| GitHub CI | PR #1998, PR #1999, and PR #2000 merged after green required checks | verify current head |
|
||||
|
||||
## Decision Register
|
||||
|
||||
| Decision | Approve / defer / block | Evidence required first | Notes |
|
||||
| --- | --- | --- | --- |
|
||||
| GitHub prerelease | defer | final clean branch, URL ledger, release notes, attached video or video link | Approve only after final release notes contain live package/plugin/video URLs or explicitly marked blocked URLs. |
|
||||
| npm `next` publish | defer | `npm pack --dry-run`, `npm publish --tag next --dry-run`, registry dist-tag readback plan | Keep `ecc-universal@2.0.0-rc.1` on `next`; do not move `latest` during rc.1. |
|
||||
| Claude plugin tag | defer | `claude plugin validate .claude-plugin/plugin.json`, `claude plugin tag .claude-plugin --dry-run` | Create and push the real tag only after release approval. |
|
||||
| Codex repo marketplace | defer | temp-home marketplace add smoke and current official Plugin Directory status | Claim repo-marketplace distribution only; do not claim official Plugin Directory listing without listing evidence. |
|
||||
| ECC Tools billing language | defer | live readiness readback for the target account and billing/product state | Do not announce native payments or Marketplace-managed Pro until the gate is live. |
|
||||
| Video upload | defer | owner selects primary launch cut plus short clips, self-eval stays clean | Upload only approved cuts; keep editable timeline/project output preserved. |
|
||||
| X, LinkedIn, GitHub Discussion, longform | defer | live release, npm, plugin, video, and billing URL ledger updates | Personal-account posts and outbound copy need explicit approval. |
|
||||
| Sponsor, partner, consulting, conference, podcast outreach | defer | final public URLs plus owner-approved outbound copy | Do not send drafts until the owner approves the exact batch. |
|
||||
|
||||
## Final URL Fill-In
|
||||
|
||||
Update these surfaces after the approved publication actions finish:
|
||||
|
||||
| Surface | Final value source | Update targets |
|
||||
| --- | --- | --- |
|
||||
| GitHub prerelease URL | `gh release view v2.0.0-rc.1 --repo affaan-m/ECC --json url` | release notes, URL ledger, social copy |
|
||||
| npm rc package URL | `npm view ecc-universal@2.0.0-rc.1 version dist-tags --json` | URL ledger, quickstart, release notes |
|
||||
| Claude plugin tag URL | pushed `ecc--v2.0.0-rc.1` tag or marketplace readback | URL ledger, plugin docs, release notes |
|
||||
| Codex repo-marketplace evidence | temp-home `codex plugin marketplace add <local-checkout>` readback | URL ledger, publication readiness |
|
||||
| Primary launch video URL | uploaded owner-approved primary launch video | GitHub release, X, LinkedIn, longform |
|
||||
| Short clip URLs | uploaded approved clips | X thread, LinkedIn, partner/sponsor/talk pack |
|
||||
| ECC Tools billing/readiness URL | live readiness readback or explicit blocked status | sponsor copy, Pro copy, release notes |
|
||||
|
||||
## Final Evidence Commands
|
||||
|
||||
Run these from the exact release commit before approving publication:
|
||||
|
||||
```bash
|
||||
git status --short --branch
|
||||
node scripts/platform-audit.js --json
|
||||
npm run preview-pack:smoke -- --format json
|
||||
npm run release:video-suite -- --format json
|
||||
npm run harness:adapters -- --check
|
||||
npm run harness:audit -- --format json
|
||||
npm run observability:ready
|
||||
npm run security:ioc-scan
|
||||
npm audit --audit-level=moderate
|
||||
npm audit signatures
|
||||
node tests/docs/ecc2-release-surface.test.js
|
||||
node tests/run-all.js
|
||||
cd ecc2 && cargo test
|
||||
```
|
||||
|
||||
## Approval Text
|
||||
|
||||
Use short, explicit approvals. Example:
|
||||
|
||||
```text
|
||||
Approved for rc.1 GitHub prerelease, npm next publish, Claude plugin tag, and
|
||||
release announcement after the final evidence commands pass from commit <sha>.
|
||||
Video uploads approved for <primary-video> and <shorts-list>.
|
||||
Outbound sponsor, partner, consulting, conference, and podcast messages remain
|
||||
blocked until I approve the exact batch.
|
||||
```
|
||||
|
||||
## Do Not Approve If
|
||||
|
||||
- The final branch is dirty or no longer matches the intended release commit.
|
||||
- Any required evidence command fails or is skipped without a written deferral.
|
||||
- The release copy claims live billing, plugin marketplace propagation, npm
|
||||
`next`, or official Codex Plugin Directory listing before readback exists.
|
||||
- Announcement copy contains stale URLs, private paths, or unresolved live-link
|
||||
decisions.
|
||||
- The selected video cut has black frames, missing audio, stale URLs, weak
|
||||
product proof, or unreviewed captions.
|
||||
- The outbound batch has not been reviewed exactly as it will be sent.
|
||||
|
||||
No outbound email, personal-account post, package publish, plugin tag, or billing announcement is authorized by this packet alone.
|
||||
@@ -25,10 +25,11 @@ surfaces, or posting announcements.
|
||||
| `docs/releases/2.0.0-rc.1/publication-evidence-2026-05-16.md` | Current May 16/17 queue cleanup, recsys skill merge, GateGuard triage, PR #1947 supply-chain protection, AgentShield #87 plugin-cache confidence evidence, AgentShield #88 evidence-pack inspect/readback, AgentShield #89 evidence-pack fleet routing, AgentShield #90 fleet review items, AgentShield #91 policy export, AgentShield #92 policy promotion, ECC-Tools #76 fleet-summary consumption, ECC-Tools #77 hosted finding evidence paths, ECC-Tools #78 harness policy-route linking, dashboard refresh, and combined Node/Rust/release-surface gate evidence through the May 16 mirror | Must still be repeated from a strict clean checkout before real publication |
|
||||
| `docs/releases/2.0.0-rc.1/publication-evidence-2026-05-17.md` | May 17 queue-zero state, Japanese localization merge, Dependabot TypeScript and Node type merges, post-merge ja-JP lint repair, Mini Shai-Hulud/TanStack protection recheck, npm audit/signature checks, legacy and Linear progress routing, deterministic preview-pack smoke, operator dashboard refresh, Linear sync, and GitHub CI evidence for `27dc2918` | Superseded by the May 18 evidence snapshot; repeat from a strict clean checkout before real publication |
|
||||
| `docs/releases/2.0.0-rc.1/publication-evidence-2026-05-18.md` | May 18 queue-zero state, #1970/#1971/#1972 merge batch, #1978 review/closure, supply-chain recheck, AgentShield evidence mirror, Linear sync, current-head CI/security scan success for `4470e2e6`, and ITO-46 naming/plugin publication closure | Superseded by the May 19 ECC identity, video, and growth evidence snapshot |
|
||||
| `docs/releases/2.0.0-rc.1/publication-evidence-2026-05-19.md` | Current May 19 evidence for canonical ECC identity, release video suite, partner/sponsor/talk outreach pack, May 19 operator dashboard, preview-pack smoke digest `bc2bf157616e`, 2547-test local suite, PR #1998 visual QA CI success, and PR #1999 dashboard evidence CI success | Current strongest readiness snapshot; must still be repeated from a strict clean checkout before real publication |
|
||||
| `docs/releases/2.0.0-rc.1/publication-evidence-2026-05-19.md` | Current May 19 evidence for canonical ECC identity, release video suite, partner/sponsor/talk outreach pack, owner approval packet, May 19 operator dashboard, preview-pack smoke digest `790430aef4a8`, 2548-test local suite, PR #1998 visual QA CI success, PR #1999 dashboard evidence CI success, and PR #2000 suite-count evidence success | 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` | Previous prompt-to-artifact operator dashboard | Superseded by the May 19 generated dashboard |
|
||||
| `docs/releases/2.0.0-rc.1/operator-readiness-dashboard-2026-05-19.md` | Current prompt-to-artifact operator dashboard | Shows PR/issue/discussion/platform/supply-chain gates current and adds the current `$1,728/mo` to `$10,000/mo` hypergrowth, video owner-approval, and outbound-pack operating lanes |
|
||||
| `docs/releases/2.0.0-rc.1/owner-approval-packet-2026-05-19.md` | Final human decision sheet for release, package, plugin, video, billing, social, and outbound approvals | Must be reviewed by the owner before any publication or outbound action |
|
||||
| `docs/releases/2.0.0-rc.1/release-url-ledger-2026-05-19.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/video-suite-production.md` | Release video production manifest | Gates local media inventory, rough primary render, captions, timeline, self-eval, and no-private-path publication rules |
|
||||
| `docs/releases/2.0.0-rc.1/partner-sponsor-talks-pack.md` | Partner, sponsor, consulting, conference, podcast, and discussion copy | Must stay approval-gated and avoid live billing, release, package, or plugin claims without evidence |
|
||||
|
||||
@@ -8,9 +8,9 @@ social announcement.
|
||||
|
||||
| Field | Evidence |
|
||||
| --- | --- |
|
||||
| Upstream main | `3304848beb40f57043c2314c744b5ad6265aaa96` |
|
||||
| Upstream main | `e7a7b2aaa33c0657cad9db3fa2ced0e636cd0f8c` |
|
||||
| Git remote | `https://github.com/affaan-m/ECC.git` |
|
||||
| Evidence scope | Current `main` after PR #1990 harness-audit GitHub integration scoring, PR #1991 canonical ECC identity gate, PR #1992 release video-suite gate, PR #1993 growth outreach pack, PR #1994 May 19 publication evidence refresh, PR #1995 operator dashboard refresh, PR #1996 primary render self-eval gate, PR #1997 publish-candidate gate, PR #1998 visual QA gate, and PR #1999 video dashboard evidence refresh |
|
||||
| Evidence scope | Current `main` after PR #1990 harness-audit GitHub integration scoring, PR #1991 canonical ECC identity gate, PR #1992 release video-suite gate, PR #1993 growth outreach pack, PR #1994 May 19 publication evidence refresh, PR #1995 operator dashboard refresh, PR #1996 primary render self-eval gate, PR #1997 publish-candidate gate, PR #1998 visual QA gate, PR #1999 video dashboard evidence refresh, PR #2000 suite-count evidence refresh, and the owner approval packet addition |
|
||||
| Local status caveat | `git status --short --branch` was clean after pulling `origin/main`; generated evidence files are committed after the source snapshot they describe |
|
||||
|
||||
The release operator must repeat all publish-facing checks from the exact final
|
||||
@@ -48,16 +48,18 @@ Tracked repositories in the platform audit were:
|
||||
| PR #1997 | Merged the publish-candidate gate for the primary launch MP4/captions plus five short clips in wide and vertical formats |
|
||||
| PR #1998 | Merged the release video visual QA gate for publish candidates and black-frame segment detection |
|
||||
| PR #1999 | Merged the operator dashboard refresh that moved the release video suite to current once publish-candidate evidence was recorded |
|
||||
| PR #2000 | Merged the suite-count evidence refresh so the platform audit rejects stale local-suite totals |
|
||||
| Owner approval packet | Added the final human decision sheet for release, package, plugin, video, billing, social, and outbound approvals |
|
||||
|
||||
## Release And Growth Evidence
|
||||
|
||||
| Gate | Command | Result |
|
||||
| --- | --- | --- |
|
||||
| Release-surface tests | `node tests/docs/ecc2-release-surface.test.js` | 25 passed, 0 failed |
|
||||
| Preview-pack smoke | `npm run preview-pack:smoke -- --format json` | Ready true; digest `bc2bf157616e`; 30 required artifacts; 5 passed, 0 failed |
|
||||
| Release-surface tests | `node tests/docs/ecc2-release-surface.test.js` | 26 passed, 0 failed |
|
||||
| Preview-pack smoke | `npm run preview-pack:smoke -- --format json` | Ready true; digest `790430aef4a8`; 31 required artifacts; 5 passed, 0 failed |
|
||||
| Operator dashboard | `npm run operator:dashboard -- --markdown --write docs/releases/2.0.0-rc.1/operator-readiness-dashboard-2026-05-19.md` | Generated May 19 dashboard with platform audit ready true, 0 tracked PRs, 0 tracked issues, 0 discussion gaps, `$1,728/mo` current MRR, `$10,000/mo` target MRR, the release video suite marked current, and top actions for plugin publication, notifications, outbound approval, AgentShield, and ECC Tools billing |
|
||||
| Release video suite | `npm run release:video-suite -- --format json --summary` with `ECC_VIDEO_SOURCE_ROOT` and `ECC_VIDEO_RELEASE_SUITE_ROOT` | Ready true; 15/15 source assets present; 13/13 render, timeline, caption, EDL, and segment artifacts present; 12/12 publish-candidate outputs present with zero detected black-frame segments; primary rough render self-eval passed at 144.759 seconds, 1920x1080, 1 audio stream, and 106.78 MB |
|
||||
| Full local suite | `node tests/run-all.js` | 2547 passed, 0 failed |
|
||||
| Full local suite | `node tests/run-all.js` | 2548 passed, 0 failed |
|
||||
| PR #1998 CI | GitHub Actions run `26099020341` | Completed successfully for `d500de1e9f11c0446b6a1349bd98b522d31f9125`; all reported checks passed, including lint, validation, security scan, coverage, GitGuardian, CodeRabbit, Cubic, and the macOS/Ubuntu/Windows test matrix |
|
||||
| PR #1999 CI | GitHub Actions run `26100148726` | Completed successfully for `90584b6d5e5814bc2ad9a4cd651bebd043de989d`; lint, validation, security scan, coverage, GitGuardian, CodeRabbit, and the macOS/Ubuntu/Windows test matrix passed; Cubic completed neutral and did not block merge |
|
||||
| Public-path sanitization | `node scripts/ci/validate-no-personal-paths.js` through local suite and CI | Passed |
|
||||
@@ -71,6 +73,7 @@ Tracked repositories in the platform audit were:
|
||||
| Release claim | Release notes and launch collateral frame ECC as the harness-native operator system for agentic work, not a Claude-only config pack |
|
||||
| Video proof | `video-suite-production.md` gates the local rough render, timeline, captions, source inventory, publish-candidate clip set, self-eval, black-frame QA, and no-private-path publication rules |
|
||||
| Growth proof | `partner-sponsor-talks-pack.md` provides approval-gated copy for sponsors, partners, consulting, talks, podcasts, GitHub Discussion, and video CTAs |
|
||||
| Owner approval proof | `owner-approval-packet-2026-05-19.md` centralizes release, package, plugin, video, billing, social, and outbound decision gates |
|
||||
| Business baseline | Hypergrowth command center and partner pack use `$1,728/mo` current MRR, `$10,000/mo` target MRR, and `$8,272/mo` gap |
|
||||
| Operator dashboard | `operator-readiness-dashboard-2026-05-19.md` pulls the growth baseline into the same queue, publication, video, outbound, AgentShield, ECC Tools, Linear, and supply-chain control surface |
|
||||
|
||||
@@ -98,7 +101,7 @@ Tracked repositories in the platform audit were:
|
||||
The tracked public PR queue, issue queue, discussion queue, canonical ECC
|
||||
identity, release video suite, preview pack, and growth outreach packet are
|
||||
current on May 19, 2026 for `main` through
|
||||
`3304848beb40f57043c2314c744b5ad6265aaa96`. The remaining video work is
|
||||
`e7a7b2aaa33c0657cad9db3fa2ced0e636cd0f8c`. The remaining video work is
|
||||
owner approval, upload, and public URL attachment, not render or QA production.
|
||||
|
||||
This improves publication readiness but does not replace the approval-gated
|
||||
|
||||
@@ -58,6 +58,9 @@ For the May 18 operator dashboard refresh, see
|
||||
|
||||
The current May 19 hypergrowth/operator dashboard is
|
||||
[`operator-readiness-dashboard-2026-05-19.md`](operator-readiness-dashboard-2026-05-19.md).
|
||||
For the final owner decision sheet across release, npm, plugin, video, billing,
|
||||
social, and outbound approvals, see
|
||||
[`owner-approval-packet-2026-05-19.md`](owner-approval-packet-2026-05-19.md).
|
||||
For the May 19 live/pending release URL ledger after the public repo rename, see
|
||||
[`release-url-ledger-2026-05-19.md`](release-url-ledger-2026-05-19.md).
|
||||
|
||||
@@ -99,16 +102,16 @@ Record the exact commit SHA and command output before any publication action:
|
||||
| Evidence | Command | Required result | Recorded output |
|
||||
| --- | --- | --- | --- |
|
||||
| Clean release branch | `git status --short --branch` | On intended release commit; no unrelated files | `3304848b`: `## main...origin/main`; repeat from the exact final publication commit before release |
|
||||
| Preview-pack smoke | `npm run preview-pack:smoke` | Preview pack artifacts, Hermes boundary, final verification command list, and publication blockers pass | `publication-evidence-2026-05-19.md`: ready yes, digest `bc2bf157616e`, 30 artifacts, 5 passed, 0 failed; repeat in the final strict clean-checkout release pass |
|
||||
| Preview-pack smoke | `npm run preview-pack:smoke` | Preview pack artifacts, Hermes boundary, final verification command list, and publication blockers pass | `publication-evidence-2026-05-19.md`: ready yes, digest `790430aef4a8`, 31 artifacts, 5 passed, 0 failed; repeat in the final strict clean-checkout release pass |
|
||||
| Harness audit | `npm run harness:audit -- --format json` | 70/70 passing | `99e01ded`: 70/70, 0 top actions |
|
||||
| Adapter scorecard | `npm run harness:adapters -- --check` | PASS | `99e01ded`: PASS, 11 adapters |
|
||||
| Observability readiness | `npm run observability:ready` | 21/21 passing | `publication-evidence-2026-05-18.md`: 21/21, ready yes |
|
||||
| Release safety gate | `npm run observability:ready -- --format json` | Release Safety category passing with publication readiness, supply-chain, workflow security, package surface, and release-surface evidence | May 18 evidence keeps release safety passing; repeat the JSON gate from the exact final release commit |
|
||||
| Supply-chain verification | `npm audit --json`; `npm audit signatures`; `cd ecc2 && cargo audit -q`; Dependabot alerts; GitGuardian Security Checks | 0 vulnerabilities/alerts, registry signatures verified, GitGuardian clean | `publication-evidence-2026-05-19.md` plus CI `26093792219`: GitGuardian and security scan passed; prior May 18 npm registry signatures and IOC scans remain the latest detailed supply-chain evidence |
|
||||
| Root suite | `node tests/run-all.js` | 0 failures | `3304848b`: local `node tests/run-all.js` passed 2547/2547; PR #1999 CI `26100148726` passed the full OS/runtime/package-manager matrix for `90584b6d` |
|
||||
| Root suite | `node tests/run-all.js` | 0 failures | Current packet branch based on `e7a7b2a`: local `node tests/run-all.js` passed 2548/2548; PR #2000 CI `26101512088` passed the full OS/runtime/package-manager matrix |
|
||||
| Markdown lint | `npx markdownlint-cli '**/*.md' --ignore node_modules` | 0 failures | CI `26093792219`: markdownlint passed on the growth-pack PR; rerun after any release-copy edits |
|
||||
| Package surface | `node tests/scripts/npm-publish-surface.test.js` | 0 failures; no Python bytecode in npm tarball | `2/2` passed in May 12 evidence pass |
|
||||
| Release surface | `node tests/docs/ecc2-release-surface.test.js` | 0 failures | May 19 evidence refresh: 25/25 passed after adding the video suite and partner/sponsor/talk gates |
|
||||
| Release surface | `node tests/docs/ecc2-release-surface.test.js` | 0 failures | May 19 evidence refresh: 26/26 passed after adding the video suite, partner/sponsor/talk gates, and owner approval packet |
|
||||
| Optional Rust surface | `cd ecc2 && cargo test` | 0 failures or explicit deferral | `publication-evidence-2026-05-16.md`: 462/462 passed, existing warnings only |
|
||||
| Queue baseline | `node scripts/platform-audit.js --json` across trunk, AgentShield, JARVIS, ECC Tools, and ECC website | Under 20 open PRs and under 20 open issues | `3304848b`: platform audit ready, 0 open PRs, 0 open issues, 0 conflicting PRs, and 0 blocking dirty files |
|
||||
| Discussion baseline | `node scripts/platform-audit.js --json` and `node scripts/discussion-audit.js --json` | No unmanaged active discussion queue and no answerable Q&A missing an accepted answer | `3304848b`: platform audit sampled 58 trunk discussions, 0 needing maintainer touch, 0 answerable discussions missing accepted answer; `docs/architecture/discussion-response-playbook.md` records response templates and security escalation rules |
|
||||
|
||||
@@ -103,6 +103,9 @@ Production steps:
|
||||
The source of truth for sponsor, partner, consulting, conference, podcast, and
|
||||
GitHub Discussion copy is
|
||||
`docs/releases/2.0.0-rc.1/partner-sponsor-talks-pack.md`.
|
||||
The source of truth for owner approval across release, package, plugin, video,
|
||||
billing, social, and outbound actions is
|
||||
`docs/releases/2.0.0-rc.1/owner-approval-packet-2026-05-19.md`.
|
||||
|
||||
## Copy Rules
|
||||
|
||||
|
||||
@@ -472,7 +472,7 @@ function buildLocalEvidenceChecks(rootDir) {
|
||||
),
|
||||
buildCheck(
|
||||
'release-evidence-current',
|
||||
includesAll(evidence, ['Release video suite', 'growth outreach', 'Operator dashboard', 'GitGuardian', 'macOS/Ubuntu/Windows test matrix', '2547 passed']) ? 'pass' : 'fail',
|
||||
includesAll(evidence, ['Release video suite', 'growth outreach', 'Operator dashboard', 'GitGuardian', 'macOS/Ubuntu/Windows test matrix', '2548 passed']) ? 'pass' : 'fail',
|
||||
'rc.1 evidence includes current release, video, growth, and CI artifacts',
|
||||
{ path: 'docs/releases/2.0.0-rc.1/publication-evidence-2026-05-19.md' }
|
||||
),
|
||||
|
||||
@@ -30,6 +30,7 @@ const REQUIRED_ARTIFACTS = [
|
||||
`${RELEASE_DIR}/operator-readiness-dashboard-2026-05-17.md`,
|
||||
`${RELEASE_DIR}/operator-readiness-dashboard-2026-05-18.md`,
|
||||
`${RELEASE_DIR}/operator-readiness-dashboard-2026-05-19.md`,
|
||||
`${RELEASE_DIR}/owner-approval-packet-2026-05-19.md`,
|
||||
`${RELEASE_DIR}/release-url-ledger-2026-05-19.md`,
|
||||
`${RELEASE_DIR}/video-suite-production.md`,
|
||||
`${RELEASE_DIR}/partner-sponsor-talks-pack.md`,
|
||||
|
||||
@@ -54,6 +54,7 @@ const expectedReleaseFiles = [
|
||||
'publication-readiness.md',
|
||||
'video-suite-production.md',
|
||||
'partner-sponsor-talks-pack.md',
|
||||
'owner-approval-packet-2026-05-19.md',
|
||||
'release-name-plugin-publication-checklist-2026-05-18.md',
|
||||
];
|
||||
|
||||
@@ -179,6 +180,7 @@ test('preview pack manifest assembles release, Hermes, and publication gates', (
|
||||
'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-url-ledger-2026-05-19.md',
|
||||
'docs/releases/2.0.0-rc.1/owner-approval-packet-2026-05-19.md',
|
||||
'docs/releases/2.0.0-rc.1/video-suite-production.md',
|
||||
'docs/releases/2.0.0-rc.1/publication-evidence-2026-05-19.md',
|
||||
'docs/releases/2.0.0-rc.1/release-name-plugin-publication-checklist-2026-05-18.md',
|
||||
@@ -203,6 +205,51 @@ test('preview pack manifest assembles release, Hermes, and publication gates', (
|
||||
assert.ok(manifest.includes('Reference-Inspired Adapter Direction'));
|
||||
});
|
||||
|
||||
test('owner approval packet consolidates the final gated decisions', () => {
|
||||
const packet = read('docs/releases/2.0.0-rc.1/owner-approval-packet-2026-05-19.md');
|
||||
const manifest = read('docs/releases/2.0.0-rc.1/preview-pack-manifest.md');
|
||||
const publicationReadiness = read('docs/releases/2.0.0-rc.1/publication-readiness.md');
|
||||
const hypergrowth = read('docs/releases/2.0.0/ecc-2-hypergrowth-release-command-center.md');
|
||||
|
||||
for (const marker of [
|
||||
'Owner Approval Packet',
|
||||
'Source commit',
|
||||
'Decision Register',
|
||||
'GitHub prerelease',
|
||||
'npm `next` publish',
|
||||
'Claude plugin tag',
|
||||
'Video upload',
|
||||
'Final URL Fill-In',
|
||||
'Do Not Approve If',
|
||||
'No outbound email, personal-account post, package publish, plugin tag, or billing announcement is authorized by this packet alone.',
|
||||
]) {
|
||||
assert.ok(packet.includes(marker), `owner approval packet missing ${marker}`);
|
||||
}
|
||||
|
||||
for (const command of [
|
||||
'node scripts/platform-audit.js --json',
|
||||
'npm run preview-pack:smoke -- --format json',
|
||||
'npm run release:video-suite -- --format json',
|
||||
'node tests/run-all.js',
|
||||
]) {
|
||||
assert.ok(packet.includes(command), `owner approval packet missing command ${command}`);
|
||||
}
|
||||
|
||||
for (const urlSurface of [
|
||||
'GitHub prerelease URL',
|
||||
'npm rc package URL',
|
||||
'Claude plugin tag URL',
|
||||
'Primary launch video URL',
|
||||
'ECC Tools billing/readiness URL',
|
||||
]) {
|
||||
assert.ok(packet.includes(urlSurface), `owner approval packet missing ${urlSurface}`);
|
||||
}
|
||||
|
||||
assert.ok(manifest.includes('owner-approval-packet-2026-05-19.md'));
|
||||
assert.ok(publicationReadiness.includes('owner-approval-packet-2026-05-19.md'));
|
||||
assert.ok(hypergrowth.includes('owner-approval-packet-2026-05-19.md'));
|
||||
});
|
||||
|
||||
test('rc.1 quickstart gives a clone-to-cross-harness path', () => {
|
||||
const quickstart = read('docs/releases/2.0.0-rc.1/quickstart.md');
|
||||
for (const heading of ['Clone', 'Install', 'Verify', 'First Skill', 'Switch Harness']) {
|
||||
|
||||
@@ -178,7 +178,7 @@ function seedRepo(rootDir, overrides = {}) {
|
||||
'Operator dashboard',
|
||||
'GitGuardian',
|
||||
'macOS/Ubuntu/Windows test matrix',
|
||||
'2547 passed',
|
||||
'2548 passed',
|
||||
'Business baseline',
|
||||
'$1,728/mo',
|
||||
'$8,272/mo'
|
||||
@@ -424,7 +424,7 @@ function runTests() {
|
||||
'Operator dashboard',
|
||||
'GitGuardian',
|
||||
'macOS/Ubuntu/Windows test matrix',
|
||||
'2547 passed',
|
||||
'2548 passed',
|
||||
'Business baseline',
|
||||
'$1,728/mo',
|
||||
'$8,272/mo',
|
||||
|
||||
@@ -68,7 +68,7 @@ function seedRepo(rootDir, overrides = {}) {
|
||||
'Operator dashboard',
|
||||
'GitGuardian',
|
||||
'macOS/Ubuntu/Windows test matrix',
|
||||
'2547 passed'
|
||||
'2548 passed'
|
||||
].join('\n'),
|
||||
'docs/releases/2.0.0-rc.1/operator-readiness-dashboard-2026-05-19.md': [
|
||||
'This dashboard is generated by `npm run operator:dashboard`',
|
||||
|
||||
Reference in New Issue
Block a user