m09-domain — Claude Code skill: what it does, how to install
Domain-driven design guide for structuring Rust code. Helps your coding agent organize entities, aggregates, and value objects under Rust ownership.
npx skills add actionbook/rust-skills --skill m09-domain -a claude-codeWhat m09-domain does
This skill translates DDD patterns into idiomatic Rust constructs. It directs the assistant to represent entities with unique IDs, wrap plain data into validated Newtypes, and keep aggregate boundaries tight inside dedicated modules. The root struct owns its child items directly instead of leaking references outside.
Inside, repository patterns translate to traits, domain state transitions map to the type-state pattern, and domain events become enums. The guidelines actively warn the assistant against primitive obsession, public fields that bypass invariants, and exposed aggregate internals.
Notice that this skill is configured as non-user-invocable. You do not trigger it with a slash command; the agent activates it on its own when domain concepts, business invariants, or aggregate design enter the conversation.
What it helps with
- model domain entities and value objects in Rust
- enforce aggregate boundaries and clear data ownership
- protect domain invariants through validated constructors
- abstract persistence layers with repository traits
Example prompts for the agent
- Design an Order aggregate with OrderItem lines using DDD principles
- Create an Email value object with validation in the constructor
- How do I enforce state transitions for this entity with type states?
How to install m09-domain
1Skills CLI (Vercel)
npx skills add actionbook/rust-skills --skill m09-domain -a claude-code2Manually: put the files in place
~/.claude/skills/m09-domain/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/m09-domain/
1Skills CLI (Vercel)
npx skills add actionbook/rust-skills --skill m09-domain -a codex2Manually: put the files in place
.agents/skills/m09-domain/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add actionbook/rust-skills --skill m09-domain -a cursor2Manually: put the files in place
.cursor/skills/m09-domain/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install actionbook/rust-skills m09-domain2Manually: put the files in place
.github/skills/m09-domain/SKILL.md1Skills CLI (Vercel)
npx skills add actionbook/rust-skills --skill m09-domain -a gemini-cli2Platform CLI
gemini skills install https://github.com/actionbook/rust-skills --path skills/m09-domainManually: put the files in place
.devin/skills/m09-domain/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add actionbook/rust-skills --skill m09-domain -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about m09-domain
How to install m09-domain in Claude Code?
Run npx skills add actionbook/rust-skills --skill m09-domain -a claude-code in your terminal.
What does m09-domain do?
It guides the agent through domain-driven design in Rust, mapping entities, aggregates, and value objects to ownership trees and type safety.
Can I run this skill with a slash command?
No, it is set to non-invocable. Your assistant loads it automatically whenever you discuss business rules, invariants, or domain modeling.