Skip to main content
STRATT’s strict L0→L5 layer model (fingerprint → schema → CRDT → graph → n8n-exporter → CLI) allowed 10 tasksets to execute in sequence without rework because each layer validates before the next builds on it. The constraint that lower layers have zero knowledge of higher layers prevented the “everything depends on everything” trap that kills monorepo velocity. Concrete proof: Adding ops and docs domains (TASKSET 13) required exactly 4 regex updates across 4 files — constants.ts, base.ts, uri.ts, composition.ts — because the schema was the single source of truth. No graph code, CLI code, or web code needed changes. 108 schema tests confirmed the change was safe before anything else touched it. Applicable pattern: When building a layered system, enforce the dependency direction as a hard constraint (not a guideline). Use barrel exports (src/index.ts) so consumers can’t reach into internals. Pin file:../ references so cross-package dependencies are explicit. The upfront rigidity pays back as speed later — you can add an entire web layer (MERIDIAN, 63 pages) without touching any lower package.