Maintain the project's shared vocabulary in CONTEXT.md — challenge conflicting terms, sharpen fuzzy language, record resolutions inline. Use when a term conflicts with or is missing from the glossary, when a decision names a new concept, or when another skill needs the glossary discipline.
Scanned 9/1/2026
Install to Claude Code
npx -y skills add donald-ada/workinggenius --skill domain-glossary --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Domain Glossary?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/donald-ada-domain-glossary)More formats (shields.io, HTML) on the badges page.
---
name: domain-glossary
description: Maintain the project's shared vocabulary in CONTEXT.md — challenge conflicting terms, sharpen fuzzy language, record resolutions inline. Use when a term conflicts with or is missing from the glossary, when a decision names a new concept, or when another skill needs the glossary discipline.
---
# Domain Glossary
One shared language between the user, the agent, and the code — what Domain-Driven Design calls the *ubiquitous language* — living in `CONTEXT.md` at the repo root: a glossary and nothing else. The payoff compounds across work: a term sharpened during one piece of work serves every later one — shorter conversations, consistent naming in code and tests, fewer tokens spent decoding jargon.
## Format
```markdown
# {Project Name}
{One or two sentences on what this project is.}
## Language
**customer**:
{One or two sentences. What it IS, not what it does.}
Killed: *client*, *buyer* — one concept, one word.
**archive**:
Soft-hide; the user can restore it. Settled against permanent deletion in the
exports work — restorability is a support contract.
Killed: *trash*, *delete* — each carried both meanings at once.
```
Rules of the file:
- **Be opinionated.** When several words name one concept, pick the best and name the losers as killed — with what killed them where there was a real fight, and a plain "one concept, one word" where there wasn't.
- **A fought term keeps its fight.** A term that collided — two meanings, or a claim against the code — carries the collision in one line: what collided, which won, why. A resolution recorded without its collision gets re-litigated; that is as true of words as of designs. A term that never collided is just its definition.
- **Published API names outrank opinion.** A misleading name that's public API (a decade-old keyword argument) can't be renamed — define it *against* its general meaning instead ("not actually a cryptographic salt; the name is API, the definition rules"). The glossary's job there is disambiguation, not renaming.
- **Tight definitions.** One or two sentences; define what it *is*.
- **Project concepts only.** General programming concepts (retries, timeouts, error types) don't belong, however often the project uses them.
- **No implementation details.** `CONTEXT.md` is not a spec, a scratchpad, or a decision log — decisions live in their work file, indexed in `.genius/DECIDED.md` where a stranger would re-fight them, not here.
- **Create lazily.** No `CONTEXT.md`? Create it when the first term is resolved, not before.
- **Don't hijack.** If `CONTEXT.md` already exists with non-glossary content, leave that content alone: append the `## Language` section to it and keep the discipline scoped to that section.
## The discipline
While any conversation is shaping work:
- **Collide words with the glossary.** The user's term conflicts with an entry → stop and hold the two meanings up side by side: "The glossary says an *archived* account is restorable, but you're describing permanent deletion — which do you mean?" No building on a word that means two things at once.
- **Sharpen fuzzy terms.** One word doing two jobs ("account" naming both the merchant and a staff member's login) → propose a precise canonical term for each job.
- **Collide claims with the code.** The user says how something works; the code disagrees → surface the contradiction, don't paper over it.
- **Update inline.** The moment a term resolves, write it into `CONTEXT.md` — not batched at the end. A resolution that isn't written down will be re-litigated.
## What this skill is not
Merely *reading* `CONTEXT.md` to use its vocabulary is not this skill — any skill does that with one line. Invoke this skill only when the language itself is being built, challenged, or changed.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!