domain-glossary
Skill50 starsChanged 16 days agoMITView on GitHub
Extract and maintain a domain glossary with canonical terms, ambiguity flags, and relationship mappings. Use when defining domain terms, building a glossary, hardening terminology, or when synonym drift is detected across specs, ADRs, or work items. Also use during spec creation to validate terminology consistency. Do not use for architecture decisions (use ADRs), for code-level naming conventions (use coding-guidelines), or for one-time term definitions that do not recur across artifacts.
We split this skill into the rules it gives an agent
16 rules. 0 are common, 13 are distinctive, and 3 are very specific to this project.
0
Common
Most of the 4 edited versions we read keep these.
13
Distinctive
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 32
Check for existing glossary: Read docs/domain/GLOSSARY.md (or create from template if it does not exist)
- Distinctive: line 73
Only include terms relevant for domain experts.
- Distinctive: line 74
Keep definitions tight: one sentence maximum.
- Very specific: line 77
Create files lazily: only create GLOSSARY.md when the first terms are resolved.
- Distinctive: line 105
If file does not exist, skip validation (no glossary yet)
- Distinctive: line 108
If it matches a canonical term: OK
- Distinctive: line 109
If it matches an "alias to avoid": flag as terminology drift
- Distinctive: line 110
If it is a domain-relevant term not in the glossary: suggest adding it
- Very specific: line 129
When validating code (called from devsquad.review.code):
- Distinctive: line 131
Search for class names, module names, and API endpoints that represent domain concepts
- Distinctive: line 135
Do not flag internal implementation names (private variables, utility functions) unless they represent domain concepts exposed in public …
- Distinctive: line 142
Do not create a glossary for projects with a single bounded context and fewer than 5 domain terms (overhead exceeds value)
- Distinctive: line 143
Do not block delivery for terminology drift (flag it, do not enforce)
- Distinctive: line 144
Do not capture generic technical terms ("database", "API", "service") unless they have project-specific meaning
- Distinctive: line 145
Do not override terms that the team has explicitly chosen, even if another term seems "better"
- Distinctive: line 146
Do not duplicate definitions that already exist in accepted ADRs
“Common” is measured: kept by at least 6 in 10 of the 4 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Domain Glossary
Principle
Enterprise systems accumulate terminology debt: the same concept called different names across teams, specs, and code. Synonym drift corrupts search, work-item labeling, and cross-spec consistency. A shared canonical glossary reduces misunderstanding and improves spec-to-code traceability.
Operations
This skill has two modes: extract (build or update a glossary) and validate (check an artifact against the glossary).
1. Extract: Build or Update the Glossary
When to Extract
| Trigger | Action |
New feature spec created (devsquad.specify) | Extract terms from the spec |
Envisioning completed (devsquad.envision) | Extract terms from the envisioning document |
| Domain discussion in conversation | Extract terms as they emerge |
| Explicit user request ("build a glossary", "define domain terms") | Full extraction from available artifacts |
| Review finding: inconsistent terminology | Update glossary with canonical choice |
Extract Procedure
- Check for existing glossary: Read
docs/domain/GLOSSARY.md(or create from template if it does not exist) - Scan sources for domain-relevant nouns, verbs, and concepts:
- Conversation context
- Spec files (
docs/features/**/spec.md) - Envisioning documents (
docs/envisioning/*.md) - ADRs (
docs/architecture/decisions/*.md) - Code (class names, module names, API endpoints) via codebase search
- Identify problems:
- Same word used for different concepts (ambiguity)
- Different words used for the same concept (synonyms)
- Vague or overloaded terms
- Terms in code that differ from terms in specs
- Propose canonical terms: be opinionated; pick the best term and list others as aliases to avoid
- Write or update
docs/domain/GLOSSARY.mdusing the format below - Present summary inline in the conversation
Glossary Format
# Domain Glossary
## [Domain Group]
| Term | Definition | Status | Aliases to avoid |
|------|-----------|--------|-----------------|
| **[Term]** | [One sentence: what it IS, not what it does] | [Established/Proposed/Contested] | [Synonyms to avoid] |
## Relationships
- A **[Term A]** belongs to exactly one **[Term B]**
- A **[Term C]** produces one or more **[Term D]**
## Flagged Ambiguities
- "[word]" was used to mean both **[Term X]** and **[Term Y]**. These are distinct concepts: [explanation of the difference and recommended usage].Rules for Extraction
- Be opinionated: when multiple words exist for the same concept, pick the best one and list the others as aliases to avoid
- Flag conflicts explicitly with a clear recommendation
- Only include terms relevant for domain experts; skip generic programming concepts (array, function, endpoint) unless they have domain-specific meaning
- Keep definitions tight: one sentence maximum; define what it IS, not what it does
- Show relationships with bold term names and express cardinality where obvious
- Group terms into multiple tables when natural clusters emerge (by subdomain, lifecycle, or actor)
- Create files lazily: only create
GLOSSARY.mdwhen the first terms are resolved; do not bloat new projects
Confidence Levels
| Level | Criterion |
| Established | Term appears consistently in accepted specs and ADRs |
| Proposed | Term chosen during extraction but not yet validated by the team |
| Contested | Multiple stakeholders use different terms for the same concept |
Mark contested terms in the Flagged Ambiguities section until resolved.
2. Validate: Check Artifact Against Glossary
When to Validate
| Agent | Artifact | Check |
devsquad.specify | spec.md | Terms used in the spec exist in the glossary; no synonym drift |
devsquad.review.spec | spec.md | Flag terms that contradict or diverge from the glossary |
devsquad.review.code | Source code | Flag domain-language violations (code uses synonyms instead of canonical terms) |
quality-gate | Any artifact | Terminology consistency as a quality dimension |
Validate Procedure
- Read
docs/domain/GLOSSARY.md- If file does not exist, skip validation (no glossary yet)
- Scan the artifact for domain terms
- For each term found:
- If it matches a canonical term: OK
- If it matches an "alias to avoid": flag as terminology drift
- If it is a domain-relevant term not in the glossary: suggest adding it
- Report findings:
Terminology check: [artifact]
Drift detected:
- "[alias]" used in [location] — canonical term is **[Term]**
New terms (not in glossary):
- "[new term]" — suggest adding with definition: [proposed definition]
No issues: [count] terms checked, all consistent3. Code Cross-Reference
When validating code (called from devsquad.review.code):
- Search for class names, module names, and API endpoints that represent domain concepts
- Compare against the glossary:
- Class
UserAccountwhen glossary says Customer: flag as translation smell - API endpoint
/api/clientswhen glossary says Customer: flag as inconsistency
- Class
- Do not flag internal implementation names (private variables, utility functions) unless they represent domain concepts exposed in public interfaces
- Exempt intentional translation boundaries: anti-corruption layers, legacy database schemas, vendor API contracts, and external system adapters may use different terms by design. If a mismatch is at a known boundary, note it but do not flag as drift.
Anti-patterns
- Do not create a glossary for projects with a single bounded context and fewer than 5 domain terms (overhead exceeds value)
- Do not block delivery for terminology drift (flag it, do not enforce)
- Do not capture generic technical terms ("database", "API", "service") unless they have project-specific meaning
- Do not override terms that the team has explicitly chosen, even if another term seems "better"
- Do not duplicate definitions that already exist in accepted ADRs
Other versions5 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 5
- ovargas/virtual-team★ 14same name
- kambleakash0/agent-skills★ 10same name
- ChariereFiedler/ronce-racine★ 8same name
- AlpayC/claude-skill-set★ 0same name
- mohmaedeslam00116/waypower★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository26 other files it gives its agents.
- .github/copilot-instructions.mdCopilot instructions
- .github/plugins/devsquad/hooks/templates/.github/copilot-instructions.mdCopilot instructions
- adr-workflowSkill
- board-configSkill
- complexity-analysisSkill
- debugging-recoverySkill
- deep-clarificationSkill
- diagram-designSkill
- documentation-styleSkill
- engineering-practicesSkill
- git-branchSkill
- git-commitSkill
- harness-learningsSkill
- init-configSkill
- init-docsSkill
- init-scaffoldSkill
- lsp-setupSkill
- next-taskSkill
- pull-requestSkill
- quality-gateSkill
- reasoningSkill
- security-reviewSkill
- test-disciplineSkill
- triage-workflowSkill
- work-item-creationSkill
- work-item-workflowSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

