Monorepo seed
Staged 2026-07-27 so the repository is populated the day it exists. This folder
copies into the monorepo root as-is: gates/ and registries/ land at the
paths the sprint plan's section 1 layout names. Everything here is a v0 draft
for adjudication; nothing is signed.
Contents
gates/route-gate.py. The CI enforcement point from the delivery grammar section 12, written to the grammar-gate.py precedent: deterministic, no model calls, exit 1 refuses the merge. Runpython3 gates/route-gate.py --selftest(13 cases, verified passing 2026-07-28). Against the live tree it checks every YAML underregistries/routes/and passes trivially when no routes exist. Work item WI-03; proposed as the monorepo's first PR so the gate exists before the first route does.
Four checks added 2026-07-28 by the complexity audit: parked action types are
refused with the reason they are parked (C-3); attenuates must carry two
numbers rather than merely be non-empty; a channel's inputs list is
validated and a cycle in the input graph fails (D-10); and an armed route may
not cite a channel whose status is local-only or unbuilt, while a proposed
route may. It also reports how many producers sit behind each passing route.
- registries/channels.yaml. CH-01 to CH-12 with the three previously missing
fields drafted per channel: address (null, scheme undecided), freshness SLA
(PROPOSED values, null means event-driven), visibility (null pending a team
session, except CH-08's decided opsroom constraint). Work item WI-01.
Revised 2026-07-28: every row gained an inputs list (D-10, a channel may
subscribe to channels, all currently []), and three statuses were corrected.
CH-08 is live-one-client, CH-10 is local-only, CH-12 is unbuilt. Before
that pass the file read as twelve live producers.
- registries/forms.yaml. F-01 to F-20 only. D-8 / P-7 closed 2026-07-28 by
decision C-5: neither contested F-21-onward range is allocated and a module
is referred to by name until it is built. F-12 to F-20 are marked deferred as
build candidates under F-2. Work item WI-05.
- registries/readers.yaml. R-01 Thomas only, with observed behavior and 2
of 4 work modes written. R-02 to R-04 were removed 2026-07-28 under decision
C-2 rather than being named: three people nobody has met, carrying nine work
modes with null scene, null question, and null pain, for a client with one
reader. A reader returns when a named person exists. The removed work-mode
names and the naming conflict between this file and the feature register are
preserved in the file's header comment so neither has to be rediscovered.
WI-02 is closed as scoped.
What does not live here
Route declarations (registries/routes/<client>/*.yaml). Zero real routes exist
as of 2026-07-28; the first five come out of the kickoff session (WI-04) and
enter through the route-proposal issue template, gated by route-gate.py, never
seeded by hand. The one route in the walked-chain demonstration
(2026-07-28-walked-chain-dbm) is written inline in that document as an
illustration and is deliberately not a file here.
Related: sprint-plan-2026-07-27 sections 1, 4, and 5 · 2026-07-28-sprint-decisions · Dev Sprint 1 index