Deferred from kickoff-lifecycle Task 6 (PR #92) per the scope-to-writer decision.
Why this is required before KL Task 3: Task 6 ships the derived Status: reconcile writer, but the bundle **Status:** header is still hashed into the content anchor (scripts/spec-anchor.sh). Once Task 3 ships the Draft→Ready producer, the reconcile's Ready→Active flip will change the anchor and trip the next dispatch's freshness gate (REQ-C1.3). Inert today (no bundle is Ready yet; live Active specs no-op), but load-bearing once Task 3 lands.
The fix must:
- Exclude the bundle
Status: header from the content anchor (scripts/spec-anchor.sh + doctrine/spec-format.md), consistent with D-3 (Status is derived content, like tasks.md section placement).
- Provide a cross-spec re-anchor migration for live sibling specs (removing a hashed line re-hashes every recorded anchor — affects orchestration-concurrency and any other Active spec).
Hard gate: MUST land before kickoff-lifecycle Task 3 (the Draft→Ready producer, gated behind Task 6 by D-9). Also logged in specs/_observations/opportunities.md. Related: #88.
Deferred from kickoff-lifecycle Task 6 (PR #92) per the scope-to-writer decision.
Why this is required before KL Task 3: Task 6 ships the derived
Status:reconcile writer, but the bundle**Status:**header is still hashed into the content anchor (scripts/spec-anchor.sh). Once Task 3 ships the Draft→Ready producer, the reconcile's Ready→Active flip will change the anchor and trip the next dispatch's freshness gate (REQ-C1.3). Inert today (no bundle is Ready yet; live Active specs no-op), but load-bearing once Task 3 lands.The fix must:
Status:header from the content anchor (scripts/spec-anchor.sh+doctrine/spec-format.md), consistent with D-3 (Status is derived content, like tasks.md section placement).Hard gate: MUST land before kickoff-lifecycle Task 3 (the Draft→Ready producer, gated behind Task 6 by D-9). Also logged in specs/_observations/opportunities.md. Related: #88.