Skip to content
Agentmart
Submit a tool

domain-modelling

Build and sharpen a project's domain model.

Skill by nathanstaines

IndexedMIT
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/nathanstaines-domain-modelling

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Build and sharpen a project's domain model. Use when discussing codebase terminology, when writing or editing GLOSSARY.md or when recording or editing an ADR.

Use cases: writing

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/domain-modelling

What's inside

Skill name
domain-modelling
Description
Build and sharpen a project's domain model. Use when discussing codebase terminology, when writing or editing GLOSSARY.md or when recording or editing an ADR.
License
MIT
Instructions
45 lines in SKILL.md · view on GitHub

Files (4)

  • ADR-FORMAT.md
  • GLOSSARY-FORMAT.md
  • SKILL.md
  • openai.yaml · agents/

SKILL.md (first lines)

# Domain modelling

Actively build and sharpen the project's domain model as you design. This is the *active* discipline: challenging terms, inventing edge-case scenarios and writing the glossary and decisions down the moment they crystallise. (Merely *reading* `GLOSSARY.md` for vocabulary is not this skill; that's a one-line habit any skill can do. This skill is for when you're changing the model, not just consuming it.)

## Where the files live

The project's domain doc layout (single-context or multi-context) lives in `docs/agents/domain.md`. When that file doesn't exist, assume the single-context default (`GLOSSARY.md` and `docs/adr/` at the project root) and suggest running `/setup-skills` at the end of the session rather than blocking on it.

Create files lazily, only when you have something to write. If no `GLOSSARY.md` exists, create one when the first term is resolved. If no `docs/adr/` exists, create it when the first ADR is needed. In a multi-context project, infer which context the current topic relates to; if unclear, ask.

## During the session

### Challenge against the glossary

When the user uses a term that conflicts with the existing language in `GLOSSARY.md`, call it out immediately. "Your glossary defines 'cancellation' as X, but you seem to mean Y. Which is it?"

### Sharpen fuzzy language

When the user uses vague or overloaded terms, propose a precise canonical term. "You're saying 'account'. Do you mean the Customer or the User? Those are different things."

### Discuss concrete scenarios

When domain relationships are being discussed, stress-test them with specific scenarios. Invent scenarios that probe edge cases and force the user to be precise about the boundaries between concepts.

### Cross-reference with code

When the user states how something works, check whether the code agrees. When you find a contradiction, surface it: "Your code cancels entire Orders, but you just said partial cancellation is possible. Which is right?"

### Update GLOSSARY.md inline

When a term is resolved, update `GLOSSARY.md` right there. Don't batch these up; capture them as they happen. Use the format in [GLOSSARY-FORMAT.md](./GLOSSARY-FORMAT.md).

`GLOSSARY.md` stays totally devoid of implementation details. Don't treat it as a spec, a scratch pad or a repository for implementation decisions. It is a glossary and nothing else.

### Offer ADRs sparingly

Only offer to create an ADR when all three are true:

1. **Hard to reverse**: the cost of changing your mind later is meaningful
2. **Surprising without context**: a future reader will wonder "why did they do it this way?"
3. **The result of a real trade-off**: there were genuine alternatives and you picked one for specific reasons

If any of the three is missing, skip the ADR. Create it in the relevant `docs/adr/` with the next sequential number: list the directory first and increment from the highest existing prefix, never defaulting to `0001`. Use the format in [ADR-FORMAT.md](./ADR-FORMAT.md).

From nathanstaines/skills, MIT.

More from nathanstaines/skills

Signals

Stars
0
Forks
0
Open issues
0
Last commit (this folder)
Oct 6, 2026 (23 days ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from nathanstaines

Cite this page

domain-modelling skill. Agent Mart. https://agentmart.dev/skills/nathanstaines-domain-modelling (last updated 2026-10-24)