fix(002): drop template docs-website spec + deploy workflow from produced apps#26
Conversation
…uced apps #25 stripped website/ from produced tenant apps but left template-encore's spec 016-docs-website, which establishes website/ and .github/workflows/deploy-docs.yml. Every scaffold then carried a spec whose established artifact was gone, so the produced app's own `spec-spine index` emitted I-004 for the missing website/ unit and the fail-closed `index check` in stagecraft's per-request scaffold rejected it, orphaning the job: index is STALE ... stale shard(s): by-spec/016-docs-website (blocking diagnostics) This blocked all new project creation. The stagecraft gate was correct; the drift was the incomplete #25 cleanup. - born-with.ts: add TEMPLATE_DEV_SPEC_IDS (016-docs-website), consulted alongside GENERATOR_META_SPEC_IDS in classifyEntry's specs/ branch. - setup-app.ts: drop the orphaned .github/workflows/deploy-docs.yml in the copy walk (other workflows stay born-with the app). - fixture + setup-app.test.ts: seed the spec + a kept/dropped workflow pair, with negative assertions. - amend spec 002; regenerate the 002 registry + index shards. Verified: produced tree now passes compile -> index -> index check (0 diagnostics, "index is fresh", exit 0); full adapter suite 186/186.
AI Code ReviewNow I have what I need. Here is the review. PR Review: drop template docs-website spec + deploy workflowBugs / Logic ErrorsSplit enforcement of the template-dev invariant (
The Recommendation: Extend the invariant note in both the
Security VulnerabilitiesNone introduced. The Spec-spine ComplianceCoupling gate: followed. Cross-repo drift risk (design limitation, not a violation). Registry Generator Determinism and Lockstep InvariantsDeterminism: Born-with completeness: After this PR all three artifacts spec 016 Lockstep: Fixture coverage: SummaryOne real maintenance hazard: the invariant for Automated review by Claude. Diff size: 100 lines. |
Problem
New project creation was fully blocked. Every scaffold failed at stagecraft's per-request
regenerateProducedIndexfail-closed gate:Root cause
#25 (
3d900fd) strippedwebsite/from produced apps but left template-encore's spec016-docs-website, whichestablishes: ["website/", ".github/workflows/deploy-docs.yml"]. The born-withspecs/carry-forward drop only consultedGENERATOR_META_SPEC_IDS(factory-encore's own slugs, which never match a baseline slug), so every produced app carried spec 016 whilewebsite/was gone. The produced app's ownspec-spine indexthen emitted I-004 for the missingwebsite/unit andindex checkcorrectly failed closed. This was a genuine spec/code drift from the incomplete #25 cleanup; the stagecraft gate did its job.Fix
born-with.ts: addTEMPLATE_DEV_SPEC_IDS(016-docs-website), consulted alongsideGENERATOR_META_SPEC_IDSinclassifyEntry'sspecs/branch.setup-app.ts: drop the orphaned.github/workflows/deploy-docs.ymlin the copy walk (every other workflow stays born-with the app).setup-app.test.ts: seed the spec + a kept/dropped workflow pair, with negative assertions.Verification
compile → index → index check: 0 diagnostics, "index is fresh", exit 0 (was exit 2).