Seed domain language
Custom agent skills for Claude Code, Codex, Cursor, and more. Install via npx skills@latest add niftymonkey/skills
npx -y skills add niftymonkey/skills --skill seed-domain-languageAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Seed a project's DOMAIN-LANGUAGE.md glossary from the vocabulary already in its codebase.
SKILL.md
4.2 KB, as published. Nobody here has run it
Bootstrap a DOMAIN-LANGUAGE.md glossary for this repository by mining the domain
vocabulary already present in it, then refining it with the user. A one-time
(occasionally re-run) pass. Companion to explore-idea, which maintains the glossary
incrementally once it exists; this skill only creates the initial one.
If a DOMAIN-LANGUAGE.md / DOMAIN-LANGUAGE-MAP.md already exists, don't silently
overwrite it. Tell the user it exists, and ask whether to re-seed from scratch
(replacing it) or leave maintenance to explore-idea.
Run it as a sequence of stages, with the user in the loop at three gates.
1. Harvest
Determine the repo type first, then gather candidate vocabulary from the highest-signal sources for that type (see Scan strategy). Collect raw candidates; don't refine yet.
2. Context gate: confirm the partitioning
Judge whether the repo is single-context (one cohesive domain language) or multi-context (distinct bounded contexts, e.g. a monorepo with clearly separate packages). Surface your read and let the user confirm or correct it before distilling:
"This repo reads as single-context: one
DOMAIN-LANGUAGE.mdat the root."
or
"This repo looks like N bounded contexts: X, Y, Z. Each gets its own
DOMAIN-LANGUAGE.md, indexed by a rootDOMAIN-LANGUAGE-MAP.md. Confirm or correct."
Never auto-decide multi-context; it reshapes everything downstream.
3. Distill
Turn raw candidates into an opinionated glossary:
- Collapse synonyms: when several words name one concept, pick the canonical term and list the rest as terms to avoid.
- Flag ambiguity: when one word is used for different concepts, call it out.
- Drop generic programming terms: only domain concepts belong; a term meaningful to a domain expert who doesn't know the code, not general engineering vocabulary.
- Cluster the survivors: by bounded context if multi-context, else by domain area.
Follow DOMAIN-LANGUAGE-FORMAT.md for what a good entry looks like.
4. Cluster gates: review per cluster
Present distilled terms one cluster at a time, not all at once, not term-by-term. Per cluster, the user accepts, edits, or rejects entries. A wrong framing caught in an early cluster saves correcting it everywhere downstream.
5. Final gate: confirm the whole draft
Assemble the full glossary and show it whole before writing anything to disk.
6. Write
On confirmation, write per DOMAIN-LANGUAGE-FORMAT.md:
- Single-context →
DOMAIN-LANGUAGE.mdat the repo root. - Multi-context → one
DOMAIN-LANGUAGE.mdper context plus a rootDOMAIN-LANGUAGE-MAP.md.
Tell the user the glossary is live and that explore-idea maintains it from here.
Scan strategy
Rank sources by how much domain signal they carry, and adapt to repo type.
Code repositories. Vocabulary lives in names:
- High signal: type / class / interface names, exported symbols, directory and
module names, doc headings (
README,docs/). - Medium: function and method names (verbs and some nouns; noisier).
- Low: comments. Skip: local variables and parameters.
Prose / documentation repositories (knowledge base, skills or config repo). Vocabulary lives in the writing:
- High signal: document headings, recurring bolded and
backtickedterms, defined-term patterns ("X is a…", "we call this…"), directory and file names. - Skip: prose connective tissue.
If a repo mixes both, harvest from both and let the docs disambiguate the code.
Relationship to explore-idea
seed-domain-language and explore-idea are independent skills sharing one
artifact and one contract:
- The contract is DOMAIN-LANGUAGE-FORMAT.md.
- This skill creates the initial
DOMAIN-LANGUAGE.md;explore-ideamaintains it incrementally. - They never invoke each other; they integrate only through the file on disk.
explore-idea's startup offer points users here when a repo has no glossary yet;
this skill points users back to explore-idea for ongoing maintenance.