Dynamic marketing stats — wire command count and version fallback

The marketing site hardcodes product stats in `copy.ts` that the docs data pipeline already computes dynamically. Every new command or version bump requires a manual edit to marketing copy that nobody remembers to do — and the numbers have already drifted (copy says "26 commands" but extraction counts 32; VERSION_FALLBACK says "v1.1.0" but build-meta says "1.0.2").

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

Pipeline timeline

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

Think
1m
Plan
4m
Build
8m
Verify
4m

Assertion ledger

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

IDSaysMatcher
A001The marketing command count returns the real number from extraction dataverifiedok
A002Missing extraction data falls back to the previous hardcoded countverifiedok
A003Malformed extraction data falls back safelyverifiedok
A004The marketing version reads from build metadata with a v prefixverifiedok
A005Missing build metadata falls back to the previous hardcoded versionverifiedok
A006The specStrip renders the dynamic command count instead of the stale numberverifiedok
A007The CLI drawer shows the dynamic command count in its metadataverifiedok
A008The man page shows the correct number of additional commandsverifiedok

Findings 7 total

riskwebsite/lib/marketing-stats.tsclosed
getMarketingVersion produces 'vundefined' when BuildMeta has undefined version field
obswebsite/lib/proof-feed.tsmonitor
VERSION_FALLBACK evaluated at module load time — single-shot, no retry on transient readFileSync failure
debtwebsite/components/system/Drawer.tsxscope
Drawer moreCount has no floor guard — commandCount < 6 produces negative display
obswebsite/lib/marketing-stats.tsclosed
Two separate imports from same module instead of combined destructured import
debtwebsite/lib/__tests__/marketing-stats.test.tsclosed
vundefined test documents a real gap but accepts broken output as expected behavior
+2more findings

Integrity seal

scopesha256:4da7316b61e68...
contractsha256:1ebf1cb8e486d...
plansha256:f7a74242e6fab...
specsha256:8eae9b927c93c...
build-reportsha256:c9476b87183e9...
build-datasha256:adac5334ae94b...
verify-reportsha256:0c45791d4504a...
verify-datasha256:8e111ef1c8af9...
audit cmd$ ana proof audit dynamic-marketing-stats   → all hashes match