Multi-Phase Report Naming Guard

Fix issue #232: on a multi-phase work item, `ana artifact save build-report {slug}` and `ana artifact save verify-report {slug}` should not silently save unnumbered reports when the phase structure requires numbered reports.

verdict PASSscore 18 / 18findings 3 (0 risk · 2 debt · 1 obs)duration 1h 8mrejection cycles 0shipped May 31, 2026surface cli

Pipeline timeline

Intent to proven code in 1h 8m across Think, Plan, Build, and Verify.

Think
1m
Plan
9m
Build
10m
Verify
4m

Assertion ledger

18 claims, each independently verified. Showing 8 — show all →

IDSaysMatcher
A001An unnumbered build report save on a multi-phase item is redirected to the first build phaseverifiedok
A002The corrected build report save tells the user what numbered report type was usedverifiedok
A003The corrected build report save records numbered report metadataverifiedok
A004The corrected build companion is saved with the matching phase numberverifiedok
A005An unnumbered verify report save on a multi-phase item is redirected to the phase ready for verificationverifiedok
A006The corrected verify report save tells the user what numbered report type was usedverifiedok
A007The corrected verify report save records numbered report metadataverifiedok
A008The corrected verify companion is saved with the matching phase numberverifiedok

Findings 3 total

debtpackages/cli/src/commands/artifact.tsscope
Phase inference adds a second .saves.json reader instead of sharing the existing metadata read path
debtpackages/cli/tests/commands/artifact.test.tsclosed
Work-status progression test calls determineStage with constructed state instead of exercising ana work status discovery
obspackages/cli/tests/commands/artifact.test.tsmonitor
No-target error test asserts only the headline message, not the exit code or explicit numbered-command guidance

Integrity seal

scopesha256:63d3d326ba100...
contractsha256:074f36697d152...
plansha256:d647dbf4b88b1...
specsha256:b940f1b58e1e1...
build-reportsha256:bc968906bd7df...
build-datasha256:deef6cdb542aa...
verify-reportsha256:0e45b70b7538c...
verify-datasha256:f5c6d8eab6354...
audit cmd$ ana proof audit multi-phase-report-naming-guard   → all hashes match