From 3304848beb40f57043c2314c744b5ad6265aaa96 Mon Sep 17 00:00:00 2001 From: Affaan Mustafa Date: Tue, 19 May 2026 09:39:10 -0400 Subject: [PATCH] chore: refresh video dashboard evidence (#1999) --- ...operator-readiness-dashboard-2026-05-19.md | 9 ++--- scripts/operator-readiness-dashboard.js | 25 ++++++++++-- .../operator-readiness-dashboard.test.js | 38 +++++++++++++++++++ 3 files changed, 63 insertions(+), 9 deletions(-) diff --git a/docs/releases/2.0.0-rc.1/operator-readiness-dashboard-2026-05-19.md b/docs/releases/2.0.0-rc.1/operator-readiness-dashboard-2026-05-19.md index 1ec9b32d..a6dbea75 100644 --- a/docs/releases/2.0.0-rc.1/operator-readiness-dashboard-2026-05-19.md +++ b/docs/releases/2.0.0-rc.1/operator-readiness-dashboard-2026-05-19.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-19T11:58:26.640Z -Commit: dafd447977d07d1fdc84e200a9523f9b296cb269 +Generated: 2026-05-19T13:22:19.744Z +Commit: 247750b7a6e918ac770402119c3191f512a69aa1 Status: work remaining ## Current Status @@ -38,7 +38,7 @@ Growth lanes: GitHub Sponsors and OSS partner sponsors; ECC Tools Pro subscripti | Prepare name-change, Claude plugin, and Codex plugin paths | naming-and-publication-matrix plus release-name-plugin-publication checklist plus publication-readiness | in_progress | naming matrix, release publication checklist, 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, LinkedIn draft, and URL ledger are present | final live release/npm/plugin/billing URLs and publish approval still pending | | Create a second-phase hypergrowth release command center | docs/releases/2.0.0/ecc-2-hypergrowth-release-command-center.md plus May 19 evidence | current | current MRR, target MRR, gap, release claim, video lane, distribution plan, and approval boundaries are in-tree | refresh after every MRR, channel, or approval-state change before public launch | -| Produce the ECC 2.0 release video suite | docs/releases/2.0.0-rc.1/video-suite-production.md and npm run release:video-suite | in_progress | video production manifest and deterministic video-suite gate are wired for launch video, short clips, captions, timeline, and self-eval evidence | render final owner-approved MP4s, captions, platform reframes, and editable timeline before posting | +| Produce the ECC 2.0 release video suite | docs/releases/2.0.0-rc.1/video-suite-production.md and npm run release:video-suite | current | video-suite gate is ready with 15/15 source assets, 13/13 suite artifacts, 12/12 publish candidates, primary self-eval, and zero detected black-frame segments recorded in May 19 evidence | final owner approval, upload, and public video URLs remain approval-gated | | Prepare sponsor, partner, consulting, podcast, talk, and Discussion copy | docs/releases/2.0.0-rc.1/partner-sponsor-talks-pack.md | in_progress | sponsor outbound, platform partner DM, consulting intro, talk/podcast pitch, GitHub Discussion announcement, CTA hooks, and do-not-send gate are drafted | replace final URLs after publication gates, then get explicit approval before outbound or personal-account posts | | 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`; fleet review ticket payloads and current Mini Shai-Hulud IOC breadcrumbs landed in `840952a`; 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, aggregate production billing KV readback, Wrangler OAuth readback, target-account billing readback, provenance-aware Marketplace billing-state gates, sanitized Marketplace plan/action provenance counts, hosted team-learning feedback controls, and ECC-Tools Dependabot alert remediation are mirrored in the GA roadmap | create or verify Marketplace-managed Pro target billing-state with webhook provenance, configure the target account and INTERNAL_API_SECRET, then rerun target readback and the live announcement gate | @@ -51,7 +51,6 @@ Growth lanes: GitHub Sponsors and OSS partner sponsors; ECC Tools Pro subscripti - `naming-and-plugin-publication`: real tag/push, marketplace submission, and final channel choice remain approval-gated - `release-notes-and-notifications`: final live release/npm/plugin/billing URLs and publish approval still pending -- `release-video-suite`: render final owner-approved MP4s, captions, platform reframes, and editable timeline before posting - `partner-sponsor-talks-pack`: replace final URLs after publication gates, then get explicit approval before outbound or personal-account posts - `agentshield-enterprise-iteration`: deepen live operator approval/readback after Marketplace/payment gates - `ecc-tools-next-level`: create or verify Marketplace-managed Pro target billing-state with webhook provenance, configure the target account and INTERNAL_API_SECRET, then rerun target readback and the live announcement gate @@ -59,7 +58,7 @@ Growth lanes: GitHub Sponsors and OSS partner sponsors; ECC Tools Pro subscripti ## Next Work Order 1. Regenerate this dashboard from the final release commit before publication evidence is recorded. -2. Render the owner-approved primary launch video, short clips, captions, reframes, and editable timeline from the video-suite production manifest. +2. Review the owner-approved primary launch video candidates, choose the final cuts, upload after approval, and attach public video URLs to the release pack. 3. Replace final release, npm, plugin, billing, and video URLs in the partner/sponsor/talk pack, then get explicit approval before outbound. 4. Repeat ITO-57 Linear/project status sync after the next significant merge batch or advisory-source refresh. 5. Create or verify Marketplace-managed Pro target billing-state with webhook provenance, configure the target account and INTERNAL_API_SECRET, then rerun target readback and the live announcement gate before publishing native-payments copy. diff --git a/scripts/operator-readiness-dashboard.js b/scripts/operator-readiness-dashboard.js index b943b08e..1e5483d5 100644 --- a/scripts/operator-readiness-dashboard.js +++ b/scripts/operator-readiness-dashboard.js @@ -641,6 +641,15 @@ function buildRequirements(rootDir, platformReport) { 'video-source-assets-present', 'video-release-artifacts-present', ]); + const releaseVideoPublishCandidatesReady = releaseVideoSuiteReady + && includesAll(publicationEvidenceMay19, [ + 'Ready true', + '15/15 source assets present', + '13/13 render, timeline, caption, EDL, and segment artifacts present', + '12/12 publish-candidate outputs present', + 'zero detected black-frame segments', + 'primary rough render self-eval passed', + ]); const partnerSponsorTalksReady = includesAll(partnerSponsorTalksPack, [ 'Sponsor Outbound', 'Platform Partner DM', @@ -802,11 +811,15 @@ function buildRequirements(rootDir, platformReport) { 'release-video-suite', 'Produce the ECC 2.0 release video suite', 'docs/releases/2.0.0-rc.1/video-suite-production.md and npm run release:video-suite', - releaseVideoSuiteReady ? 'in_progress' : 'not_complete', - releaseVideoSuiteReady + releaseVideoPublishCandidatesReady ? 'current' : releaseVideoSuiteReady ? 'in_progress' : 'not_complete', + releaseVideoPublishCandidatesReady + ? 'video-suite gate is ready with 15/15 source assets, 13/13 suite artifacts, 12/12 publish candidates, primary self-eval, and zero detected black-frame segments recorded in May 19 evidence' + : releaseVideoSuiteReady ? 'video production manifest and deterministic video-suite gate are wired for launch video, short clips, captions, timeline, and self-eval evidence' : 'video production manifest or release:video-suite gate is incomplete', - releaseVideoSuiteReady + releaseVideoPublishCandidatesReady + ? 'final owner approval, upload, and public video URLs remain approval-gated' + : releaseVideoSuiteReady ? 'render final owner-approved MP4s, captions, platform reframes, and editable timeline before posting' : 'wire release:video-suite and production manifest before final content work' ), @@ -911,6 +924,10 @@ function buildReport(options) { })); const head = runCommand('git', ['rev-parse', 'HEAD'], { cwd: rootDir }); const growth = buildGrowthSummary(rootDir); + const releaseVideoRequirement = requirements.find(item => item.id === 'release-video-suite'); + const releaseVideoWorkOrder = releaseVideoRequirement && releaseVideoRequirement.status === 'current' + ? 'Review the owner-approved primary launch video candidates, choose the final cuts, upload after approval, and attach public video URLs to the release pack.' + : 'Render the owner-approved primary launch video, short clips, captions, reframes, and editable timeline from the video-suite production manifest.'; return { schema_version: SCHEMA_VERSION, @@ -937,7 +954,7 @@ function buildReport(options) { top_actions: topActions, next_work_order: [ 'Regenerate this dashboard from the final release commit before publication evidence is recorded.', - 'Render the owner-approved primary launch video, short clips, captions, reframes, and editable timeline from the video-suite production manifest.', + releaseVideoWorkOrder, 'Replace final release, npm, plugin, billing, and video URLs in the partner/sponsor/talk pack, then get explicit approval before outbound.', 'Repeat ITO-57 Linear/project status sync after the next significant merge batch or advisory-source refresh.', 'Create or verify Marketplace-managed Pro target billing-state with webhook provenance, configure the target account and INTERNAL_API_SECRET, then rerun target readback and the live announcement gate before publishing native-payments copy.', diff --git a/tests/scripts/operator-readiness-dashboard.test.js b/tests/scripts/operator-readiness-dashboard.test.js index 6f057403..7c40091f 100644 --- a/tests/scripts/operator-readiness-dashboard.test.js +++ b/tests/scripts/operator-readiness-dashboard.test.js @@ -413,6 +413,44 @@ function runTests() { } })) passed++; else failed++; + if (test('release video suite moves current when publish-candidate evidence is recorded', () => { + const rootDir = createTempDir('operator-dashboard-video-current-'); + + try { + seedRepo(rootDir, { + 'docs/releases/2.0.0-rc.1/publication-evidence-2026-05-19.md': [ + 'Release video suite', + 'growth outreach', + 'Operator dashboard', + 'GitGuardian', + 'macOS/Ubuntu/Windows test matrix', + '2545 passed', + 'Business baseline', + '$1,728/mo', + '$8,272/mo', + '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' + ].join('\n') + }); + + const report = buildSeededReport(rootDir); + const releaseVideo = report.requirements.find(item => item.id === 'release-video-suite'); + + assert.strictEqual(releaseVideo.status, 'current'); + assert.ok(releaseVideo.evidence.includes('15/15 source assets')); + assert.ok(releaseVideo.evidence.includes('12/12 publish candidates')); + assert.ok(releaseVideo.evidence.includes('zero detected black-frame segments')); + assert.strictEqual(releaseVideo.gap, 'final owner approval, upload, and public video URLs remain approval-gated'); + assert.ok(!report.top_actions.some(item => item.id === 'release-video-suite')); + assert.ok(report.next_work_order.some(item => item.includes('Review the owner-approved primary launch video candidates'))); + } finally { + cleanup(rootDir); + } + })) passed++; else failed++; + if (test('Linear progress stays in progress until live sync evidence is mirrored', () => { const rootDir = createTempDir('operator-dashboard-linear-progress-');