Public-surface honesty touch-ups

Three honesty touch-ups on Anatomia's public surface — two corrections and one documentation gap. A product whose entire pitch is *"verified over trusted"* cannot ship a surface that overclaims. Each fix removes a statement the code doesn't honor; none touch legitimate marketing.

verdict PASSscore 4 / 4findings 5 (0 risk · 1 debt · 4 obs)duration 1h 32mrejection cycles 0shipped Jun 17, 2026surface website

Pipeline timeline

Intent to proven code in 1h 32m across Think, Plan, Build, and Verify.

Think
43m
Plan
9m
Build
12m
Verify
6m

Assertion ledger

4 claims, each independently verified.

IDSaysMatcher
A001The verifier chip describes Verify as fault-finding, not as a machine that computes the verdictverifiedok
A002The 'Mechanical, not vibes' section title is left unchangedverifiedok
A003The 'No LLM grades its own code' line is left unchangedverifiedok
A004The manifesto's 'you read the chain' line is left unchangedverifiedok

Findings 5 total

debt.ana/context/project-context.mdclosed
Fix 1 replaces a false CI claim but introduces another — 'coverage gates' is not honored by CI. test.yml:63 runs `pnpm vitest run` with no --coverage flag, and vitest.config.ts defines thresholds but never sets coverage.enabled:true, so coverage thresholds are dormant in CI. The phrase was prescribed verbatim by scope+spec (AC1), so the fix belongs upstream, not in Build.
obsclosed
Contract A004 value 'You don' is a weak substring (matches 'You donate...' as readily as 'You don't'). The guard test wisely over-delivers — it also asserts 'have to trust the model. You read the chain.' — but the contract's pinned value itself is low-bar. Future contracts should pin a more distinctive substring.
obswebsite/lib/proof-feed.tsacknowledge
Pre-existing lint warnings in website (formatAge unused in components/hero or lib/proof-feed; 'latest' unused). 0 errors, gate passes. NOT introduced by this build — the four changed files contain neither symbol. Recorded so the next engineer doesn't attribute them to this change.
obswebsite/lib/copy.tsmonitor
Proof context shows two still-present concerns on website/lib/copy.ts from prior cycles: manifesto outbound link points to /#pipeline (no longer exists), and proofFeed copy references clickable rows that are no longer clickable. This build does not touch either — still present, out of scope here.
obswebsite/content/docs/concepts/contract.mdxacknowledge
Fix 3 docs section summarizes the coverage-gate activation as 'on a scope whose criteria it can parse', folding in the underlying '>=1 recovered AC' condition rather than enumerating it. This is per explicit spec instruction (do not overstate the gate). Accurate and deliberately terse — noted, not a defect.

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
ana44227.2k15.8k896.6k$1.15
plan58227.3k25.1k1.1M$1.54
build113517.9k25.3k3.1M$2.64
verify59287.4k21.5k1.1M$1.54
TOTAL 4 sessions$6.87 (table 2026-06-14)
churn 3 files · +48/−1
completeness ✓ complete (plan 1/1 · build 1/1 · verify 1/1)

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 · 10 claims
1 satisfied · 0 violated · 9 unverifiable
coverage 1/10 checked · 9 unverifiable
ana-plan:skill:testing-standards unverifiable (absent-signal)
contract:file-scope:.ana/context/project-context.md unverifiable (channel-coverage-incomplete)
contract:file-scope:website/lib/copy.ts unverifiable (channel-coverage-incomplete)
mandate sha256:054914fa66… · transcript sha256:21e18802ab…
⚠ incomplete coverage
build · 10 claims
1 satisfied · 1 violated · 8 unverifiable
coverage 2/10 checked · 8 unverifiable
ana-build:verify-independence violated (predicate-not-matched)
contract:file-scope:.ana/context/project-context.md unverifiable (channel-coverage-incomplete)
contract:file-scope:website/lib/copy.ts unverifiable (channel-coverage-incomplete)
mandate sha256:76f18626e6… · transcript sha256:f88a7e2416…
⚠ incomplete coverage
verify · 13 claims
4 satisfied · 0 violated · 9 unverifiable
coverage 4/13 checked · 9 unverifiable
ana-verify:verify-independence unverifiable (channel-coverage-incomplete)
contract:file-scope:.ana/context/project-context.md unverifiable (channel-coverage-incomplete)
contract:file-scope:website/lib/copy.ts unverifiable (channel-coverage-incomplete)
mandate sha256:bf3e30d85d… · transcript sha256:708b9a5035…
⚠ 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:44d42177896ff...
contractsha256:b7e14c7148b07...
plansha256:71ff92f086fae...
specsha256:019fab4d369ad...
build-reportsha256:ad4df1e6559b8...
build-datasha256:9b9cd416505de...
verify-reportsha256:fabd5e0396813...
verify-datasha256:101f703c98bee...
audit cmd$ ana proof audit public-surface-honesty   → all hashes match