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.

Think
13m
Plan
5m
Build
18m
Verify
6m

Assertion ledger

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

IDSaysMatcher
A001Completing a work item points you to the command that shows its full proofverifiedok
A002The completion JSON tells an agent exactly which command to run nextverifiedok
A003Even an already-completed work item still points you to its proofverifiedok
A004An already-completed work item still returns the next command in JSONverifiedok
A005Asking for the latest proof shows the most recently completed oneverifiedok
A006The latest proof in JSON is labelled with its real work item nameverifiedok
A007Asking for the latest proof gives the same JSON shape as asking by nameverifiedok
A008The --latest spelling works the same as --lastverifiedok

Findings 4 total

debtpackages/cli/src/commands/proof.tsmonitor
Empty-chain JSON payload now triplicated — --last empty branch adds a third copy of wrapJsonResponse('proof', { entries }, chain)
debtpackages/cli/tests/commands/proof.test.tsmonitor
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
obsclosed
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.tsacknowledge
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
sessionturnstoolsinoutcachecost
ana42206.0k17.4k814.4k$1.17
plan34156.0k18.0k673.9k$1.12
build170827.4k49.1k7.9M$6.01
verify57246.4k18.6k1.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