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.
Think468m
Plan468m
Build139m
Verify4m
Assertion ledger
27 claims, each independently verified. Showing 8 — show all →
| ID | Says | Matcher | |
|---|---|---|---|
| A001 | Work complete accepts a JSON output flag | verified | ok |
| A002 | Completing work with JSON flag produces a structured envelope | verified | ok |
| A003 | JSON output includes a timestamp for audit trails | verified | ok |
| A004 | JSON output includes results with completion summary | verified | ok |
| A005 | JSON output includes chain health metadata | verified | ok |
| A006 | JSON results include the work item slug | verified | ok |
| A007 | JSON results include the feature name | verified | ok |
| A008 | JSON results include the verification result | verified | ok |
Findings 5 total
riskpackages/cli/src/commands/work.ts→ closed
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.ts→ closed
SEVERITY_ORDER lookup duplicated identically in Findings block and Build Concerns block — extract to module-level constant
debtpackages/cli/tests/commands/work.test.ts→ closed
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.ts→ closed
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.ts→ closed
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