Rename captureGate → testEvidenceGate (clean rename, no back-compat)

The `ana.json` flag `captureGate` doesn't describe what it does — it gates whether a `build_report.md` save must carry **real captured test-run evidence**. Worse, "capture" is *overloaded*: it names this subsystem (the "capture marker" / seal that proves tests ran) **and** the unrelated provenance subsystem (`processCapture` / `processCaptureStrict`, the harness payload). Two different things wearing one word.

verdict PASSscore 10 / 10findings 6 (0 risk · 2 debt · 4 obs)duration 2h 47mrejection cycles 0shipped Jun 9, 2026

Pipeline timeline

Intent to proven code in 2h 47m across Think, Plan, Build, and Verify.

Think
84m
Plan
33m
Build
47m
Verify
6m

Assertion ledger

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

IDSaysMatcher
A001New projects turn the test-evidence gate on under its new nameverifiedok
A002Turning the gate on requires test evidence before a build report savesverifiedok
A003Turning the gate off lets a build report save without test evidenceverifiedok
A004A config with no gate setting is treated as offverifiedok
A005The block message tells users about the testEvidenceGate settingverifiedok
A006Setting the gate flag is recognized without a warningverifiedok
A007Config files can carry the gate setting under its new nameverifiedok
A008The doctor view reports the gate state from the new keyverifiedok

Findings 6 total

debtpackages/cli/src/utils/capture-marker.tsclosed
Residual prose 'capture gate' (concept, not the symbol) survives the total rename in 4 source comments/JSDoc
debtpackages/cli/src/commands/artifact.tsacknowledge
artifact.ts comments still call the policy 'the capture gate' in prose (1041, 1073, 1495) — concept now named test-evidence gate
obspackages/cli/tests/utils/capture-marker.test.tsacknowledge
capture-marker.test.ts edited but absent from contract file_changes — a necessary consequence of renaming the exported evaluateCaptureGate/CaptureGateResult symbols
obspackages/cli/tests/commands/artifact.test.tsmonitor
A004's tagged test exercises missing/malformed ana.json, not the precise 'valid config, flag absent' fail-safe; that exact case is covered untagged in init.test.ts
obspackages/cli/tests/commands/doctor.test.tsmonitor
@ana A006 appears on both config.test.ts (this contract's KNOWN_FIELDS assertion) and doctor.test.ts (a predecessor contract's A006) — tags are not globally unique, muddying traceability
+1more 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
plan59264.0k33.6k1.6M$2.04
ana130477.5k95.2k6.4M$6.55
build2461256.3k80.2k10.6M$8.22
verify64286.2k20.9k1.5M$1.77
TOTAL 4 sessions$18.58 (table 2026-06-14)
churn 15 files · +111/−105
completeness ✓ complete (plan 1/1 · build 1/1 · verify 1/1)

Integrity seal

scopesha256:0a8cfa55f425d...
contractsha256:ba2d93a9959fd...
plansha256:13ec65b204b59...
specsha256:4b4fe25053e08...
build-reportsha256:a38990cc8f861...
build-datasha256:33eafc9d3800f...
verify-reportsha256:97ebbf0efb8ff...
verify-datasha256:fe0c46c21b2de...
audit cmd$ ana proof audit rename-capturegate-testevidencegate   → all hashes match