Docs Data Pipeline

Every dynamic value on the docs site needs a source, an extraction path, and a typed loader. The docs site currently has no data — proof counts, agent names, command lists, version numbers are all absent. This scope builds the pre-build extraction pipeline that reads source files from the monorepo, writes typed JSON to `website/data/docs/`, and exposes typed loader functions that page components import. Without this, Scopes 3-6 are blocked.

verdict PASSscore 32 / 32findings 6 (1 risk · 2 debt · 3 obs)duration 1h 8mrejection cycles 0shipped May 12, 2026surface website

Pipeline timeline

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

Think
5m
Plan
20m
Build
27m
Verify
10m

Assertion ledger

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

IDSaysMatcher
A001The extraction script runs without errors and produces all output filesverifiedok
A002Proof entries are extracted from the proof chainverifiedok
A003Each proof entry has a computed stage categoryverifiedok
A004Proof stats compute total assertions across all entriesverifiedok
A005Proof stats compute total findings across all entriesverifiedok
A006Proof stats track rejection countverifiedok
A007All registered CLI commands are extracted with descriptionsverifiedok
A008Commands are organized into the four display groupsverifiedok

Findings 6 total

riskwebsite/scripts/extract-docs-data.tsclosed
Keyword fallback categorization lacks word boundaries — 'scannable' matches /scan/, misassigning proof entries to Engine
debtwebsite/scripts/extract-docs-data.tsclosed
Variable shadowing in extractSkillTemplates — inner 'content' shadows outer 'content' in same function
obswebsite/lib/docs-data/index.tsclosed
All 13 exported loader functions and 14 types are unused — no page components import from docs-data yet
obswebsite/lib/docs-data/proofs.tsclosed
No JSDoc on exported loader functions — inconsistent with CLI package coding standards, though website eslint doesn't enforce it
debtwebsite/lib/docs-data/proofs.tsclosed
process.cwd() in loader DATA_PATH assumes Next.js runs from website/ root — correct for Next.js build, fragile if loaders are ever called from tests or scripts
+1more findings

Integrity seal

scopesha256:1321e0508a011...
contractsha256:f1a37bd3d80e8...
plansha256:874a5af0ebcdd...
specsha256:51604bc358fac...
build-reportsha256:9c47fa522960a...
build-datasha256:3df8d08dcf344...
verify-reportsha256:7eedf95ee9cf5...
verify-datasha256:3ffc0e2ab9d1b...
audit cmd$ ana proof audit docs-data-pipeline   → all hashes match