/ddd-aggregate
Scaffold an aggregate root with entity, value objects, repository interface, domain events, and test stubs. Use when adding a new aggregate to an existing bounded context, modeling a new business concept that owns invariants, or generating the boilerplate for an entity + repo +
$ npx -y skills add ruvnet/claude-flow --skill ddd-aggregate --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/ddd-aggregate
Context preview
The summary Claude sees to decide when to auto-load this skill.
Scaffold an aggregate root with entity, value objects, repository interface, domain events, and test stubs. Use when adding a new aggregate to an existing bounded context, modeling a new business concept that owns invariants, or generating the boilerplate for an entity + repo +
SKILL.md
ddd-aggregate.SKILL.mdname: ddd-aggregate
description: Scaffold an aggregate root with entity, value objects, repository interface, domain events, and test stubs. Use when adding a new aggregate to an existing bounded context, modeling a new business concept that owns invariants, or generating the boilerplate for an entity + repo + events triplet.
argument-hint: "<context> <aggregate-name>"
allowed-tools: Bash Read Write Edit Grep Glob mcp__plugin_ruflo-core_ruflo__memory_store mcp__plugin_ruflo-core_ruflo__memory_search mcp__plugin_ruflo-core_ruflo__agentdb_hierarchical-store mcp__plugin_ruflo-core_ruflo__hooks_pre-task mcp__plugin_ruflo-core_ruflo__hooks_post-task
Scaffold a complete aggregate root inside a bounded context.
Parse `$ARGUMENTS` as `<context-name> <aggregate-name>` (both kebab-case). The context must already exist under `src/`.
Steps
1. **Validate**: Confirm `src/<context>/domain/` exists. If not, suggest running `/ddd-context <context>` first.
2. **Pre-task hook**: `npx @claude-flow/cli@latest hooks pre-task --description "DDD aggregate: <aggregate-name> in <context>"`
3. **Create aggregate root entity**:
- File: `src/<context>/domain/entities/<aggregate-name>.entity.ts`
- Include: unique ID field, constructor with invariant validation, domain methods that enforce business rules, `equals()` based on identity
- Export a TypeScript class extending or implementing a base `AggregateRoot` interface
4. **Create value objects**:
- File: `src/<context>/domain/value-objects/<aggregate-name>-id.value-object.ts`
- Include: immutable ID value object with factory method and validation
- Add additional value objects as properties of the aggregate suggest them
5. **Create repository interface**:
- File: `src/<context>/domain/repositories/<aggregate-name>.repository.ts`
- Include: `findById`, `save`, `delete` methods
- Use the aggregate root and its ID value object as types
- This is an interface only -- no implementation (infrastructure concern)
6. **Create domain events**:
- File: `src/<context>/domain/events/<aggregate-name>-created.event.ts`
- File: `src/<context>/domain/events/<aggregate-name>-updated.event.ts`
- Include: event name (past tense), timestamp, aggregate ID, payload
7. **Create unit test stubs**:
- File: `src/<context>/domain/entities/<aggregate-name>.entity.test.ts`
- Include: test cases for construction invariants, domain methods, equality
- Use `describe`/`it` with `should [behavior] when [condition]` names
8. **Update barrel exports**: Add new files to the relevant `index.ts` barrel files.
9. **Store in domain model graph**:
mcp__plugin_ruflo-core_ruflo__agentdb_hierarchical-store --parent "context:<context>" --child "aggregate:<aggregate-name>" --relation "contains"
mcp__plugin_ruflo-core_ruflo__memory_store --key "ddd-aggregate-<context>-<aggregate-name>" --value "AGGREGATE_SUMMARY" --namespace tasks
10. **Post-task hook**: `npx @claude-flow/cli@latest hooks post-task --task-id "ddd-aggregate-<aggregate-name>" --success true --train-neural true`
Read more
name: ddd-aggregate description: Scaffold an aggregate root with entity, value objects, repository interface, domain events, and test stubs. Use when adding a new aggregate to an existing bounded context, modeling a new business concept that owns invariants, or generating the boilerplate for an entity + repo + events triplet. argument-hint: "<context> <aggregate-name>" allowed-tools: Bash Read Write Edit Grep Glob mcp__plugin_ruflo-core_ruflo__memory_store mcp__plugin_ruflo-core_ruflo__memory_search mcp__plugin_ruflo-core_ruflo__agentdb_hierarchical-store mcp__plugin_ruflo-core_ruflo__hooks_pre-task mcp__plugin_ruflo-core_ruflo__hooks_post-task
Scaffold a complete aggregate root inside a bounded context.
Parse `$ARGUMENTS` as `<context-name> <aggregate-name>` (both kebab-case). The context must already exist under `src/`.
Steps
1. **Validate**: Confirm `src/<context>/domain/` exists. If not, suggest running `/ddd-context <context>` first.
2. **Pre-task hook**: `npx @claude-flow/cli@latest hooks pre-task --description "DDD aggregate: <aggregate-name> in <context>"`
3. **Create aggregate root entity**:
- File: `src/<context>/domain/entities/<aggregate-name>.entity.ts`
- Include: unique ID field, constructor with invariant validation, domain methods that enforce business rules, `equals()` based on identity
- Export a TypeScript class extending or implementing a base `AggregateRoot` interface
4. **Create value objects**:
- File: `src/<context>/domain/value-objects/<aggregate-name>-id.value-object.ts`
- Include: immutable ID value object with factory method and validation
- Add additional value objects as properties of the aggregate suggest them
5. **Create repository interface**:
- File: `src/<context>/domain/repositories/<aggregate-name>.repository.ts`
- Include: `findById`, `save`, `delete` methods
- Use the aggregate root and its ID value object as types
- This is an interface only -- no implementation (infrastructure concern)
6. **Create domain events**:
- File: `src/<context>/domain/events/<aggregate-name>-created.event.ts`
- File: `src/<context>/domain/events/<aggregate-name>-updated.event.ts`
- Include: event name (past tense), timestamp, aggregate ID, payload
7. **Create unit test stubs**:
- File: `src/<context>/domain/entities/<aggregate-name>.entity.test.ts`
- Include: test cases for construction invariants, domain methods, equality
- Use `describe`/`it` with `should [behavior] when [condition]` names
8. **Update barrel exports**: Add new files to the relevant `index.ts` barrel files.
9. **Store in domain model graph**:
mcp__plugin_ruflo-core_ruflo__agentdb_hierarchical-store --parent "context:<context>" --child "aggregate:<aggregate-name>" --relation "contains" mcp__plugin_ruflo-core_ruflo__memory_store --key "ddd-aggregate-<context>-<aggregate-name>" --value "AGGREGATE_SUMMARY" --namespace tasks
10. **Post-task hook**: `npx @claude-flow/cli@latest hooks post-task --task-id "ddd-aggregate-<aggregate-name>" --success true --train-neural true`
An agent meta-harness for Claude Code and Codex. Agent = Model + Harness. The model writes; the harness gives it tools, memory, loops, sandboxes, and controls so it can actually work.
Repo: ruvnet/claude-flow
Other skills on claude-flow.
- /agentdb-advanced
Master advanced AgentDB features including QUIC synchronization, multi-database management, custom distance metrics, hybrid search, and distributed systems integration. Use when building distributed AI systems, multi-agent coordination, or advanced vector search applications.
Open skill - /agentdb-learning
Create and train AI learning plugins with AgentDB's 9 reinforcement learning algorithms. Includes Decision Transformer, Q-Learning, SARSA, Actor-Critic, and more. Use when building self-learning agents, implementing RL, or optimizing agent behavior through experience.
Open skill - /agentdb-memory-patterns
Implement persistent memory patterns for AI agents using AgentDB. Includes session memory, long-term storage, pattern learning, and context management. Use when building stateful agents, chat systems, or intelligent assistants.
Open skill - /agentdb-optimization
Optimize AgentDB performance with quantization (4-32x memory reduction), HNSW indexing (150x faster search), caching, and batch operations. Use when optimizing memory usage, improving search speed, or scaling to millions of vectors.
Open skill - /agentdb-vector-search
Implement semantic vector search with AgentDB for intelligent document retrieval, similarity matching, and context-aware querying. Use when building RAG systems, semantic search engines, or intelligent knowledge bases.
Open skill - /agentic-jujutsu
Quantum-resistant, self-learning version control for AI agents with ReasoningBank intelligence and multi-agent coordination
Open skill

