Architecture Decision Records
Key design decisions behind ArchLang, with their context and trade-offs.
- 1. Hand-written recursive-descent parser, not Lezer/tree-sitter
- 2. Optional, lazy-loaded dependencies for heavy geometry and raster
- 3. Expand-time scripting — no runtime, no I/O, no clock
- 4. Relational placement is deterministic arithmetic, not an optimizer
- 5. Design intelligence is facts + advisory lint, not an invisible architect
- 6. A solver is an explicit source transform, never invisible render behavior
- 7. Editor metadata (
data-span) enters SVG output only opt-in - 8. Circulation is reported as facts on a clearance-eroded nav grid, never generated
- 9. AI-first: one bundled context artifact, opt-in error rendering, distribution over protocol
- 10. "The Compile Boundary" — one two-world design system for both public sites
- 11. Machine-applicable fixes: the rustc model, kept distinct from the geometric repairer
- 12. An MCP shim as a discoverability channel — amending "distribution over protocol"
- 13. A versioned, fully synthetic, self-verifying repair-trajectory dataset
- 14. One light world — no dark mode, no dark surfaces, on either public site
- 15. The CLI is an agent interface: one manifest, filters that never gate, loud misuse