Generated byscripts/arch-report.mjs. The constitution promises every principle names the practice it comes from and the gate that enforces it (Architecture §2/§4, P9: an ungated rule is aspirational). This is that map, live — each modularity principle → its CI gate(s) → the current evidence. P9 itself is the table: every row is a green gate, not a README rule, so “fully modular” is a claim backed by mechanical evidence. Regenerate withnode scripts/arch-report.mjs;gate:arch-reportkeeps it honest in CI.
Modularity verdict: all gates green — the v0.12 backend is fully modular by the constitution’s own definition.
Per-service module structure (each a front-doored brick, independently testable):
meeting-api =
{lifecycle · bot_spawn · collector · recordings · webhooks · scheduling · sessions · obs}; runtime =
the kernel (imports nothing above); gateway/identity/agent-api per their domains. The test lane is
gated too (gate:test-isolation) — a test cannot reach across a module boundary where prod imports can’t.