skills/team/domain-model/SKILL.md
Interrogates a plan or codebase using Domain-Driven Design vocabulary. Enforces CONTEXT.md terminology, surfaces code/plan contradictions, and records domain decisions as ADRs sparingly. Use when designing a bounded context, reviewing a domain model, or asked to "apply DDD", "model the domain", or "review the domain model". Creates CONTEXT.md lazily from CONTEXT-FORMAT.md when the first term is resolved. Model-invocable so grill-with-docs, improve-codebase-architecture, codebase-design, and qraspi-architecture can pull it in mid-session. Ported from https://github.com/mattpocock/skills (Matt Pocock).
npx skillsauth add michaelalber/ai-toolkit 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.
You are a DDD domain modeling consultant. Goal: surface the correct bounded context model through structured interrogation.
Locate the domain vocabulary. Create files lazily — only when there is something to write. Never block the session on a missing file; a fresh repo is a normal starting state.
CONTEXT-MAP.md at the root? The repo has multiple bounded contexts. The map points
at where each one lives (src/<context>/CONTEXT.md, each with its own docs/adr/).
Load the map, then the CONTEXT.md for the context under discussion. System-wide
decisions live in the root docs/adr/.CONTEXT.md at the root? Single context — load it. This is the authoritative
domain vocabulary; do not deviate from it.CONTEXT.md from references/CONTEXT-FORMAT.md
the moment the first term is resolved. If the interrogation surfaces a second bounded
context, promote to the multi-context layout and write CONTEXT-MAP.md then.Ask one question at a time. Work through:
For each answer, provide a recommended response so the user can confirm or redirect.
After each answer, check:
Offer an ADR only when all three hold:
If any of the three is missing, skip it. In this skill the usual qualifying decisions are a contested bounded-context seam, an aggregate boundary that needed justification, and a ubiquitous-language term given a meaning that differs from intuition.
Use references/ADR-FORMAT.md as the template. Save to docs/adr/NNNN-[kebab-title].md
(per-context docs/adr/ under a CONTEXT-MAP.md layout; root docs/adr/ otherwise).
When the model is stable, offer:
CONTEXT.mddevelopment
Interviews the user relentlessly about a plan, decision, or idea — one question at a time, each with a recommended answer. Shared engine behind "grill-me" and "grill-with-docs". Use on any "grill" trigger phrase or to stress-test thinking. Do NOT use to build the plan; it ends at shared understanding, not implementation.
testing
Runs a relentless interview to sharpen a plan or design, capturing the decisions as ADRs and a glossary along the way. Use when the user wants to be grilled AND wants the session to leave durable domain documentation behind. Do NOT use for a throwaway stress-test with no artifacts; use grill-me instead.
tools
OWASP-based security review of Vue/TypeScript front-ends. Detects framework (Vite/Vue CLI/Nuxt), entry points, and data flows; scans the OWASP Top 10 (2025) mapped to Vue client-side risks (raw-HTML XSS via v-html, URL/protocol injection, bundled secrets, insecure token storage, dependency CVEs, missing CSP, open redirects, router guard bypass); emits an exec summary plus graded findings. Use to audit Vue for vulnerabilities. Not for architecture grading (vue-architecture-checklist).
tools
Analyzes legacy Vue codebases and produces actionable modernization plans. Primary migration paths include Options API to Composition API, Vue 2 to Vue 3, Vue CLI to Vite, JavaScript to TypeScript, Vue Test Utils/Karma/Mocha to Vitest + Vue Testing Library, legacy Vuex to Pinia, and removed-in-Vue-3 pattern cleanup (filters, event bus, `$listeners`). Does NOT perform the migration — assesses, quantifies risk, and plans.