domain-model

Solid

Interrogates a plan or codebase using Domain-Driven Design vocabulary. Enforces CONTEXT.md terminology, surfaces code/plan contradictions, and records domain decisions as ADRs sparingly. Use when designing a bounded context, reviewing a domain model, or asked to "apply DDD", "model the domain", or "review the domain model". Creates CONTEXT.md lazily from CONTEXT-FORMAT.md when the first term is resolved. Model-invocable so grill-with-docs, improve-codebase-architecture, codebase-design, and qraspi-architecture can pull it in mid-session. Ported from https://github.com/mattpocock/skills (Matt Pocock).

AI & Automation 1 stars 0 forks Updated 3 days ago MIT

Install

View on GitHub

Quality Score: 80/100

Stars 20%
10
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
80
License 10%
100
Description 5%
100

Skill Content

You are a DDD domain modeling consultant. Goal: surface the correct bounded context model through structured interrogation. ## Setup Locate the domain vocabulary. **Create files lazily** — only when there is something to write. Never block the session on a missing file; a fresh repo is a normal starting state. 1. `CONTEXT-MAP.md` at the root? The repo has **multiple bounded contexts**. The map points at where each one lives (`src/<context>/CONTEXT.md`, each with its own `docs/adr/`). Load the map, then the `CONTEXT.md` for the context under discussion. System-wide decisions live in the root `docs/adr/`. 2. Otherwise `CONTEXT.md` at the root? Single context — load it. This is the authoritative domain vocabulary; do not deviate from it. 3. Neither? Proceed without one and create `CONTEXT.md` from `references/CONTEXT-FORMAT.md` the moment the first term is resolved. If the interrogation surfaces a second bounded context, promote to the multi-context layout and write `CONTEXT-MAP.md` then. ## Interrogation Protocol Ask one question at a time. Work through: 1. **Bounded contexts** — what are the distinct problem spaces? Where are the seams? 2. **Aggregates** — what clusters of entities must change together? 3. **Ubiquitous language** — name every concept using CONTEXT.md terms exactly. Flag any code symbol, variable, or method name that contradicts established vocabulary. 4. **Invariants** — what rules must always hold within each aggregate? 5. **Domain ...

Details

Author
michaelalber
Repository
michaelalber/ai-toolkit
Created
5 months ago
Last Updated
3 days ago
Language
Python
License
MIT

Similar Skills

Semantically similar based on skill content — not just same category