Roadmap
Last updated: 2026-02-22
1
LLM Skill
CompleteDomain modeling skill for LLM-based coding tools. Teaches .ddd syntax without requiring a compiler.
- Complete Skill documentation SKILL.md entry point with syntax reference, examples, and routing
- Complete Feature proposal template PROPOSE.md template for new language features
2
Grammar & Parser
CompleteComplete Langium grammar with 28 AST types. 37 parser tests across 9 files.
- Complete Langium grammar definition 191-line grammar covering contexts, commands, events, deciders, and expressions
- Complete Parser test suite 37 tests across 9 files with 194 assertions
- Complete LSP integration Langium-provided language server with autocomplete, hover, and go-to-definition
3
Core Validation
CompleteStatic verification rules operating on the AST. Exhaustiveness, evolve totality, guard consistency.
- Complete Expression grammar Replace opaque ExpressionFragment with operator-precedence expression grammar. Unblocks guard consistency, postcondition verification, and multi-field evolve.
- Complete Exhaustiveness check Verify all Command × State pairs are covered in decide clauses. 54 tests (unit, property-based, edge cases), 100% mutation score.
- Complete Evolve totality check Verify all Event × State pairs are handled in evolve clauses. 22 tests (unit, property-based, edge cases).
- Complete Guard consistency Detect contradictory guards leading to unreachable code
- Complete Error messages with positions Actionable diagnostics with file:line:column and fix suggestions
- Complete Dead code detection Detect commands and events declared but not referenced by any decider. 6 property-based tests, 100% mutation score.
- Complete Terminal state validation Verify no decide clause targets a terminal state, and at least one non-terminal state exists per decider. Initial state is grammar-enforced (ADR-020).
- Complete Postcondition verification Static verification that ensure postconditions are derivable from evolve definitions
4
Emmett Generator
CompleteTypeScript/Emmett code generation from .ddd files. Smart Constructors, snapshot tests.
- Complete Emmett code generation Generate TypeScript decider classes with typed decide/evolve methods
- Complete Smart Constructors Generate private constructors with Result-returning create() from validate constraints
- Complete Generator snapshot tests Snapshot tests comparing .ddd input to expected .ts output
5
CLI
ActiveCommand-line interface for validation and code generation.
- Complete validate command weltenwanderer validate <pattern...> — parse and validate .ddd files matching glob patterns
- Complete generate command weltenwanderer generate <file.ddd> --target emmett — produce TypeScript output
6
Language Server
PlannedFull LSP implementation with semantic features beyond Langium defaults.
- Planned Semantic token provider Rich syntax highlighting via LSP semantic tokens
- Planned Code actions Quick fixes and refactoring actions for .ddd files
- Planned Code lens Inline annotations showing decider metrics and navigation
- Planned Document symbols Outline view and breadcrumb navigation for .ddd files
- Planned Folding ranges Code folding for contexts, deciders, and decision blocks
- Planned Document formatting Auto-formatting for .ddd files
- Planned Rename symbol Safe rename across file references
- Planned Signature help Parameter hints for command and event constructors
- Planned Workspace symbols Cross-file symbol search
- Planned VS Code extension VS Code extension packaging the Langium LSP client with semantic features, code generation, and validation
Deferred
- Deferred VS Code extension VS Code extension packaging the Langium LSP client
- Deferred Living documentation Generate domain documentation from .ddd source files
- Deferred Schema evolution Event versioning with @v annotations and upcast chain verification
- Deferred Flow analysis Event flow graph analysis with cycle detection and termination proofs
- Deferred Event Model construct Event Modeling as a first-class language construct with slices and actors
- Deferred DSL mutation testing Mutate AST and verify specs catch mutants using equivalence class boundaries
- Deferred Data classification and GDPR compliance Field-level @personal/@sensitive annotations with erasure verification and compliance artifacts
- Deferred Modular compiler architecture Plugin-based compiler modules consuming field annotations for cross-cutting concerns
- Deferred Source map support V3 source maps from Langium TraceRegion for generated TypeScript debugging
- Deferred Extended compile targets Axon 5, PostgreSQL, SQLite, DuckDB, and WASM compile targets beyond Emmett
- Deferred Lazy / JIT artifact generation Runtime-metrics-driven compilation for snapshots, views, indexes, and read models
- Deferred MCP server Model Context Protocol server with validate, generate, analyze, suggest, and template tools
- Deferred Try-it-online playground Browser-based Langium Web Worker + Monaco editor for zero-install domain modeling
- Deferred Domain-level debugger DAP server with event-by-event navigation, typed state diffs, and time travel
- Deferred Runtime architecture strategy Architectural decision between polyglot generators, canonical runtime, or WASM+host adapter
- Deferred Value type factory functions Generate factory functions for branded types to enable value type constructors in initial state bindings
- Deferred Additional CLI delivery formats Debian packages, Docker images, Homebrew tap, RPM, Flatpak, and Snap distribution formats
Dependency Graph
graph LR skill_docs["Skill documentation"]:::complete skill_proposal["Feature proposal template"]:::complete langium_grammar["Langium grammar definition"]:::complete parser_tests["Parser test suite"]:::complete lsp_integration["LSP integration"]:::complete expression_grammar["Expression grammar"]:::complete exhaustiveness_check["Exhaustiveness check"]:::complete evolve_totality["Evolve totality check"]:::complete guard_consistency["Guard consistency"]:::complete error_messages["Error messages with positions"]:::complete dead_code_detection["Dead code detection"]:::complete terminal_state_validation["Terminal state validation"]:::complete postcondition_verification["Postcondition verification"]:::complete emmett_codegen["Emmett code generation"]:::complete smart_constructors["Smart Constructors"]:::complete snapshot_tests["Generator snapshot tests"]:::complete cli_validate["validate command"]:::complete cli_generate["generate command"]:::complete semantic_tokens["Semantic token provider"]:::planned code_actions["Code actions"]:::planned code_lens["Code lens"]:::planned document_symbols["Document symbols"]:::planned folding_ranges["Folding ranges"]:::planned formatting["Document formatting"]:::planned rename["Rename symbol"]:::planned signature_help["Signature help"]:::planned workspace_symbols["Workspace symbols"]:::planned vscode_extension_phase6["VS Code extension"]:::planned vscode_extension["VS Code extension"]:::deferred living_docs["Living documentation"]:::deferred schema_evolution["Schema evolution"]:::deferred flow_analysis["Flow analysis"]:::deferred event_model["Event Model construct"]:::deferred dsl_mutation_testing["DSL mutation testing"]:::deferred gdpr_compliance["Data classification and GDPR compliance"]:::deferred modular_compiler["Modular compiler architecture"]:::deferred source_maps["Source map support"]:::deferred extended_targets["Extended compile targets"]:::deferred lazy_generation["Lazy / JIT artifact generation"]:::deferred mcp_server["MCP server"]:::deferred web_playground["Try-it-online playground"]:::deferred domain_debugger["Domain-level debugger"]:::deferred runtime_architecture["Runtime architecture strategy"]:::deferred value_type_factories["Value type factory functions"]:::deferred delivery_formats["Additional CLI delivery formats"]:::deferred langium_grammar --> parser_tests langium_grammar --> lsp_integration langium_grammar --> expression_grammar langium_grammar --> exhaustiveness_check langium_grammar --> evolve_totality expression_grammar --> guard_consistency exhaustiveness_check --> error_messages evolve_totality --> error_messages langium_grammar --> dead_code_detection langium_grammar --> terminal_state_validation expression_grammar --> postcondition_verification exhaustiveness_check --> emmett_codegen evolve_totality --> emmett_codegen emmett_codegen --> smart_constructors emmett_codegen --> snapshot_tests error_messages --> cli_validate emmett_codegen --> cli_generate langium_grammar --> semantic_tokens error_messages --> code_actions langium_grammar --> code_lens langium_grammar --> document_symbols langium_grammar --> folding_ranges langium_grammar --> formatting langium_grammar --> rename langium_grammar --> signature_help langium_grammar --> workspace_symbols semantic_tokens --> vscode_extension_phase6 code_actions --> vscode_extension_phase6 cli_generate --> vscode_extension_phase6 error_messages --> vscode_extension emmett_codegen --> living_docs emmett_codegen --> schema_evolution exhaustiveness_check --> flow_analysis flow_analysis --> event_model guard_consistency --> dsl_mutation_testing flow_analysis --> gdpr_compliance langium_grammar --> modular_compiler emmett_codegen --> source_maps emmett_codegen --> extended_targets emmett_codegen --> lazy_generation cli_validate --> mcp_server langium_grammar --> web_playground cli_validate --> web_playground source_maps --> domain_debugger emmett_codegen --> runtime_architecture emmett_codegen --> value_type_factories cli_validate --> delivery_formats classDef complete fill:#22c55e20,stroke:#22c55e,color:#22c55e classDef active fill:#eab30820,stroke:#eab308,color:#eab308 classDef planned fill:#6b728020,stroke:#6b7280,color:#6b7280 classDef deferred fill:#7c3aed20,stroke:#7c3aed,color:#7c3aed