Proof-Context Intelligence — why this file exists and what moves with it

Turn `ana proof context {files}` from a "what's wrong here" lookup into the orientation surface an agent reads before touching code. It already returns `findings + build_concerns + touch_count + last_touched` (`proofSummary.ts:1147`). Add the two highest-value questions an agent has and can't answer anywhere else:

verdict PASSscore 34 / 34findings 16 (2 risk · 2 debt · 12 obs)duration 15h 7mrejection cycles 1shipped Jun 18, 2026surface cli

Pipeline timeline

Intent to proven code in 15h 7m across Think, Plan, and 3 Build→Verify phases.

Think
62m
Plan
15m
Build 1
22m
Verify 1
7m
Build 2
15m
Verify 2
22m
Build 3
149m
Verify 3
7m

Assertion ledger

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

IDSaysMatcher
A001Proof context tells you which verified work items shaped a fileverifiedok
A002Each shaping work item carries its slug, kind, date, and intentverifiedok
A003The proof context output shows a 'Shaped by' sectionverifiedok
A004When more than three work items shaped a file, a drill-down hint points to the cheap detail viewverifiedok
A005The --why view shows the work item's intentverifiedok
A006The --why view hides provenance noise like cost and token accountingverifiedok
A007The --why view hides timing breakdownsverifiedok
A008A long work-item intent is truncated, not dumped whole, in Shaped byverifiedok

Findings 16 total

obsclosed
Contract file_changes omits the repo-root dogfood agent copies (.claude/agents/*, .codex/agents/*) even though existing tests enforce byte-for-byte parity with templates; build correctly synced them but the contract under-specified the change surface
debtpackages/cli/tests/commands/proof.test.tsmonitor
A006 (--why omits Provenance) has no positive-control guard asserting the full card DOES contain 'Provenance'; only A007's Timing has that guard, so A006 could silently pass if the Provenance label were renamed. Live-verified this round, but the test alone is weaker than A007's
obspackages/cli/src/commands/proof.tsmonitor
--why flag is silently ignored when `ana proof` is invoked in list mode (no slug, no --last); harmless but the flag accepts input it does nothing with
obspackages/cli/src/utils/proofSummary.tsmonitor
proofSummary.ts (+32) and proof.ts (+113) continue growth past the comfort threshold flagged by prior findings (decompose-proof-summary-C1, audit-matrix-orientation-C7); additive and well-contained here but the trajectory persists
riskpackages/cli/tests/commands/init/template-propagation.test.tsscope
Pre-existing flaky test: template-propagation 'Claude-only never touches .codex tree' times out at ~5025ms under full-suite concurrency (passes 100% in isolation). Reproduced on main (failed 1/4 runs at 5025ms with no Phase 2 changes), so NOT a regression. Phase 2 adds import-graph build to every `ana init`, which may marginally raise the flake rate. Root cause: a single test spawns the real CLI `init` twice under the default 5000ms timeout. Fix: raise the timeout on these CLI-spawning init tests.
+11more findings

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
ana632814.0k65.7k3.4M$4.32
plan77317.3k51.8k2.2M$3.18
build2151099.3k61.0k11.6M$8.22
verify79357.6k23.5k1.9M$2.12
build 2154768.6k38.3k5.1M$4.53
verify 2126508.3k33.5k4.1M$4.03
build 32331129.8k99.4k15.1M$11.19
verify 389398.1k46.1k3.4M$3.57
build 489477.5k28.9k2.9M$3.00
verify 473297.4k24.8k1.6M$2.04
TOTAL 10 sessions$46.20 (table 2026-06-14)
churn 28 files · +2752/−37
completeness ✓ complete (plan 1/1 · build 4/4 · verify 4/4)

Session attestation

How each agent session behaved, coverage-aware. Evidence, not a gate — unverifiable is honest abstention, not a failure.

core v0.4.0 · framework anatomia
plan · 52 claims
1 satisfied · 0 violated · 51 unverifiable
coverage 1/52 checked · 51 unverifiable
ana-plan:skill:testing-standards unverifiable (absent-signal)
contract:file-scope:packages/cli/src/utils/proofSummary.ts unverifiable (channel-coverage-incomplete)
contract:file-scope:packages/cli/src/commands/proof.ts unverifiable (channel-coverage-incomplete)
mandate sha256:88fecbfdd6… · transcript sha256:c4802eda92…
⚠ incomplete coverage
build · 52 claims
1 satisfied · 0 violated · 51 unverifiable
coverage 1/52 checked · 51 unverifiable
ana-build:verify-independence unverifiable (channel-coverage-incomplete)
contract:file-scope:packages/cli/src/utils/proofSummary.ts unverifiable (channel-coverage-incomplete)
contract:file-scope:packages/cli/src/commands/proof.ts unverifiable (channel-coverage-incomplete)
mandate sha256:98b13f10d2… · transcript sha256:9d3d098fb4…
⚠ incomplete coverage
verify · 55 claims
2 satisfied · 0 violated · 53 unverifiable
coverage 2/55 checked · 53 unverifiable
ana-verify:skill:testing-standards unverifiable (absent-signal)
ana-verify:skill:coding-standards unverifiable (absent-signal)
ana-verify:verify-independence unverifiable (channel-coverage-incomplete)
mandate sha256:ca964484ce… · transcript sha256:075b84e120…
⚠ incomplete coverage
build 2 · 52 claims
1 satisfied · 16 violated · 35 unverifiable
coverage 17/52 checked · 35 unverifiable
ana-build:verify-independence unverifiable (channel-coverage-incomplete)
contract:file-scope:packages/cli/src/utils/proofSummary.ts violated (predicate-not-matched)
contract:file-scope:packages/cli/src/commands/proof.ts violated (predicate-not-matched)
mandate sha256:98b13f10d2… · transcript sha256:61fa624f76…
⚠ incomplete coverage
verify 2 · 55 claims
2 satisfied · 0 violated · 53 unverifiable
coverage 2/55 checked · 53 unverifiable
ana-verify:verify-independence unverifiable (channel-coverage-incomplete)
ana-verify:no-code-branch-mutation:git-rebase unverifiable (command-unresolvable)
ana-verify:no-code-branch-mutation:git-push---force unverifiable (command-unresolvable)
mandate sha256:ca964484ce… · transcript sha256:73aa453558…
⚠ incomplete coverage
build 3 · 52 claims
1 satisfied · 0 violated · 51 unverifiable
coverage 1/52 checked · 51 unverifiable
ana-build:verify-independence unverifiable (channel-coverage-incomplete)
contract:file-scope:packages/cli/src/utils/proofSummary.ts unverifiable (channel-coverage-incomplete)
contract:file-scope:packages/cli/src/commands/proof.ts unverifiable (channel-coverage-incomplete)
mandate sha256:98b13f10d2… · transcript sha256:f659d2acf2…
⚠ incomplete coverage
verify 3 · 55 claims
4 satisfied · 0 violated · 51 unverifiable
coverage 4/55 checked · 51 unverifiable
ana-verify:verify-independence unverifiable (channel-coverage-incomplete)
contract:file-scope:packages/cli/src/utils/proofSummary.ts unverifiable (channel-coverage-incomplete)
contract:file-scope:packages/cli/src/commands/proof.ts unverifiable (channel-coverage-incomplete)
mandate sha256:d57fe0ffd4… · transcript sha256:04a0ba2d46…
⚠ incomplete coverage
build 4 · 52 claims
1 satisfied · 1 violated · 50 unverifiable
coverage 2/52 checked · 50 unverifiable
ana-build:verify-independence violated (predicate-not-matched)
contract:file-scope:packages/cli/src/utils/proofSummary.ts unverifiable (channel-coverage-incomplete)
contract:file-scope:packages/cli/src/commands/proof.ts unverifiable (channel-coverage-incomplete)
mandate sha256:98b13f10d2… · transcript sha256:e942fc0059…
⚠ incomplete coverage
verify 4 · 55 claims
4 satisfied · 0 violated · 51 unverifiable
coverage 4/55 checked · 51 unverifiable
ana-verify:verify-independence unverifiable (channel-coverage-incomplete)
contract:file-scope:packages/cli/src/utils/proofSummary.ts unverifiable (channel-coverage-incomplete)
contract:file-scope:packages/cli/src/commands/proof.ts unverifiable (channel-coverage-incomplete)
mandate sha256:d57fe0ffd4… · transcript sha256:30f3b41260…
⚠ incomplete coverage
verdict veto: not applied — verify did not read build_report.md
veto is forward-only; pre-veto verdicts were self-reported.

Integrity seal

scopesha256:03f90448dabe9...
contractsha256:10c99c610fde3...
plansha256:17b7177515d71...
spec-1sha256:dc3bb9e82878c...
spec-2sha256:525d4090e176d...
spec-3sha256:4f4c9f06e8321...
build-report-1sha256:d7e9c1c781c15...
build-data-1sha256:c16c2fcb1385e...
verify-report-1sha256:fc21b7acd7676...
verify-data-1sha256:41c36185d1d12...
build-report-2sha256:ddc4f4185482c...
build-data-2sha256:39b757765b6da...
verify-report-2sha256:a7b3e1062aa28...
verify-data-2sha256:3f5f4baaf1ec2...
build-report-3sha256:6711982afa403...
build-data-3sha256:2520c7d4672fd...
verify-report-3sha256:a469a98d46d86...
verify-data-3sha256:21f79e3c7ac70...
audit cmd$ ana proof audit proof-context-intelligence   → all hashes match