Website Test Suite
Make the website a real testable surface. Add a test script and 30-40 tests across 7 new files covering the data layer computation functions, pure utilities, and structural integrity. After this ships, `(cd website && pnpm vitest run)` runs 38-48 meaningful tests instead of 8 marketing-stats tests. Pipeline verification of website changes becomes real verification, not theater.
verdict PASSscore 36 / 36findings 5 (0 risk · 3 debt · 2 obs)duration 1h 2mrejection cycles 0shipped May 21, 2026surface website
Pipeline timeline
Intent to proven code in 1h 2m across Think, Plan, Build, and Verify.
Think4m
Plan6m
Build5m
Verify5m
Assertion ledger
36 claims, each independently verified. Showing 8 — show all →
| ID | Says | Matcher | |
|---|---|---|---|
| A001 | The website package has a test script that runs vitest without watch mode | verified | ok |
| A002 | Running website tests produces at least 38 passing tests | verified | ok |
| A003 | The root test command runs both CLI and website tests without hanging | verified | ok |
| A004 | Proof stats correctly count entries, assertions, findings, and rejection cycles | verified | ok |
| A005 | Proof stats returns zeros when there are no proof entries | verified | ok |
| A006 | Only entries with at least one rejection cycle are counted as rejections | verified | ok |
| A007 | Median timing computation filters out zero-valued stages before calculating | verified | ok |
| A008 | A timing stage where all entries have zero returns zero median | verified | ok |
Findings 5 total
debtwebsite/lib/__tests__/docs-data/data-integrity.test.ts→ accept
Supplementary files silent pass on missing — existsSync guard inside for-loop means missing files are never asserted
debtwebsite/lib/__tests__/docs-data/strip-jsx.test.ts→ closed
toContain('2') is fragile — digit could match unrelated content if fixture input changes
obswebsite/lib/__tests__/docs-data/strip-jsx.test.ts→ closed
3 extra tests beyond spec (JSX comments, self-closing components, odd-vs-even median) — harmless over-building
debtwebsite/components/hero/Hero.tsx→ closed
Pre-existing lint warnings in Hero.tsx — formatAge imported but unused, latest assigned but unused
obs→ closed
Proof context findings still active — VERSION_FALLBACK single-shot, hardcoded version, dead /#pipeline link, non-clickable row copy
Integrity seal
scopesha256:8700057bc68c5...
contractsha256:525f09d93f786...
plansha256:a319cbd9f11ef...
specsha256:65e6e48b5d42f...
build-reportsha256:ea20738f3b9d4...
build-datasha256:56be6f95fcefa...
verify-reportsha256:ce7d88f23e51b...
verify-datasha256:a632195cdc3a4...
audit cmd$ ana proof audit website-test-suite → all hashes match