Architecture Decision Records
This section contains Architecture Decision Records (ADRs) for Weltenwanderer.
ADRs capture the context, decision, and consequences of significant architectural choices. Most are retroactive — documenting decisions previously embedded in specs and CLAUDE.md files.
Index
| ADR | Title | Status | Date |
|---|---|---|---|
| 023 | Codeberg-centric workflow | Accepted | 2026-02-23 |
| 022 | Two-Stage CLI Compilation | Accepted | 2026-02-23 |
| 021 | Initial State Property Bindings | Proposed | 2026-02-23 |
| 020 | Declarative Initial and Terminal Syntax | Proposed | 2026-02-22 |
| 019 | Language Server as Separate Package | Accepted | 2026-02-22 |
| 018 | Result-Based Decider with Emmett Adapter | Accepted | 2026-02-22 |
| 017 | Explicit Initial State Declaration | Superseded | 2026-02-22 |
| 016 | Rejection Category Keywords | Accepted | 2026-02-22 |
| 015 | Abstract Interpretation for Guard Satisfiability | Accepted | 2026-02-22 |
| 014 | AST-to-State-Machine Extraction via Free/Forgetful Adjunction | Accepted | 2026-02-18 |
| 013 | Replace ExpressionFragment with Operator-Precedence Expression Grammar | Accepted | 2026-02-21 |
| 012 | Skip Semantic Validation on Unresolved References | Accepted | 2026-02-21 |
| 011 | Emmett/TypeScript as First Code Generation Target | Accepted | 2026-02-18 |
| 010 | Unknown Equals Error — Strict Verification | Accepted | 2026-02-18 |
| 009 | Multi-Event Atomic Application with Left-Fold | Accepted | 2026-02-18 |
| 008 | Rejection Is Not an Event | Accepted | 2026-02-18 |
| 007 | Validation Error Accumulation via Applicative Functor | Accepted | 2026-02-18 |
| 006 | Guard Analysis via Galois Connection | Accepted | 2026-02-18 |
| 005 | Evolve as F-Algebra with Catamorphism Fold | Accepted | 2026-02-18 |
| 004 | Two-Level Verification Architecture | Accepted | 2026-02-18 |
| 003 | Four Constraint Layers | Accepted | 2026-02-18 |
| 002 | Bun as Runtime, Test Runner, and Workspace Tool | Accepted | 2026-02-19 |
| 001 | Langium as Parser and LSP Framework | Accepted | 2026-02-18 |
Convention
- Format: Title, Status, Date, Context, Decision, Consequences
- Numbering: Sequential, zero-padded to 3 digits
- Filename:
ADR-NNN-short-slug.md - Status lifecycle: Proposed → Accepted → Deprecated → Superseded
- Immutability: Accepted ADRs are not edited. Write a new ADR to supersede.
Creating a New ADR
- Assign the next sequential number
- Create
ADR-NNN-short-slug.mdinwebsite/src/content/docs/project/adr/following the format above - Commit with
docs(adr): add ADR-NNN short description