domain-modeling
Build and sharpen a project's domain model and the durable docs around it.
Skill by ferntheplant
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/ferntheplant-domain-modeling
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.
About
Reviews
Write a reviewNo 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-modeling
What's inside
- Skill name
domain-modeling- Description
- Build and sharpen a project's domain model and the durable docs around it. Use when the user wants to pin down domain terminology or a ubiquitous language, record an architectural decision, describe what the system does for its user, capture behaviour that looks like a defect and isn't, or when another skill needs to maintain the domain model.
- License
- MIT
- Instructions
- 100 lines in SKILL.md · view on GitHub
Files (3)
- SKILL.md
- openai.yaml · agents/
- bootstrap.md · references/
SKILL.md (first lines)
# Domain Modeling 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_ `CONTEXT.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 formats live **The repo owns the formats, not this skill.** Before writing anything durable: - **If `docs/README.md` exists, read it and follow it.** It is the format spec for that repo — where each kind of writing goes, how an ADR is structured, what a capability file must carry, how open questions are handled. Where it disagrees with anything below, it wins. - **If it does not exist, bootstrap.** Read [references/bootstrap.md](./references/bootstrap.md) and follow its steps to create `docs/README.md` before writing the first ADR, capability, or gotcha. Formats belong in the repo because a repo outlives any one agent's skill set: someone who has never heard of the `.agents/` convention still has to read and extend these files. This skill carries the seed and the practice; the repo carries the spec. The one rule worth stating twice, because everything else follows from it: **nothing lives in two homes.** A capability file links the decision behind a behaviour rather than restating it; an ADR records why rather than describing the feature. When a paragraph could sit in two places, cut it to a link from one to the other. ## During the session ### Challenge against the glossary When the user uses a term that conflicts with the existing language in `CONTEXT.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 where one concept ends and the next begins. ### Cross-reference with code When the user states how something works, check whether the code agrees. If you find a contradiction, surface it: "Your code cancels entire Orders, but you just said partial cancellation is possible — which is right?" ### Update `CONTEXT.md` inline When a term is resolved, update `CONTEXT.md` right there. Don't batch these up — capture them as they happen. `CONTEXT.md` should be totally devoid of implementation details. Do not 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. ### Keep the capability catalogue honest When the session changes what a user can expect — a promise gained, a promise qualified, a stage that now actually runs — update the capability file in the same breath, including its **Where it stands**. The catalogue is only useful while "Designed" and "Built" mean what they say; one file that overstates its state costs the reader trust in all of them. Treat a capability catalogue `README.md` as an index unless the repository format says otherwise: update its status metadata, not its prose with a second description of the behaviour. Before finishing, compare every capability, ADR, and catalogue entry changed in the session. Every user promise must occur in one capability file, every ADR must contain only decision and rationale, and every catalogue entry must contain only the fields the repository format assigns it; replace repeated behaviour with a link or delete it. Two moves matter more than the writing: - **Route the question, don't answer it in place.** A decision that surfaces while writing a capability becomes an ADR the capability links. A term that surfaces becomes a `CONTEXT.md` entry. - **Close the loop when an ADR lands.** A new decision usually changes some capability's promise. Check which one, and edit it. ### Record gotchas as they bite When something behaves in a way that looks like a bug in our code and isn't — the runtime chose it, the driver chose it, the registry chose it — write it down while the diagnosis is still in your head, along with the measurement or version that proves it. Name the obvious-looking simplification that reintroduces the problem; that sentence is what makes the entry worth keeping. Do not offer a gotcha for something we chose against a real alternative. That is an ADR. ### Leave open questions where the project tracks them A question that surfaces and does not get settled does **not** go into durable prose as a parked note or a link to wherever it is tracked. Check `docs/README.md` for how that repo handles it. Absent any rule, say the question out loud to the user and let them decide where it goes.
From ferntheplant/bearing, MIT.
More from ferntheplant/bearing
- 0.504score
diagnosing-bugs
ferntheplant
Diagnosis loop for hard bugs and performance regressions.
SkillBFreshness: BClaude Code +9 - 0.499score
codebase-design
ferntheplant
Shared vocabulary for designing deep modules.
SkillBFreshness: BClaude Code +9 - 0.499score
code-review
ferntheplant
Review the changes since a fixed point (commit, branch, tag, or merge-base) along two axes — Standards (does the code follow this repo's documented coding…
SkillBFreshness: BClaude Code +9 - 0.488score
bearing-wayfinder
ferntheplant
Placeholder for bearing's wayfinder method while its final instructions are being decided.
SkillBFreshness: BClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Aug 12, 2026 (2 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/ferntheplant/bearing
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from ferntheplant
- 0.504score
diagnosing-bugs
ferntheplant
Diagnosis loop for hard bugs and performance regressions.
SkillBFreshness: BClaude Code +9 - 0.499score
codebase-design
ferntheplant
Shared vocabulary for designing deep modules.
SkillBFreshness: BClaude Code +9 - 0.499score
code-review
ferntheplant
Review the changes since a fixed point (commit, branch, tag, or merge-base) along two axes — Standards (does the code follow this repo's documented coding…
SkillBFreshness: BClaude Code +9 - 0.488score
bearing-wayfinder
ferntheplant
Placeholder for bearing's wayfinder method while its final instructions are being decided.
SkillBFreshness: BClaude Code +9
Cite this page
domain-modeling skill. Agent Mart. https://agentmart.dev/skills/ferntheplant-domain-modeling (last updated 2026-10-24)