# Domain Docs How the engineering skills should consume this repo's domain documentation when exploring the codebase. ## Layout: multi-context This is a multi-module Maven monorepo. Each `crm-{域}` module is a bounded context with its own ubiquitous language. ``` / ├── CONTEXT-MAP.md ← root index, points at each module's CONTEXT.md ├── docs/ │ ├── adr/ ← system-wide decisions │ └── agents/ ← this file + issue-tracker / triage-labels ├── crm-auth/ │ └── CONTEXT.md ← 认证域 领域语言 (exists) ├── crm-file/ │ └── CONTEXT.md ← 文件域 领域语言 (exists) ├── crm-base/ ← 基础包,无独立业务,暂无 CONTEXT.md └── crm-app/ ← 启动入口,暂无 CONTEXT.md ``` Per-module `CONTEXT.md` lives at the **module root** (e.g. `crm-auth/CONTEXT.md`), not under `src/`. New business modules (`crm-customer`, …) get their own `CONTEXT.md` at module root and an entry in `CONTEXT-MAP.md`. ## Before exploring, read these - **`CONTEXT-MAP.md`** at the repo root — pick the module(s) relevant to the topic, then read each linked `CONTEXT.md`. - **`docs/adr/`** for system-wide decisions; also check `/docs/adr/` if a module has context-scoped ADRs. 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. ## 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 the relevant module's `CONTEXT.md`. Don't drift to synonyms the glossary explicitly avoids (the `_Avoid_:` lines). If the concept you need isn't in any 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-0006 (fail-closed data scope) — but worth reopening because…_ Note: `README.md` references ADR-0003 / 0004 / 0006, but the `docs/adr/` files are not yet in the repo. Treat README's references as authoritative pointers until `/domain-modeling` materializes the files.