Architecture decision records
An ADR records a decision that constrains future work: the context that forced it, the choice made, and the consequences accepted. They are immutable once accepted — a reversal is a new record that supersedes the old one, not an edit.
Records here describe decisions that are already embodied in the code. Where a decision is still open, it is on the roadmap instead.
Use _template.md for new records.
Index
| # | Title | Status |
|---|---|---|
| 0001 | Entity graph free of domain semantics and serialization | Accepted |
| 0002 | Codec as a trait owned by the model crate | Accepted |
| 0003 | Domain crates as borrowed views | Accepted |
| 0004 | Geometry bridge, not geometry kernel | Accepted |
| 0005 | Scaffold modules declare ownership without claiming capability | Accepted; points 1 and 3 superseded by 0019 |
| 0006 | Facade features default to thin | Accepted |
| 0007 | Authoring is a schema-layer concern, not a model-layer one | Accepted |
| 0008 | Fixed slot constants for stable relationships | Accepted |
| 0009 | DERIVED attributes resolve through the parent context | Accepted |
| 0010 | Checked mutation is a model-level primitive, not a bare accessor | Accepted |
| 0011 | Geometry authoring is bidirectional inside the bridge | Accepted |
| 0012 | Geometry backends are swappable, whole or per area | Accepted |
| 0013 | Language bindings wrap the facade, one crate per target | Accepted |
| 0014 | Net geometry is an explicit request; openings are exact booleans | Accepted |
| 0015 | Strict STEP reads validate eagerly and decode lazily | Accepted |
| 0016 | Open work lives in issues, not in checked-in plans | Accepted |
| 0017 | Versioned PSD/QTO template catalogs | Accepted |
| 0018 | Kernel-free geometry is a feature, not a crate | Accepted |
| 0019 | Planned work is an issue, not a placeholder file | Accepted |
| 0020 | IFC5 is a separate family; no IFC-JSON codec | Accepted |
| 0021 | Bindings carry placements by default and meshes on request | Accepted |
| 0022 | Undo records exact inverses in the model | Accepted |