m09-domain — community m09-domain, rust-skills, community, ide skills, Claude Code, Cursor, Windsurf

v1.0.0
GitHub

About this Skill

Perfect for Rust Developer Agents needing advanced domain modeling and meta-problem-driven knowledge indexing capabilities. Rust Developer AI Assistance System — Meta-Problem-Driven Knowledge Indexing

actionbook actionbook
[0]
[0]
Updated: 3/5/2026

Agent Capability Analysis

The m09-domain skill by actionbook is an open-source community AI agent skill for Claude Code and other IDE workflows, helping agents execute tasks with better context, repeatability, and domain-specific guidance.

Ideal Agent Persona

Perfect for Rust Developer Agents needing advanced domain modeling and meta-problem-driven knowledge indexing capabilities.

Core Value

Empowers agents to maintain invariants and define aggregate boundaries using Rust patterns, ensuring owned and unique identifiers for entities and value objects, while leveraging concepts like struct and Id for robust domain modeling.

Capabilities Granted for m09-domain

Modeling entities with unique identifiers
Defining invariants for value objects
Determining aggregate boundaries for complex domains

! Prerequisites & Limits

  • Requires understanding of Rust programming language
  • Limited to domain modeling and knowledge indexing
  • Needs careful consideration of ownership implications
Labs Demo

Browser Sandbox Environment

⚡️ Ready to unleash?

Experience this Agent in a zero-setup browser environment powered by WebContainers. No installation required.

Boot Container Sandbox

m09-domain

Install m09-domain, an AI agent skill for AI agent workflows and automation. Works with Claude Code, Cursor, and Windsurf with one-command setup.

SKILL.md
Readonly

Domain Modeling

Layer 2: Design Choices

Core Question

What is this concept's role in the domain?

Before modeling in code, understand:

  • Is it an Entity (identity matters) or Value Object (interchangeable)?
  • What invariants must be maintained?
  • Where are the aggregate boundaries?

Domain Concept → Rust Pattern

Domain ConceptRust PatternOwnership Implication
Entitystruct + IdOwned, unique identity
Value Objectstruct + Clone/CopyShareable, immutable
Aggregate Rootstruct owns childrenClear ownership tree
RepositorytraitAbstracts persistence
Domain EventenumCaptures state changes
Serviceimpl block / free fnStateless operations

Thinking Prompt

Before creating a domain type:

  1. What's the concept's identity?

    • Needs unique identity → Entity (Id field)
    • Interchangeable by value → Value Object (Clone/Copy)
  2. What invariants must hold?

    • Always valid → private fields + validated constructor
    • Transition rules → type state pattern
  3. Who owns this data?

    • Single owner (parent) → owned field
    • Shared reference → Arc/Rc
    • Weak reference → Weak

Trace Up ↑

To domain constraints (Layer 3):

"How should I model a Transaction?"
    ↑ Ask: What domain rules govern transactions?
    ↑ Check: domain-fintech (audit, precision requirements)
    ↑ Check: Business stakeholders (what invariants?)
Design QuestionTrace ToAsk
Entity vs Value Objectdomain-*What makes two instances "the same"?
Aggregate boundariesdomain-*What must be consistent together?
Validation rulesdomain-*What business rules apply?

Trace Down ↓

To implementation (Layer 1):

"Model as Entity"
    ↓ m01-ownership: Owned, unique
    ↓ m05-type-driven: Newtype for Id

"Model as Value Object"
    ↓ m01-ownership: Clone/Copy OK
    ↓ m05-type-driven: Validate at construction

"Model as Aggregate"
    ↓ m01-ownership: Parent owns children
    ↓ m02-resource: Consider Rc for shared within aggregate

Quick Reference

DDD ConceptRust PatternExample
Value ObjectNewtypestruct Email(String);
EntityStruct + IDstruct User { id: UserId, ... }
AggregateModule boundarymod order { ... }
RepositoryTraittrait UserRepo { fn find(...) }
Domain EventEnumenum OrderEvent { Created, ... }

Pattern Templates

Value Object

rust
1struct Email(String); 2 3impl Email { 4 pub fn new(s: &str) -> Result<Self, ValidationError> { 5 validate_email(s)?; 6 Ok(Self(s.to_string())) 7 } 8}

Entity

rust
1struct UserId(Uuid); 2 3struct User { 4 id: UserId, 5 email: Email, 6 // ... other fields 7} 8 9impl PartialEq for User { 10 fn eq(&self, other: &Self) -> bool { 11 self.id == other.id // Identity equality 12 } 13}

Aggregate

rust
1mod order { 2 pub struct Order { 3 id: OrderId, 4 items: Vec<OrderItem>, // Owned children 5 // ... 6 } 7 8 impl Order { 9 pub fn add_item(&mut self, item: OrderItem) { 10 // Enforce aggregate invariants 11 } 12 } 13}

Common Mistakes

MistakeWhy WrongBetter
Primitive obsessionNo type safetyNewtype wrappers
Public fields with invariantsInvariants violatedPrivate + accessor
Leaked aggregate internalsBroken encapsulationMethods on root
String for semantic typesNo validationValidated newtype

WhenSee
Type-driven implementationm05-type-driven
Ownership for aggregatesm01-ownership
Domain error handlingm13-domain-error
Specific domain rulesdomain-*

FAQ & Installation Steps

These questions and steps mirror the structured data on this page for better search understanding.

? Frequently Asked Questions

What is m09-domain?

Perfect for Rust Developer Agents needing advanced domain modeling and meta-problem-driven knowledge indexing capabilities. Rust Developer AI Assistance System — Meta-Problem-Driven Knowledge Indexing

How do I install m09-domain?

Run the command: npx killer-skills add actionbook/rust-skills/m09-domain. It works with Cursor, Windsurf, VS Code, Claude Code, and 19+ other IDEs.

What are the use cases for m09-domain?

Key use cases include: Modeling entities with unique identifiers, Defining invariants for value objects, Determining aggregate boundaries for complex domains.

Which IDEs are compatible with m09-domain?

This skill is compatible with Cursor, Windsurf, VS Code, Trae, Claude Code, OpenClaw, Aider, Codex, OpenCode, Goose, Cline, Roo Code, Kiro, Augment Code, Continue, GitHub Copilot, Sourcegraph Cody, and Amazon Q Developer. Use the Killer-Skills CLI for universal one-command installation.

Are there any limitations for m09-domain?

Requires understanding of Rust programming language. Limited to domain modeling and knowledge indexing. Needs careful consideration of ownership implications.

How To Install

  1. 1. Open your terminal

    Open the terminal or command line in your project directory.

  2. 2. Run the install command

    Run: npx killer-skills add actionbook/rust-skills/m09-domain. The CLI will automatically detect your IDE or AI agent and configure the skill.

  3. 3. Start using the skill

    The skill is now active. Your AI agent can use m09-domain immediately in the current project.

Related Skills

Looking for an alternative to m09-domain or another community skill for your workflow? Explore these related open-source skills.

View All

widget-generator

Logo of f
f

f.k.a. Awesome ChatGPT Prompts. Share, discover, and collect prompts from the community. Free and open source — self-host for your organization with complete privacy.

149.6k
0
AI

flags

Logo of vercel
vercel

flags is a Next.js feature management skill that enables developers to efficiently add or modify framework feature flags, streamlining React application development.

138.4k
0
Browser

zustand

Logo of lobehub
lobehub

The ultimate space for work and life — to find, build, and collaborate with agent teammates that grow with you. We are taking agent harness to the next level — enabling multi-agent collaboration, effortless agent team design, and introducing agents as the unit of work interaction.

72.8k
0
AI

data-fetching

Logo of lobehub
lobehub

The ultimate space for work and life — to find, build, and collaborate with agent teammates that grow with you. We are taking agent harness to the next level — enabling multi-agent collaboration, effortless agent team design, and introducing agents as the unit of work interaction.

72.8k
0
AI