Surface the proof after work complete + ana proof --last
The proof is the pipeline's payoff, but reading the *just-minted* one carries friction at two touchpoints, and both force a human or agent to remember and retype a slug:
verdict PASSscore 13 / 13findings 4 (0 risk · 2 debt · 2 obs)duration 2h 24mrejection cycles 0shipped Jun 9, 2026
Pipeline timeline
Intent to proven code in 2h 24m across Think, Plan, Build, and Verify.
Think13m
Plan5m
Build18m
Verify6m
Assertion ledger
13 claims, each independently verified. Showing 8 — show all →
| ID | Says | Matcher | |
|---|---|---|---|
| A001 | Completing a work item points you to the command that shows its full proof | verified | ok |
| A002 | The completion JSON tells an agent exactly which command to run next | verified | ok |
| A003 | Even an already-completed work item still points you to its proof | verified | ok |
| A004 | An already-completed work item still returns the next command in JSON | verified | ok |
| A005 | Asking for the latest proof shows the most recently completed one | verified | ok |
| A006 | The latest proof in JSON is labelled with its real work item name | verified | ok |
| A007 | Asking for the latest proof gives the same JSON shape as asking by name | verified | ok |
| A008 | The --latest spelling works the same as --last | verified | ok |
Findings 4 total
debtpackages/cli/src/commands/proof.ts→ monitor
Empty-chain JSON payload now triplicated — --last empty branch adds a third copy of wrapJsonResponse('proof', { entries }, chain)
debtpackages/cli/tests/commands/proof.test.ts→ monitor
No coverage for `proof --last --json` on an empty/missing chain — A011/A012 only exercise human stdout + exit code, so the new duplicated JSON empty branch is unexercised
obs→ closed
A005 stdout-contains-'recent-slug' is satisfied via the slug token embedded in the fixture's `feature` text, not a printed slug field — the detail card does not render the bare slug. Mechanically correct, but the contract assertion couples to fixture naming.
obspackages/cli/src/commands/proof.ts→ acknowledge
sortEntriesByRecency kept module-private (not exported) — good restraint given proof.ts's documented history of over-exporting helpers (learn-session-memory-C1)
Provenance
Who ran what, and what it cost. Recomputable estimates from the shared price table — subordinate to the verdict, never gating.
model claude-opus-4-8
| session | turns | tools | in | out | cache | cost |
|---|---|---|---|---|---|---|
| ana | 42 | 20 | 6.0k | 17.4k | 814.4k | $1.17 |
| plan | 34 | 15 | 6.0k | 18.0k | 673.9k | $1.12 |
| build | 170 | 82 | 7.4k | 49.1k | 7.9M | $6.01 |
| verify | 57 | 24 | 6.4k | 18.6k | 1.2M | $1.46 |
| TOTAL 4 sessions | $9.75 (table 2026-06-14) | |||||
churn 6 files · +302/−7
completeness ✓ complete (plan 1/1 · build 1/1 · verify 1/1)
Integrity seal
scopesha256:fd5851db97090...
contractsha256:2add731fd0175...
plansha256:3502abd400c8f...
specsha256:5fd5d96a04eac...
build-reportsha256:62b89bd1212f7...
build-datasha256:c36d9f3e8c6d6...
verify-reportsha256:7dcbaaf70eed6...
verify-datasha256:dc73d99ee87c0...
audit cmd$ ana proof audit proof-last-and-completion-hint → all hashes match