Work Complete JSON + Proof Card Findings

Every pipeline-critical command has `--json` except the one that finalizes every run. `work complete` produces console output but no structured data. The autonomous pipeline needs structured completion output. Learn chains from completion to triage. CI gates read the result.

verdict PASSscore 27 / 27findings 5 (1 risk · 3 debt · 1 obs)duration 10h 11mrejection cycles 1shipped Apr 29, 2026surface cli

Pipeline timeline

Intent to proven code in 10h 11m across Think, Plan, Build, and Verify.

Think
468m
Plan
468m
Build
139m
Verify
4m

Assertion ledger

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

IDSaysMatcher
A001Work complete accepts a JSON output flagverifiedok
A002Completing work with JSON flag produces a structured envelopeverifiedok
A003JSON output includes a timestamp for audit trailsverifiedok
A004JSON output includes results with completion summaryverifiedok
A005JSON output includes chain health metadataverifiedok
A006JSON results include the work item slugverifiedok
A007JSON results include the feature nameverifiedok
A008JSON results include the verification resultverifiedok

Findings 5 total

riskpackages/cli/src/commands/work.tsclosed
Recovery path console.log on line 1078 leaks non-JSON text to stdout before JSON envelope — CI consumers doing JSON.parse(stdout) will fail
debtpackages/cli/src/commands/proof.tsclosed
SEVERITY_ORDER lookup duplicated identically in Findings block and Build Concerns block — extract to module-level constant
debtpackages/cli/tests/commands/work.test.tsclosed
A001 test reads source code to check --json registration instead of behavioral test — same anti-pattern flagged in proof context for A020
obspackages/cli/src/commands/work.tsclosed
Main path re-reads proof_chain.json from disk for computeChainHealth after writeProofChain just wrote it — matches known build concern about nudge re-read pattern
debtpackages/cli/tests/commands/work.test.tsclosed
Recovery path JSON test uses output.indexOf('{') to skip non-JSON output — fragile parsing that masks the stdout pollution issue

Integrity seal

scopesha256:5d9262d1743c7...
contractsha256:a4e10906e29ae...
plansha256:649a90a6d9a66...
specsha256:bfae195004735...
build-reportsha256:6a9fcc3f36ad8...
build-datasha256:08db1fd663d97...
verify-reportsha256:f4a82c09d0c04...
verify-datasha256:b1ab678d3506b...
audit cmd$ ana proof audit work-complete-json-proof-card   → all hashes match