# 01 Capture And Publish Promotion Guidance Implementation Summary ## Summary Published a reproducible promotion contract for every callable Day Shift level transition. The implementation captures sanitized preview, apply, failure, interruption, and recovery evidence in disposable fixtures; labels shipped and unsupported paths; preserves stable task, attempt, and evidence semantics; and binds authored, generated, navigation, content-truth, and fail-closed audit surfaces to one frozen evidence bundle. ## Changed Paths - `apps/docs/content-workflows/governed-promotion-examples.json` - `apps/docs/scripts/capture-promotion-examples.mjs` - `apps/docs/src/content/docs/workflows/promote-work.md` - `apps/docs/src/content/docs/guides/promotion-and-evidence-preservation.md` - `apps/docs/src/content/docs/reference/commands/operations.md` - `apps/docs/astro.config.mjs` - `apps/docs/canonical-page-inventory.json` - `apps/docs/content-audit/public-content-surfaces.json` - `apps/docs/content-audit/product-truth-ledger.json` - `apps/docs/content-audit/content-dispositions.json` - `apps/docs/content-architecture/information-architecture.json` - `apps/docs/content-architecture/route-search-migration.json` - `apps/docs/scripts/information-architecture-audit.mjs` - `apps/docs/scripts/route-search-audit.mjs` - `apps/docs/scripts/structured-lifecycle-audit.mjs` - `apps/docs/scripts/promotion-guidance-audit.mjs` - `apps/docs/scripts/check.mjs` - `apps/docs/tests/promotion-guidance.test.mjs` - `apps/docs/tests/content-surface-inventory.test.mjs` - `apps/docs/tests/content-dispositions.test.mjs` - `apps/docs/tests/product-truth-ledger.test.mjs` - `apps/docs/tests/information-architecture-contract.test.mjs` - `apps/docs/tests/route-search-migration.test.mjs` - `apps/docs/public/content/workflows/promote-work.md` - `apps/docs/public/content/guides/promotion-and-evidence-preservation.md` - `apps/docs/public/content/reference/commands/operations.md` - `apps/docs/public/llms.txt` - `apps/docs/public/llms-full.txt` ## Acceptance Criteria Results - [P6-AC-04] Passed. The frozen matrix identifies Basic-to-Structured, Basic-to-Governed, and Structured-to-Governed as shipped preview/apply paths and documents expected revisions, complete mappings, stable identity, attempt and evidence preservation, transaction-backed apply, interruption, and exact-fingerprint recovery. - [P6-AC-05] Passed. Demotion is explicitly unsupported, review is explicitly read-only, and audits fail closed if unavailable or unshipped mutation is presented as callable behavior. ## Validation Performed - `m03-promotion-runtime-r2-20260803`: `node --test tests_v2/cli/planning/promotion.test.js tests_v2/planning/promotion-application.test.js` passed 22 tests with zero failures. It supersedes the preserved failed `m03-promotion-runtime-20260803` receipt after the authorized adjacent helper repair. - `m03-promotion-docs-r2-20260803`: `node --test apps/docs/tests/promotion-guidance.test.mjs apps/docs/tests/structured-lifecycle-documentation.test.mjs` passed 10 tests with zero failures, including exact frozen-evidence recapture and fail-closed drift assertions. It supersedes `m03-promotion-docs-20260803` so the effective receipt has the required preview/apply sequence. - `m03-content-contracts-20260803`: the five declared content inventory, disposition, product-truth, information-architecture, and route/search test files passed 32 tests with zero failures. - `m03-docs-check-20260803`: `pnpm --filter @day-shift/docs docs:check` passed the complete documentation publication gate. - `implementation-summary build` classified 28 task-attributed changed paths as declared targets and omitted 35 unrelated dirty-worktree paths from attribution. A separate `git status --short` audit identified the single authorized adjacent validation-maintenance path described below among those omitted paths. ## Validation Exceptions None. ## Scope Classification The 28 runtime-attributed paths are all declared task targets. Eighteen dirty declared targets were explicitly adopted at the post-readiness baseline from accepted milestone 01 and 02 documentation work; this task layered only the promotion-specific content, count, digest, generated-publication, and regression updates on those bytes. The build reported 35 additional repository changes as unrelated and omitted them from task attribution. One of those omitted paths, `tests_v2/cli/planning/promotion.test.js`, is the explicitly authorized adjacent validation-maintenance deviation below; the other 34 remain unrelated shared-worktree state. ## Runtime Evidence Boundary - Runtime capture is owned by `apps/docs/scripts/capture-promotion-examples.mjs`, which executes the repository CLI against isolated temporary Basic and Structured fixtures and emits only sanitized repository-relative evidence. - Frozen evidence is owned by `apps/docs/content-workflows/governed-promotion-examples.json` with evidence ID `governed-promotion-examples-v1` and semantic digest `sha256:f662a9073e61940a5ffea2fc13b1a76d12db1466773f9cb11ddc7840202656fc`. - Runtime qualification is owned by `apps/docs/scripts/promotion-guidance-audit.mjs`, its focused test, the current CLI descriptors, and the effective promotion runtime validation receipt. The audit asserts exact path status, no-write failure boundaries, recovery fingerprints, generated mirrors, and the absence of absolute fixture paths. - Public documentation and generated mirrors describe shipped behavior but do not implement promotion. The executable capture and tests are the evidence source for P6-AC-04 and P6-AC-05. ## Deviations After `m03-promotion-runtime-20260803` failed because the existing `authorizeTaskWithCli` test helper invoked link materialization without the now-required dry-run evidence binding, the phase coordinator authorized one narrow adjacent validation repair in `tests_v2/cli/planning/promotion.test.js`. That dependency path maps directly from the declared capture and focused-test targets (`apps/docs/scripts/capture-promotion-examples.mjs` and `apps/docs/tests/promotion-guidance.test.mjs`). The helper now performs a no-write preview, reads `data.validationEvidence.evidenceId`, and supplies that exact ID to the write. It is not included in Changed Paths runtime attribution. The exact superseding runtime suite passed all 22 tests, leaving no residual validation gap. ## Risks and Follow-Ups - Frozen promotion evidence intentionally fails closed when descriptors, revision semantics, mapping behavior, transaction recovery, or public mirrors drift; recapture and review the bundle when those shipped contracts change. - No unresolved task blocker or discovered follow-up remains. ## Open Questions - None currently.