domain-model/SKILL.md
Stress-test a plan against the domain model. Interrogates ambiguous terms, verifies claims against code, and updates CONTEXT.md, CONTEXT-MAP.md, and docs/adr/ inline. Do NOT use for greenfield ideation, code review, or AGENTS.md.
npx skillsauth add sanurb/skills domain-modelInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Run a relentless interview that walks every branch of a proposed plan, sharpens the ubiquitous language, and pins decisions into durable artifacts. Treat the project's existing language as the source of truth; force alignment or deliberate change.
Step 1 — Discover. Read CONTEXT-MAP.md at repo root if present, otherwise root CONTEXT.md. Walk the dependency tree of the plan. Ask ONE question at a time and wait for the answer. If a question can be resolved by reading the codebase, read the codebase instead of asking. State a recommended answer with every question.
Step 2 — Challenge. On every user statement, apply the moves in this table. Surface conflicts the moment they appear; never batch them.
| Move | Trigger | Action |
|------|---------|--------|
| Glossary conflict | User term disagrees with CONTEXT.md | Quote both, ask which one wins |
| Fuzzy term | Overloaded word (e.g. "process", "user") | Propose canonical name, ask to confirm |
| Concrete scenario | Boundary between two concepts is implicit | Invent an edge case that forces a choice |
| Code contradiction | Stated behaviour differs from code | Read the code, surface the contradiction |
Step 3 — Persist. As decisions crystallise, route each one with this table. Create files lazily — write only when there is something to record. Follow the schemas in references/ exactly.
| Decision type | Target file | Schema |
|---------------|-------------|--------|
| Term resolved | CONTEXT.md (root or src/<context>/) | references/context-format.md |
| Context relationship resolved | CONTEXT-MAP.md (root) | references/context-map-format.md |
| Decision passing all 3 ADR triggers | docs/adr/NNNN-<slug>.md | references/adr-format.md |
ADR triggers (ALL three required): hard to reverse · surprising without context · real trade-off.
Deliver nothing if any criterion fails.
CONTEXT.md is domain-specific. General programming concepts (timeouts, retries, utility patterns) are excluded.CONTEXT.md. No empty docs/adr/ directory.CONTEXT.md. Multi-context repos use root CONTEXT-MAP.md plus src/<context>/CONTEXT.md per context.## Output) is returned every time, with none used explicitly when a list is empty.The skill produces two artifacts: mutated domain files in the repo and a session-end footer in this exact output format. After the session, the on-disk layout is one of:
Single-context repo:
/
├── CONTEXT.md
├── docs/adr/0001-<slug>.md
└── src/
Multi-context repo:
/
├── CONTEXT-MAP.md
├── docs/adr/ # system-wide decisions
└── src/
├── <context-a>/
│ ├── CONTEXT.md
│ └── docs/adr/ # context-specific decisions
└── <context-b>/
├── CONTEXT.md
└── docs/adr/
Return to the caller verbatim, in this exact format:
CONTEXT_FILES_TOUCHED: <comma-separated relative paths, or "none">
ADRS_CREATED: <comma-separated relative paths, or "none">
OPEN_QUESTIONS: <numbered list, or "none">
| File | Purpose |
|------|---------|
| references/context-format.md | CONTEXT.md schema, term rules, example dialogue |
| references/context-map-format.md | CONTEXT-MAP.md schema for multi-context repos |
| references/adr-format.md | ADR template, numbering, qualifying decisions |
development
Sets up an `## Agent skills` block in AGENTS.md/CLAUDE.md and `docs/agents/` so the engineering skills know this repo's issue tracker (GitHub, GitLab, fp, or local markdown), triage label vocabulary, and domain doc layout. Run before first use of `fp-plan`, `fp-implement`, `fp-review`, `to-issues`, `to-prd`, `triage`, `diagnose`, `tdd`, `improve-codebase-architecture`, or `zoom-out` — or if those skills appear to be missing context about the issue tracker, triage labels, or domain docs.
development
Build a throwaway prototype to flush out a design before committing to it. Routes between two branches — a runnable terminal app for state/business-logic questions, or several radically different UI variations toggleable from one route. Use when the user wants to prototype, sanity-check a data model or state machine, mock up a UI, explore design options, or says "prototype this", "let me play with it", "try a few designs".
tools
Control herdr (a terminal-native agent multiplexer) from inside it. Manage workspaces and tabs, split panes, spawn sibling agents, read pane output, and wait for state changes — all via CLI commands that talk to the running herdr instance over a local unix socket. Use when running inside herdr (HERDR_ENV=1). Do not use outside herdr.
documentation
Compact the current conversation into a handoff document for another agent to pick up.