Show Finding Details in CLI Output

The CLI renders `f.title` for every critical/warn finding but never renders `f.detail`. Three of four finding rules write meaningful detail text — methodology disclaimers, file:line locations, actionable explanations — that the founder never sees. The detail for the validation finding ("Routes using wrapper-based or middleware-based validation may not be detected") is the only visible qualification of a heuristic count, and it's invisible. Show the detail.

verdict PASSscore 10 / 10findings 4 (0 risk · 1 debt · 3 obs)duration 59mrejection cycles 0shipped May 26, 2026surface cli

Pipeline timeline

Intent to proven code in 59m across Think, Plan, Build, and Verify.

Think
31m
Plan
6m
Build
6m
Verify
6m

Assertion ledger

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

IDSaysMatcher
A001Scan output shows detail text below each warning or critical findingverifiedok
A002Detail text appears dimmed to distinguish it from the finding titleverifiedok
A003Findings without detail text show only the title lineverifiedok
A004Multi-line detail text renders each line separatelyverifiedok
A005Validation finding explains its detection methodology in one lineverifiedok
A006Validation detail no longer contains a newline characterverifiedok
A007Validation detail still mentions wrapper-based detection limitationverifiedok
A008Secret findings show their redacted match and file location as detailverifiedok

Findings 4 total

debtpackages/cli/src/engine/findings/rules/validation.tsclosed
Validation detail text contains redundant repetition — 'checks imports in first 30 lines' appears twice in the same sentence
obspackages/cli/src/commands/scan.tsclosed
formatHumanReadable exported solely for test access — increases public API surface
obspackages/cli/tests/commands/scan-finding-details.test.tsclosed
A002 test verifies indentation but not chalk.gray ANSI styling — source inspection confirms gray is applied but test doesn't enforce it
obspackages/cli/tests/commands/scan-finding-details.test.tsclosed
A003 test checks next line isn't detail-indented rather than counting output lines — functionally equivalent but diverges from contract's 'outputLines.length equals 1' framing

Integrity seal

scopesha256:20f5660cee79f...
contractsha256:df547c88834ae...
plansha256:e386463c95e52...
specsha256:f8d71d41cce33...
build-reportsha256:73bfc646db8d1...
build-datasha256:94bdbdc3b2226...
verify-reportsha256:628242bdc0309...
verify-datasha256:f60ca3a5144c7...
audit cmd$ ana proof audit show-finding-details   → all hashes match