--- name: event-storming description: AI-simulated event storming workshop with multi-persona support. Use when discovering domain events, commands, actors, and bounded contexts. Supports three modes - full-simulation (5 persona agents debate), quick (single-pass analysis), and guided (interactive with user). Orchestrates persona agents and synthesizes results. argument-hint: [--mode full|quick|guided] [--dir ] allowed-tools: Read, Write, Glob, Grep, Skill, Task, AskUserQuestion --- # Event Storming ## Interactive Workshop Configuration Use AskUserQuestion to configure the event storming session: ```yaml # Question 1: Workshop Mode (MCP: Event Storming methodology) question: "Which event storming mode do you need?" header: "Mode" options: - label: "Full Simulation (Recommended)" description: "All 5 personas debate in parallel, 6 phases (~15K tokens)" - label: "Quick" description: "Single analysis pass, no personas (~3K tokens)" - label: "Guided" description: "Interactive with user, personas on-demand" - label: "Codebase Analysis" description: "Discover events from existing code structure" # Question 2: Domain Scope (MCP: DDD bounded context patterns) question: "How complex is the domain you're exploring?" header: "Scope" options: - label: "Single Bounded Context" description: "One domain area, focused discovery" - label: "Multiple Contexts" description: "Identify 2-5 bounded context boundaries" - label: "Enterprise Domain" description: "Comprehensive cross-domain mapping" - label: "Unknown" description: "Help me determine scope first" ``` Use these responses to select the appropriate workshop mode and calibrate depth of analysis. ## When to Use This Skill Use this skill when you need to: - Discover domain events for a business process - Identify commands and actors in a system - Find bounded context boundaries - Simulate a multi-stakeholder event storming workshop - Prepare for actual event storming facilitation - Analyze an existing codebase for domain events **Keywords:** event storming, domain events, commands, actors, bounded contexts, aggregates, domain discovery, workshop simulation, multi-persona, DDD ## What is Event Storming? Event Storming is a workshop-based method for collaborative domain discovery. Participants use sticky notes to map out: - **Events** (Orange) - Things that happen in the domain - **Commands** (Blue) - Actions that trigger events - **Actors** (Yellow) - Who issues commands - **Aggregates** (Yellow) - Business entities that handle commands - **Read Models** (Green) - Information needed for decisions - **Policies** (Purple) - Business rules and reactions - **External Systems** (Pink) - Outside integrations - **Hot Spots** (Red/Pink) - Areas of confusion or conflict ## Workshop Modes This skill supports three modes of operation: | Mode | Description | Token Cost | Use Case | | --- | --- | --- | --- | | `full-simulation` | All 5 personas debate in parallel, 6 phases | ~15K tokens | Comprehensive discovery | | `quick` | Single analysis pass, no personas | ~3K tokens | Quick domain overview | | `guided` | Interactive with user, personas on-demand | Variable | User wants control | ### Mode Selection Guide **Use `full-simulation` when:** - Starting a new project or major feature - You need comprehensive domain discovery - Multiple perspectives are valuable - Time is less critical than thoroughness **Use `quick` when:** - You need a fast domain overview - Token budget is constrained - Domain is relatively simple - You'll refine later **Use `guided` when:** - You want to drive the process - You have specific questions - You want to invoke specific personas - Interactive exploration is preferred ## Multi-Persona Simulation The full-simulation mode uses 5 specialized agents to simulate different stakeholder perspectives: | Persona Agent | Role | Perspective | Contributions | | --- | --- | --- | --- | | `domain-expert` | Subject Matter Expert | Deep business knowledge | Domain events, business rules, edge cases | | `developer-persona` | Technical Implementation | System constraints | Technical events, integration points | | `business-analyst` | Process & Requirements | Process flow | Commands, actors, acceptance criteria | | `product-owner` | Product Vision | User value | Priorities, MVP scope, user stories | | `devils-advocate` | Challenger | Identify gaps | Hot spots, missing scenarios, contradictions | ## 6 Workshop Phases (Full Simulation) ### Phase 1: Chaotic Exploration All personas brainstorm events independently. No constraints, no ordering. **Orchestration:** ```markdown Launch 5 parallel Task agents: - Task(event-storming-persona domain-expert, "Identify all domain events for: {domain}") - Task(event-storming-persona developer, "Identify technical events for: {domain}") - Task(event-storming-persona business-analyst, "Identify commands and actors for: {domain}") - Task(event-storming-persona product-owner, "Prioritize and identify MVP scope for: {domain}") - Task(event-storming-persona devils-advocate, "Challenge and identify gaps for: {domain}") ``` ### Phase 2: Timeline Ordering Synthesize and order events chronologically. Create the timeline. ### Phase 3: Command Discovery Identify what triggers each event. Map commands to events. ### Phase 4: Actor Identification Map who issues each command. Define roles and systems. ### Phase 5: Bounded Context Discovery Group related events/commands. Identify natural boundaries. ### Phase 6: Hot Spot Resolution Devil's advocate challenges. Resolve conflicts and gaps. **Detailed phase guidance:** See `references/workshop-facilitation.md` ## Sticky Note Color Convention | Color | Represents | Example | | --- | --- | --- | | 🟧 Orange | Domain Event | "Order Placed", "Payment Received" | | 🟦 Blue | Command | "Place Order", "Process Payment" | | 🟨 Yellow (small) | Actor | "Customer", "Admin", "System" | | 🟨 Yellow (large) | Aggregate | "Order", "Customer", "Product" | | 🟩 Green | Read Model | "Order Summary", "Product Catalog" | | 🟪 Purple | Policy | "When order placed, reserve inventory" | | 🟫 Pink | External System | "Payment Gateway", "Email Service" | | ❗ Red/Pink | Hot Spot | Areas of confusion or conflict | **Detailed conventions:** See `references/sticky-note-types.md` ## Orchestration Pattern Since Claude Code subagents cannot spawn other subagents, the main conversation orchestrates: ```text Main Conversation ↓ Invokes event-storming skill ↓ Skill guides parallel Task tool calls: ├── Task(event-storming-persona domain-expert, prompt) ├── Task(event-storming-persona developer, prompt) ├── Task(event-storming-persona business-analyst, prompt) ├── Task(event-storming-persona product-owner, prompt) └── Task(event-storming-persona devils-advocate, prompt) ↓ Skill synthesizes results with provenance tracking ↓ Outputs event catalog with [persona] attribution ``` ## Quick Start ### Full Simulation Mode ```markdown I want to run a full event storming simulation for an e-commerce order management system. Please: 1. Launch all 5 persona agents in parallel 2. Have them analyze the domain 3. Synthesize their findings 4. Identify bounded contexts 5. Resolve any hot spots ``` ### Quick Mode ```markdown Give me a quick event storm overview for a subscription billing system. Focus on the core happy path events. ``` ### Guided Mode ```markdown Let's do a guided event storming session for a hospital appointment system. Start with the patient booking journey and I'll guide from there. ``` ## Output Format The event storming session produces a structured event catalog: ```markdown # Event Storm: [Domain Name] ## Event Catalog ### [Bounded Context Name] **Events:** - [Event Name] [Domain Expert] - [Description] - [Event Name] [Developer] - [Description] **Commands:** - [Command Name] → [Event Name] [Business Analyst] **Actors:** - [Actor Name]: [Commands they can issue] **Aggregates:** - [Aggregate Name]: [Events it produces] **Policies:** - [Policy Name]: [Trigger] → [Action] ## Bounded Contexts Identified 1. [Context Name] - Core Domain / Supporting / Generic - [Events in this context] ## Hot Spots - [Issue] - [Resolution or TODO] ``` **Full template:** See `references/templates/event-storm-output.md` ## Integration with Other Skills Event storming connects with: - **domain-storytelling** - Stories feed into event discovery - **modular-architecture** - Bounded contexts become modules - **fitness-functions** - Module isolation tests - **adr-management** - Document bounded context decisions **Workflow:** ```text Domain Storytelling → Event Storming → Modular Architecture (understand "what") (design "how") (implement "where") ``` ## Best Practices 1. **Start with events** - Events are facts, commands are debatable 2. **Use past tense** - "Order Placed" not "Place Order" 3. **Explore boundaries** - Events help find module boundaries 4. **Embrace chaos** - Initial brainstorming should be messy 5. **Track provenance** - Know which perspective each insight came from 6. **Resolve hot spots** - Don't leave conflicts unaddressed ## References - `references/workshop-facilitation.md` - Phase orchestration and timing - `references/persona-prompts.md` - Prompt templates for each persona - `references/sticky-note-types.md` - Color conventions and usage - `references/bounded-context-discovery.md` - Context identification patterns - `references/templates/event-storm-output.md` - Output format with provenance ## User-Facing Interface When invoked directly by the user, this skill runs an AI-simulated event storming workshop. ### Execution Workflow 1. **Parse Arguments** - Extract domain description and mode. If no description provided, ask the user what domain to event storm. Default mode is `guided`. 2. **Execute Based on Mode**: - **Full**: Launch 5 persona agents in parallel (domain-expert, developer, business-analyst, product-owner, devils-advocate). Synthesize outputs with provenance tracking, merge event catalogs, identify hot spots, and group into bounded context candidates. - **Quick**: Single-pass analysis identifying domain events, commands, actors, and potential bounded context boundaries. - **Guided**: Interactive 6-phase workshop (Chaotic Exploration, Timeline Ordering, Command Discovery, Actor Identification, Bounded Context Discovery, Hot Spot Resolution). 3. **Generate Output** - Produce event catalog with domain events, commands, bounded context candidates, and hot spots. 4. **Save Results** - Save to `docs/event-storming/[domain-name]-[date].md` (or custom `--dir`). 5. **Suggest Follow-Ups** - Recommend domain storytelling for unclear processes, context mapping for integration strategies, and ADRs for key decisions. ## Version History - **v1.0.0** (2025-12-22): Initial release - Multi-persona simulation with 5 agents - Three workshop modes (full, quick, guided) - 6-phase workshop structure - Provenance tracking for insights - Integration with domain-storytelling and modular-architecture --- ## Last Updated **Date:** 2025-12-22 **Model:** claude-opus-4-5-20251101