You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

45 lines
2.5 KiB

1 month ago
# 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 `<module>/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.