Ambient discipline for shared business vocabulary — not a dialogue session. Canonical glossary: docs/domain/glossary.md. Hub router: docs/domain/README.md.
When to Use
- User or plan uses an overloaded term (
source,paper,document,note,account, …) - Fuzzy domain language blocks implementation or review
- A naming choice will persist in API, schema, or UI copy
- During crystallize or grill when a term resolves — update glossary inline; this skill owns vocabulary, dialogue skills feed it
Not for: product build gates (product-principles), monorepo layout (developer/architecture.md), code-structure naming (developer/codebase-design.md), or Socratic ideation (crystallize / grill).
Protocol
- Challenge against glossary — when user language conflicts with
glossary.md, name the canonical term and ask which meaning they intend. - Sharpen overload — e.g. is "account" the billing Customer or the signed-in User? State options; pick one canonical term for the thread.
- Write inline — when a term crystallizes, add or update its glossary entry immediately (one term per edit moment, not end-of-session batch).
- ADR gate — offer
docs/domain/adr/only when all three hold: hard-to-reverse, surprising without context, real trade-off. Otherwise glossary entry only. - Hand off — product scope/thesis → product-principles; implementation placement → grill or planning/build; code hunch → investigate.
Glossary entry shape
Follow the table format in glossary.md: Means, Not, See also.
Output format
Follow references/output-schema.md. When terms resolve:
## Terms resolved
- **[term]**: [canonical meaning chosen]
- Glossary updated: [path or "pending user confirm"]
## ADR offered?
- [Yes — why all three gates met | No — glossary sufficient]
## Next step
- [Continue grill/crystallize/build | product-principles | investigate]