preferences-domain-modeling
Installation
SKILL.md
Functional domain modeling
Purpose
This document describes how to model problem domains using functional programming techniques that make domain concepts explicit and invalid states impossible by construction.
"Domain" here means any subject matter area requiring precise modeling: scientific data processing, computational models, infrastructure configuration, mathematical structures, or traditional application logic.
Core principle
Model problem domains using types that:
- Speak the domain vocabulary - use terminology from the subject matter, not generic programmer terms
- Capture domain rules - encode invariants and constraints in the type system
- Represent domain processes - model workflows as composable, type-safe pipelines
- Make domain concepts explicit - entities, aggregates, state machines visible in code structure