skills/mine/ddd-master/SKILL.md
Assess DDD fit; discover domains with EventStorming, define language and bounded contexts, and design aggregates, value objects, events, and repositories. Excludes architecture-only audits, product specs, and CQRS/Event Sourcing catalogs.
npx skillsauth add pedronauck/skills ddd-masterInstall 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.
Predictable process for applying DDD: verdict first, then grasp what happens, lock language and bounded contexts, then design one aggregate at a time.
Use the branch covering the changed model or decision. Reuse established language, context maps, and timelines; read adjacent references only when the change crosses their boundaries.
Resolve bundled files relative to the directory that holds this SKILL.md. A path written references/<name> expands to <ddd-master-dir>/references/<name>.
| When the task involves… | Read in full |
| --- | --- |
| Refusing DDD, anemic models, transaction script, slogan folders, CRUD, or legacy rewrite | references/when-not.md |
| EventStorming, event timelines, or grasping what happens before contexts exist | references/discovery.md |
| Ubiquitous language, subdomains, bounded contexts, context map, or context relationships | references/strategic.md |
| Aggregates, value objects, domain events, repositories, factories, or invariants | references/tactical.md |
| Rule density, repository FAQ, or Branas/Elemar practitioner checks | references/practitioner.md |
| CQRS-by-default, copying a "DDD" repo, LLM-generated aggregates, or model/code drift | references/pitfalls.md |
For a new or redesigned model, work through the relevant discovery, strategic, and tactical decisions. A narrow change inside an established context needs only its affected invariants and consumers. Downgrade-to-layers can use architectural-analysis when a structural audit is requested.
Classify new or redesigned models before scaffolding. For a focused question or local fix, give the relevant rationale without a six-tag report.
references/when-not.md in full before choosing.Record Refuse, Downgrade, or Proceed.
Done when: one verdict is written with the six tags above; Refuse and Downgrade emit no aggregate or repository types.
Run when the verdict is Proceed and no trusted event timeline exists. When the user asked for EventStorming or "what happens," read references/discovery.md in full.
Skip the workshop tool when a recent EventStorm, Domain Storytelling, or Example Mapping already exists — keep the timeline artifact and continue at the carve. Reopen discovery only for gaps relevant to the requested change.
Done when: a sequenced past-tense timeline exists; every event has a command/actor or a hotspot; the roster or the gap is written.
Run when creating or changing context boundaries or language. When drawing contexts, locking language, or mapping relationships, read references/strategic.md in full.
references/strategic.md in full and apply its decision tree.Done when: every named area has a subdomain type; every in-scope context has name, purpose, and boundary; every neighboring edge has direction + pattern; required canvas cells are non-empty.
Run only for a bounded context labeled Domain Model. When designing building blocks, read references/tactical.md in full. When judging rule density or a repository FAQ, read references/practitioner.md in full.
Done when: every mutation path goes through the root; foreign aggregates are ids; each value object is immutable and equal by components; events are past-tense, registered after success, published after persist; the repository — if any — accepts only this root; no repository method holds a business rule.
ddd offered as the model — inspect for invariants on roots and immutable value objects, or write "DDD-in-name-only" and model from experts. When copying a sample repo, read references/pitfalls.md in full.references/pitfalls.md in full.references/pitfalls.md in full.*Service about to own a new invariant — put the rule on the entity or value object; name the application service with a verb.development
Build terminal UIs with ratatui following 2026 Rust best practices. Use when: (1) Creating new TUI apps, (2) Adding widgets/layouts, (3) Keyboard navigation/state management, (4) Image integration via ratatui-image, (5) Async event handling, (6) Release optimization. Covers v0.30.0+ API, Elm Architecture, StatefulWidget, color-eyre.
development
Find 10x product opportunities and high-leverage improvements. Use when user wants strategic product thinking, mentions '10x', wants to find high-impact features, or says 'what would make this 10x better', 'product strategy', or 'what should we build next'.
development
You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.
development
Create professional, dark-themed architecture diagrams as standalone HTML files with SVG graphics. Use when the user asks for system architecture diagrams, infrastructure diagrams, cloud architecture visualizations, security diagrams, network topology diagrams, or any technical diagram showing system components and their relationships.