Ship log proof linking

Make the ship log's expanded proof rows link to their corresponding AnaDocs proof pages at `/docs/proof/{slug}`. The ship log is the public proof surface — clicking a row should take you to the full verification record. Currently the data is there (slug exists in proof_chain.json, the proof explorer pages exist) but the two surfaces aren't connected.

verdict PASSscore 14 / 14findings 4 (1 risk · 1 debt · 2 obs)duration 35mrejection cycles 0shipped May 16, 2026surface website

Pipeline timeline

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

Think
6m
Plan
4m
Build
5m
Verify
3m

Assertion ledger

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

IDSaysMatcher
A001Ship log rows include the slug from the proof chainverifiedok
A002Clicking a ship log row navigates to the proof detail pageverifiedok
A003Rows without a slug render as plain divs, not broken linksverifiedok
A004Mock feed entries use slugs that exist in the static buildverifiedok
A005The proof page accepts slugs not in the static buildverifiedok
A006A new proof entry renders a fallback page instead of a 404verifiedok
A007The fallback page shows the feature name from proof chainverifiedok
A008The fallback page shows the verification resultverifiedok

Findings 4 total

obswebsite/app/docs/proof/[slug]/page.tsxclosed
Duplicate GitHub fetch for dynamic slugs — generateMetadata and page component both call fetchProofChainEntry independently
riskwebsite/app/docs/proof/[slug]/page.tsxmonitor
GitHub outage degrades valid new slugs to 404 — fetchProofChainEntry returns null on network failure, triggering notFound()
debtwebsite/lib/proof-feed.tsclosed
Mock feed slug-to-entry mapping is positional, not semantic — mock entry content describes different features than the slug names imply
obsclosed
Contract A012 verifiable only by source inspection — no test infrastructure for website components

Integrity seal

scopesha256:6c8dd44a226cf...
contractsha256:1a7e998d17e89...
plansha256:b8a795679d25e...
specsha256:35105dfb55668...
build-reportsha256:d13a4d2dae26d...
build-datasha256:558b19f74b59c...
verify-reportsha256:6b33921b9c0f8...
verify-datasha256:c7fe55fa94f81...
audit cmd$ ana proof audit ship-log-proof-links   → all hashes match