docs/agents/domain.md
Domain Docs
How the engineering skills should consume this repo's domain documentation when exploring the codebase.
Before exploring, read these
GLOSSARY.mdat the repo root, orGLOSSARY-MAP.mdat the repo root if it exists: it points at oneGLOSSARY.mdper context. Read each one relevant to the topic.docs/adr/: read ADRs that touch the area you're about to work in. In multi-context repos, also checksrc/<context>/docs/adr/for context-scoped decisions.
If any of these files don't exist, proceed silently. Don't flag their absence; don't suggest creating them upfront. The /domain-modeling skill (reached via /grill-with-docs and /improve-codebase-architecture) creates them lazily when terms or decisions actually get resolved.
File structure
Single-context repo (most repos):
| 1 | / |
| 2 | ├── GLOSSARY.md |
| 3 | ├── docs/adr/ |
| 4 | │ ├── 0001-event-sourced-orders.md |
| 5 | │ └── 0002-postgres-for-write-model.md |
| 6 | └── src/ |
Multi-context repo (presence of GLOSSARY-MAP.md at the root):
| 1 | / |
| 2 | ├── GLOSSARY-MAP.md |
| 3 | ├── docs/adr/ ← system-wide decisions |
| 4 | └── src/ |
| 5 | ├── ordering/ |
| 6 | │ ├── GLOSSARY.md |
| 7 | │ └── docs/adr/ ← context-specific decisions |
| 8 | └── billing/ |
| 9 | ├── GLOSSARY.md |
| 10 | └── docs/adr/ |
Use the glossary's vocabulary
When your output names a domain concept (in an issue title, a refactor proposal, a hypothesis, a test name), use the term as defined in GLOSSARY.md. Don't drift to synonyms the glossary explicitly avoids.
If the concept you need isn't in the glossary yet, that's a signal: either you're inventing language the project doesn't use (reconsider) or there's a real gap (note it for /domain-modeling).
Flag ADR conflicts
If your output contradicts an existing ADR, surface it explicitly rather than silently overriding:
Contradicts ADR-0007 (event-sourced orders), but worth reopening because…