bundles/dev-loop/skills/domain-modeling/SKILL.md
Build and sharpen a project's domain model. Use when discussing codebase terminology, writing or editing a CONTEXT.md, or recording or editing an ADR.
npx skillsauth add shipshitdev/library domain-modelingInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Actively build and sharpen the project's domain model while designing. Challenge terms, invent edge-case scenarios, and write the glossary and decisions down the moment they crystallise.
Reading CONTEXT.md for vocabulary is not this skill — that is a one-line habit
any skill can do. This skill is for changing the model, not just consuming it.
Inputs:
CONTEXT.md / CONTEXT-MAP.md and docs/adr/ when presentdocs/agents/domain.md when setup-agent-routing has already configured layoutOutputs:
CONTEXT.mdCreates/Modifies:
CONTEXT.md (or a per-context CONTEXT.md listed in CONTEXT-MAP.md)docs/adr/NNNN-slug.md when an ADR is warrantedExternal Side Effects:
Confirmation Required:
CONTEXT.md in a repo that had noneDelegates To:
grilling and interview invoke this skill when a term crystallises.Most repos have a single context:
/
├── CONTEXT.md
├── docs/
│ └── adr/
│ ├── 0001-event-sourced-orders.md
│ └── 0002-postgres-for-write-model.md
└── src/
If a CONTEXT-MAP.md exists at the root, the repo has multiple contexts. The map
points to where each one lives. Prefer the layout already recorded in
docs/agents/domain.md when that file exists.
Create files lazily — only when there is something to write. If no CONTEXT.md
exists, create one when the first term is resolved. If no docs/adr/ exists,
create it when the first ADR is needed.
When the user uses a term that conflicts with the existing language in
CONTEXT.md, call it out immediately. "The glossary defines 'cancellation' as X,
but this sounds like Y — which is it?"
When the user uses vague or overloaded terms, propose a precise canonical term. "'Account' — Customer or User? Those are different things."
When domain relationships are being discussed, stress-test them with specific scenarios. Invent scenarios that probe edge cases and force precise boundaries between concepts.
When the user states how something works, check whether the code agrees. If they contradict, surface it: "The code cancels entire Orders, but you just said partial cancellation is possible — which is right?"
When a term is resolved, update CONTEXT.md right there. Do not batch these up —
capture them as they happen. Use the format in
references/CONTEXT-FORMAT.md.
CONTEXT.md is a glossary and nothing else. Keep implementation details,
scratch notes, and specs out of it.
Only offer to create an ADR when all three are true:
If any of the three is missing, skip the ADR. Use the format in references/ADR-FORMAT.md.
development
Coordinates a weekly engineering review of board accuracy, recent code changes, operational health, and scoped cleanup. Use for a recurring repository health review or a review of the last several days.
testing
Audits project board configuration and prepares explicitly requested setup, copy, or normalization changes while preserving the existing workflow and provider boundaries. Use when inspecting a board's fields, columns, scope, or configuration.
testing
Reconciles a project board with current work and delivery evidence, reports incomplete coverage and metadata gaps, and applies only approved provider-supported field changes. Use when auditing board drift, reviewing blocked work, or assessing upcoming delivery.
development
Walk through how a subsystem works. Use for "how does X work", code walkthroughs before changing something, and placement or ownership questions. Explains architecture, runtime flow, and onboarding mental models. Can critique architecture. Use why for motivation.