event-storming

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Event Storming

Event Storming

Interactive Workshop Configuration

交互式工作坊配置

Use AskUserQuestion to configure the event storming session:
yaml
undefined
使用AskUserQuestion来配置Event Storming会话:
yaml
undefined

Question 1: Workshop Mode (MCP: Event Storming methodology)

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: "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 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.
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"

根据这些回复选择合适的工作坊模式并调整分析深度。

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
在以下场景中使用本技能:
  • 为业务流程发现领域事件
  • 识别系统中的命令与参与者
  • 寻找限界上下文边界
  • 模拟多利益相关者的Event Storming工作坊
  • 为实际Event Storming引导做准备
  • 分析现有代码库以发现领域事件
关键词: event storming, domain events, commands, actors, bounded contexts, aggregates, domain discovery, workshop simulation, multi-persona, DDD

What is Event Storming?

什么是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
Event Storming是一种基于工作坊的协作式领域发现方法。参与者使用便利贴绘制以下内容:
  • 事件(橙色)- 领域中发生的事情
  • 命令(蓝色)- 触发事件的动作
  • 参与者(黄色)- 发出命令的角色
  • 聚合根(黄色大便利贴)- 处理命令的业务实体
  • 查询模型(绿色)- 决策所需的信息
  • 策略(紫色)- 业务规则与响应逻辑
  • 外部系统(粉色)- 外部集成服务
  • 热点(红/粉色)- 存在困惑或冲突的区域

Workshop Modes

工作坊模式

This skill supports three modes of operation:
ModeDescriptionToken CostUse Case
full-simulation
All 5 personas debate in parallel, 6 phases~15K tokensComprehensive discovery
quick
Single analysis pass, no personas~3K tokensQuick domain overview
guided
Interactive with user, personas on-demandVariableUser wants control
本技能支持三种操作模式:
模式描述Token成本使用场景
full-simulation
5个角色并行讨论,共6个阶段~15000 tokens全面领域发现
quick
单次分析,无角色模拟~3000 tokens快速领域概览
guided
与用户交互,按需调用角色可变用户希望掌控流程

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
选择
full-simulation
当:
  • 启动新项目或重大功能
  • 需要全面的领域发现
  • 多视角分析很有价值
  • 时间充裕,更看重分析彻底性
选择
quick
当:
  • 需要快速的领域概览
  • Token预算有限
  • 领域相对简单
  • 后续会进行细化分析
选择
guided
当:
  • 希望主导流程
  • 有特定问题需要解答
  • 希望调用特定角色
  • 偏好交互式探索

Multi-Persona Simulation

多角色模拟

The full-simulation mode uses 5 specialized agents to simulate different stakeholder perspectives:
Persona AgentRolePerspectiveContributions
domain-expert
Subject Matter ExpertDeep business knowledgeDomain events, business rules, edge cases
developer-persona
Technical ImplementationSystem constraintsTechnical events, integration points
business-analyst
Process & RequirementsProcess flowCommands, actors, acceptance criteria
product-owner
Product VisionUser valuePriorities, MVP scope, user stories
devils-advocate
ChallengerIdentify gapsHot spots, missing scenarios, contradictions
全模拟模式使用5个专业Agent来模拟不同利益相关者的视角:
角色Agent角色视角贡献
domain-expert
领域专家深入的业务知识领域事件、业务规则、边缘场景
developer-persona
技术实现人员系统约束技术事件、集成点
business-analyst
流程与需求分析师业务流程命令、参与者、验收标准
product-owner
产品负责人用户价值优先级、MVP范围、用户故事
devils-advocate
挑刺者发现漏洞热点、缺失场景、矛盾点

6 Workshop Phases (Full Simulation)

6个工作坊阶段(全模拟)

Phase 1: Chaotic Exploration

阶段1:混沌探索

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}")
所有角色独立头脑风暴事件,无约束、无顺序要求。
编排逻辑:
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

阶段2:时间线排序

Synthesize and order events chronologically. Create the timeline.
综合并按时间顺序排列事件,创建时间线。

Phase 3: Command Discovery

阶段3:命令发现

Identify what triggers each event. Map commands to events.
识别每个事件的触发因素,将命令与事件关联。

Phase 4: Actor Identification

阶段4:参与者识别

Map who issues each command. Define roles and systems.
映射发出每个命令的角色,定义角色与系统。

Phase 5: Bounded Context Discovery

阶段5:限界上下文发现

Group related events/commands. Identify natural boundaries.
对相关事件/命令进行分组,识别自然边界。

Phase 6: Hot Spot Resolution

阶段6:热点解决

Devil's advocate challenges. Resolve conflicts and gaps.
Detailed phase guidance: See
references/workshop-facilitation.md
挑刺者提出质疑,解决冲突与漏洞。
详细阶段指南: 参见
references/workshop-facilitation.md

Sticky Note Color Convention

便利贴颜色规范

ColorRepresentsExample
🟧 OrangeDomain Event"Order Placed", "Payment Received"
🟦 BlueCommand"Place Order", "Process Payment"
🟨 Yellow (small)Actor"Customer", "Admin", "System"
🟨 Yellow (large)Aggregate"Order", "Customer", "Product"
🟩 GreenRead Model"Order Summary", "Product Catalog"
🟪 PurplePolicy"When order placed, reserve inventory"
🟫 PinkExternal System"Payment Gateway", "Email Service"
❗ Red/PinkHot SpotAreas of confusion or conflict
Detailed conventions: See
references/sticky-note-types.md
颜色代表内容示例
🟧 橙色领域事件"订单已提交"、"付款已收到"
🟦 蓝色命令"提交订单"、"处理付款"
🟨 黄色(小)参与者"客户"、"管理员"、"系统"
🟨 黄色(大)聚合根"订单"、"客户"、"产品"
🟩 绿色查询模型"订单摘要"、"产品目录"
🟪 紫色策略"当订单提交时,预留库存"
🟫 粉色外部系统"支付网关"、"邮件服务"
❗ 红/粉色热点存在困惑或冲突的区域
详细规范: 参见
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
由于Claude Code子Agent无法生成其他子Agent,由主对话负责编排:
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
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.
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.
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
undefined
Event Storming会话会生成结构化的事件目录:
markdown
undefined

Event Storm: [Domain Name]

Event Storm: [Domain Name]

Event Catalog

Event Catalog

[Bounded Context Name]

[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]
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

Bounded Contexts Identified

  1. [Context Name]
    • Core Domain / Supporting / Generic
    • [Events in this context]
  1. [Context Name]
    • Core Domain / Supporting / Generic
    • [Events in this context]

Hot Spots

Hot Spots

  • [Issue] - [Resolution or TODO]

**Full template:** See `references/templates/event-storm-output.md`
  • [Issue] - [Resolution or TODO]

**完整模板:** 参见`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")
Event Storming可与以下技能集成:
  • domain-storytelling - 领域故事为事件发现提供输入
  • modular-architecture - 限界上下文可作为模块基础
  • fitness-functions - 模块隔离测试
  • adr-management - 记录限界上下文决策
工作流:
text
Domain Storytelling → Event Storming → Modular Architecture
(理解“是什么”)   (设计“怎么做”)   (实现“在哪里”)

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
  1. 从事件开始 - 事件是事实,命令存在争议
  2. 使用过去式 - 如“订单已提交”而非“提交订单”
  3. 探索边界 - 事件有助于发现模块边界
  4. 接纳混沌 - 初始头脑风暴应保持开放
  5. 跟踪来源 - 记录每个见解的视角来源
  6. 解决热点 - 不要遗留冲突与漏洞

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
  • references/workshop-facilitation.md
    - 阶段编排与时间规划
  • references/persona-prompts.md
    - 各角色的提示词模板
  • references/sticky-note-types.md
    - 便利贴类型与规范
  • references/bounded-context-discovery.md
    - 上下文识别模式
  • references/templates/event-storm-output.md
    - 带来源跟踪的输出模板

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

  • v1.0.0 (2025-12-22): 初始版本
    • 支持5个Agent的多角色模拟
    • 三种工作坊模式(全模拟、快速、引导式)
    • 6阶段工作坊结构
    • 见解来源跟踪
    • 与domain-storytelling和modular-architecture集成

Last Updated

最后更新

Date: 2025-12-22 Model: claude-opus-4-5-20251101
日期: 2025-12-22 模型: claude-opus-4-5-20251101