Skip to content

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

  1. Assign the next sequential number
  2. Create ADR-NNN-short-slug.md in website/src/content/docs/project/adr/ following the format above
  3. Commit with docs(adr): add ADR-NNN short description