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.
Think1m
Plan9m
Build10m
Verify4m
Assertion ledger
18 claims, each independently verified. Showing 8 — show all →
| ID | Says | Matcher | |
|---|---|---|---|
| A001 | An unnumbered build report save on a multi-phase item is redirected to the first build phase | verified | ok |
| A002 | The corrected build report save tells the user what numbered report type was used | verified | ok |
| A003 | The corrected build report save records numbered report metadata | verified | ok |
| A004 | The corrected build companion is saved with the matching phase number | verified | ok |
| A005 | An unnumbered verify report save on a multi-phase item is redirected to the phase ready for verification | verified | ok |
| A006 | The corrected verify report save tells the user what numbered report type was used | verified | ok |
| A007 | The corrected verify report save records numbered report metadata | verified | ok |
| A008 | The corrected verify companion is saved with the matching phase number | verified | ok |
Findings 3 total
debtpackages/cli/src/commands/artifact.ts→ scope
Phase inference adds a second .saves.json reader instead of sharing the existing metadata read path
debtpackages/cli/tests/commands/artifact.test.ts→ closed
Work-status progression test calls determineStage with constructed state instead of exercising ana work status discovery
obspackages/cli/tests/commands/artifact.test.ts→ monitor
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