← ClaudeAtlas

domain-modelinglisted

Keep the project's domain model current while designing — resolve a term into CONTEXT.md, record a load-bearing decision as an ADR. Use when a spec, plan, or refactor names a concept the glossary lacks or contradicts, or settles a decision that is hard to reverse.
perkzen/fabrika · ★ 1 · AI & Automation · score 55
Install: claude install-skill perkzen/fabrika
# Domain Modeling Build and sharpen the project's domain model as you design: challenge terms against the glossary, pick canonical names, and write glossary entries and decisions down the moment they crystallise. Merely *reading* `CONTEXT.md` for vocabulary is a one-line habit any skill has; this skill is for changing the model. ## File structure Most repos have a single context: `CONTEXT.md` at the root and `docs/adr/NNNN-slug.md`. A `CONTEXT-MAP.md` at the root means several contexts, each with its own `CONTEXT.md` and `docs/adr/`; infer the context from the code you are touching. Formats: [CONTEXT-FORMAT.md](CONTEXT-FORMAT.md), [ADR-FORMAT.md](ADR-FORMAT.md). Create files lazily — only when you have something to write. A repo without `CONTEXT.md` gets one when the first term is resolved; `docs/adr/` when the first ADR is needed. ## Terms - **Challenge against the glossary.** A term in the ticket, spec, or code that conflicts with `CONTEXT.md` is resolved in the glossary's favour; where the glossary is the one that is wrong (the code and the ticket agree against it), sharpen the entry and record why under Assumptions or Decisions. - **Sharpen fuzzy language.** A vague or overloaded term ("account", "item", "session") gets one canonical name, chosen to match what the code already calls it most; the others go under `_Avoid_`. - **Cross-reference with code.** Before defining a term, check what the code does with it. A definition that the code contradicts is not written;