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.
Think6m
Plan4m
Build5m
Verify3m
Assertion ledger
14 claims, each independently verified. Showing 8 — show all →
| ID | Says | Matcher | |
|---|---|---|---|
| A001 | Ship log rows include the slug from the proof chain | verified | ok |
| A002 | Clicking a ship log row navigates to the proof detail page | verified | ok |
| A003 | Rows without a slug render as plain divs, not broken links | verified | ok |
| A004 | Mock feed entries use slugs that exist in the static build | verified | ok |
| A005 | The proof page accepts slugs not in the static build | verified | ok |
| A006 | A new proof entry renders a fallback page instead of a 404 | verified | ok |
| A007 | The fallback page shows the feature name from proof chain | verified | ok |
| A008 | The fallback page shows the verification result | verified | ok |
Findings 4 total
obswebsite/app/docs/proof/[slug]/page.tsx→ closed
Duplicate GitHub fetch for dynamic slugs — generateMetadata and page component both call fetchProofChainEntry independently
riskwebsite/app/docs/proof/[slug]/page.tsx→ monitor
GitHub outage degrades valid new slugs to 404 — fetchProofChainEntry returns null on network failure, triggering notFound()
debtwebsite/lib/proof-feed.ts→ closed
Mock feed slug-to-entry mapping is positional, not semantic — mock entry content describes different features than the slug names imply
obs→ closed
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