Architecture Decisions
Architecture decisions are documented as ADRs (Architecture Decision Records) following the Nygard format with a weighted Pugh matrix for option evaluation.
All ADRs are located in src/docs/arc42/ADRs/.
| ADR | Title | Status | Summary |
|---|---|---|---|
Choice of DSL Format |
Accepted |
JSON with JSON Schema (JSONC) chosen over TypeScript DSL and Custom DSL (Langium). Scored highest on learnability, IDE support, LLM friendliness, and bidirectional sync suitability. |
|
Choice of Implementation Language |
Accepted |
Go chosen over Python and Kotlin/JVM. Single-binary distribution, LLM-friendly code generation, compile-time type safety, and dedicated mxGraph library support. |
|
Risk Classification |
Accepted |
Tier 2 (Extended Assurance) — determined by Code Type = 2 (Business Logic). Existing toolchain covers most mitigations. Guides AI-assisted development quality requirements. |
|
Sequence Diagram Export |
Superseded by ADR-008 |
Originally rejected |
|
Auto-Layout Engine for New Diagram Pages |
Accepted |
Layered/grid/none placement modes for fresh diagram pages. Relationship-aware BFS ordering within scopes; manual positions preserved on incremental sync. |
|
CLI Add Command Strategy |
Accepted |
|
|
Testing Strategy |
Accepted |
Unit / integration / E2E classification, plus property-based tests (pgregory.net/rapid). Tests trace to issues and use cases. |
|
Sequence Diagram Export (Revisited) |
Accepted |
Reverses ADR-004: implements |
|
Drill-Down Navigation |
Accepted |
Page-based drill-down (one draw.io page per view + cross-page links + back button) over single-page semantic zoom. Uses native draw.io pages; keeps bidirectional sync simple. |
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.