mirror of
https://github.com/affaan-m/everything-claude-code.git
synced 2026-05-19 07:13:07 +08:00
test: enforce release publication checklist in readiness gates
This commit is contained in:
@@ -531,6 +531,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 releasePublicationChecklist = readText(rootDir, 'docs/releases/2.0.0-rc.1/release-name-plugin-publication-checklist-2026-05-18.md');
|
||||
const releaseUrlLedger = readText(rootDir, 'docs/releases/2.0.0-rc.1/release-url-ledger-2026-05-18.md');
|
||||
const ownerQueueCleanup = readText(rootDir, 'docs/releases/2.0.0-rc.1/owner-queue-cleanup-2026-05-18.md');
|
||||
const previewManifest = readText(rootDir, 'docs/releases/2.0.0-rc.1/preview-pack-manifest.md');
|
||||
@@ -665,12 +666,19 @@ function buildRequirements(rootDir, platformReport) {
|
||||
buildRequirement(
|
||||
'naming-and-plugin-publication',
|
||||
'Prepare name-change, Claude plugin, and Codex plugin paths',
|
||||
'naming-and-publication-matrix plus publication-readiness',
|
||||
'naming-and-publication-matrix plus release-name-plugin-publication checklist plus publication-readiness',
|
||||
includesAll(namingMatrix, ['Claude plugin', 'Codex plugin', 'npm package', 'Publication Paths'])
|
||||
&& includesAll(releasePublicationChecklist, [
|
||||
'Everything Claude Code (ECC)',
|
||||
'ecc-universal',
|
||||
'claude plugin tag .claude-plugin --dry-run',
|
||||
'codex plugin marketplace add',
|
||||
'Do not rename the repo or package until rc.1 is published'
|
||||
])
|
||||
&& includesAll(publicationReadiness, ['Claude plugin', 'Codex plugin'])
|
||||
? 'in_progress'
|
||||
: 'not_complete',
|
||||
'naming matrix and plugin readiness gates exist',
|
||||
'naming matrix, release publication checklist, and plugin readiness gates exist',
|
||||
'real tag/push, marketplace submission, and final channel choice remain approval-gated'
|
||||
),
|
||||
buildRequirement(
|
||||
|
||||
@@ -30,6 +30,7 @@ const REQUIRED_ARTIFACTS = [
|
||||
`${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}/release-name-plugin-publication-checklist-2026-05-18.md`,
|
||||
`${RELEASE_DIR}/x-thread.md`,
|
||||
`${RELEASE_DIR}/linkedin-post.md`,
|
||||
`${RELEASE_DIR}/article-outline.md`,
|
||||
|
||||
@@ -75,10 +75,18 @@ function seedRepo(rootDir, overrides = {}) {
|
||||
'Linear live sync is current for the May 17 merge batch',
|
||||
'operator progress snapshot'
|
||||
].join('\n'),
|
||||
'docs/releases/2.0.0-rc.1/publication-readiness.md': 'Claude plugin Codex plugin',
|
||||
'docs/releases/2.0.0-rc.1/publication-readiness.md': 'Claude plugin Codex plugin release-name-plugin-publication-checklist-2026-05-18.md',
|
||||
'docs/releases/2.0.0-rc.1/naming-and-publication-matrix.md': 'Claude plugin Codex plugin npm package Publication Paths',
|
||||
'docs/releases/2.0.0-rc.1/release-name-plugin-publication-checklist-2026-05-18.md': [
|
||||
'Everything Claude Code (ECC)',
|
||||
'ecc-universal',
|
||||
'claude plugin tag .claude-plugin --dry-run',
|
||||
'codex plugin marketplace add',
|
||||
'Do not rename the repo or package until rc.1 is published'
|
||||
].join('\n'),
|
||||
'docs/releases/2.0.0-rc.1/preview-pack-manifest.md': [
|
||||
'publication-readiness.md release-notes.md quickstart.md',
|
||||
'release-name-plugin-publication-checklist-2026-05-18.md',
|
||||
'`scripts/preview-pack-smoke.js`',
|
||||
'npm run preview-pack:smoke'
|
||||
].join('\n'),
|
||||
@@ -279,6 +287,12 @@ function runTests() {
|
||||
&& item.evidence.includes('target-account billing readback')
|
||||
&& item.evidence.includes('provenance-aware Marketplace billing-state gates')
|
||||
)));
|
||||
assert.ok(report.requirements.some(item => (
|
||||
item.id === 'naming-and-plugin-publication'
|
||||
&& item.artifact.includes('release-name-plugin-publication checklist')
|
||||
&& item.evidence.includes('release publication checklist')
|
||||
&& item.gap === 'real tag/push, marketplace submission, and final channel choice remain approval-gated'
|
||||
)));
|
||||
assert.ok(report.requirements.some(item => (
|
||||
item.id === 'supply-chain-local-protection'
|
||||
&& item.artifact.includes('AgentShield package-manager hardening')
|
||||
|
||||
Reference in New Issue
Block a user