ForgeKitFORGEKIT

Build Log

From pattern-capture to compounding — fixing the reuse mechanism

July 16, 2026

Found a false 'done, used by two apps' claim with zero real imports, traced it to a structural gap (statuses written from memory, no forced check-before-build), rebuilt the model with Zeb's correction (two dimensions, not one contradictory status), and a full duplication sweep found six more real, uncatalogued instances of the same defect class.

ForgeKit OSPattern RegistryExtractionForgeLeashlineKnown
6
real uncatalogued duplications found
2
duplications fixed and verified tonight
53
registry rows re-audited against real evidence
1
pre-existing test bug found and fixed as a side effect

Timeline

Start
Zeb asks whether most ForgeKit packages are actually implemented
Prompted by the Aalok onboarding deck
+20m
forgekit-testing found marked DONE with zero real consumers
Status was written the day the package was created, not the day it was verified consumed
+40m
First redesign draft — Zeb's review finds a real contradiction
CANONICAL defined as 'needs a consumer import' but applied to a 0-consumer package in the same table
+1h
Model corrected — two dimensions, not one status column
Pattern maturity (OBSERVED/REAPPLIED/CANONICAL/RETIRED) separated from adoption evidence (Consumers, grep-verified)
+1.5h
forgekit-testing actually wired into Forge, not just relabeled
Root cause: products/forge was missing from root package.json workspaces entirely
+2h
verify-reuse.mjs built and run for real — found a stale path immediately
experiments/medina-navigator had been renamed to medina-square; two registry entries never updated
+2.5h
Aalok deck regenerated — first pass missed the point
Only updated the honest-gaps slide, left the chapter that actually explains gates unchanged
+3h
Zeb pushes back on 'not enough volume yet' — full duplication sweep launched
cn() found byte-identical in 3 places within 5 minutes of direct grep
+3.5h
cn() fixed in Forge + Leashline; fix exposed a real pre-existing test bug
Forge's tsconfig.json excluded tests/** from the project, silently breaking @/ alias resolution
+4h
Full sweep (2 background agents) returns 6 confirmed findings
Known duplicates createDb and getTenantId; Leashline duplicates 3 UI primitives; PilotLight's rate limiter copy-pasted into 2 more apps; 21 files call the Anthropic SDK directly
Close
All findings written into patterns.md/extraction-backlog.md with grep evidence, nothing silently promoted
Session closes with a real, evidence-backed backlog instead of a vibes-based one

What shipped

Two-dimension Pattern Registry status model in forgekit-os/patterns.md (pattern maturity vs. adoption evidence, COMPOUNDING derived not assigned)

forgekit-os/scripts/verify-reuse.mjs — a real, working script that checks patterns.md claims against actual files (not a spec, ran it repeatedly, fixed its own bugs)

REUSE RESOLUTION step in ignition.md §3.1 — fires per capability touched, not per build-size threshold

Evidence requirement added to Extraction Gate in gates.md — no CANONICAL/COMPOUNDING status without a pasted grep result

forgekit-testing actually wired into Forge (products/forge/tests/helpers/seed-test-db.ts now imports createTestDb from the package)

products/forge added to root package.json workspaces (was silently missing, blocking all forgekit-* imports into Forge)

cn() de-duplicated in Forge and Leashline — both now re-export from forgekit-ui instead of carrying a local copy

Fixed products/forge/tsconfig.json — tests/** was excluded from the TS project, breaking @/ alias resolution in 5 of 9 test files

Corrected two false claims in CLAUDE.md and extraction-backlog.md (forgekit-testing 'used by Forge and Leashline' with zero real imports)

Corrected a stale path in patterns.md (experiments/medina-navigator → experiments/medina-square, caught by verify-reuse.mjs's first real run)

Regenerated docs/aalok/manifest.json + cheat-sheet.md to reflect the real gate-enforcement mechanism (found a real PreToolUse hook exists — .claude/hooks/gate-check.mjs — that the deck previously said didn't exist) and the corrected reuse model

Full duplication sweep (2 background agents) — 6 real findings written into patterns.md/extraction-backlog.md with independently-verified evidence, not just trusted from the agents

“It is both, and the discipline problem is more important... The registry records the past. It does not reliably influence the future.”

— Zeb, on why 'not enough volume yet' wasn't a sufficient explanation