用途
Event Storming 是一个基于研讨工作坊方法的协作式领域发现技能,由 AI 模拟事件风暴研讨过程。它适用于以下场景:为业务流程发现领域事件、识别系统中的命令与参与者、寻找限界上下文边界、模拟多方利益相关者的事件风暴工作坊、为真实事件风暴主持做准备,以及从现有代码结构中分析领域事件。相关关键词包括:event storming、domain events、commands、actors、bounded contexts、aggregates、domain discovery、workshop simulation、multi-persona、DDD。
什么是事件风暴
事件风暴是一种基于工作坊的协作式领域发现方法。参与者使用便利贴来梳理:事件(橙色,领域中发生的事)、命令(蓝色,触发事件的动作)、参与者(黄色,谁发出命令)、聚簇(黄色,处理命令的业务实体)、读模型(绿色,决策所需的信息)、策略(紫色,业务规则与反应)、外部系统(粉色,外部集成)、热点(红/粉色,困惑或冲突的区域)。
工作坊模式
该技能支持三种运行模式:
| 模式 | 说明 | Token 开销 | 适用场景 |
|---|---|---|---|
full-simulation |
5 个人格并行辩论,6 个阶段 | 约 15K tokens | 全面发现 |
quick |
单次分析,无人格 | 约 3K tokens | 快速领域概览 |
guided |
与用户交互,按需调用人格 | 可变 | 用户希望掌控流程 |
模式选择建议:
- 使用
full-simulation:启动新项目或重大功能、需要全面的领域发现、多视角有价值、彻底性优先于时间。 - 使用
quick:需要快速领域概览、Token 预算受限、领域相对简单、后续再细化。 - 使用
guided:希望主导流程、有具体问题、想调用特定人格、偏好交互式探索。
多人格模拟(完整仿真)
完整仿真模式使用 5 个专门代理模拟不同利益相关者视角:
| 人格代理 | 角色 | 视角 | 贡献 |
|---|---|---|---|
domain-expert |
主题专家 | 深度业务知识 | 领域事件、业务规则、边界情况 |
developer-persona |
技术实现 | 系统约束 | 技术事件、集成点 |
business-analyst |
流程与需求 | 流程流转 | 命令、参与者、验收标准 |
product-owner |
产品愿景 | 用户价值 | 优先级、MVP 范围、用户故事 |
devils-advocate |
质疑者 | 发现缺口 | 热点、缺失场景、矛盾 |
6 个工作坊阶段(完整仿真)
阶段 1:混沌探索。所有人员独立头脑风暴事件,无约束、无排序。编排方式为并行启动 5 个 Task 代理,分别针对领域专家、开发者、业务分析师、产品负责人、质疑者,就指定领域识别相应内容。
阶段 2:时间线排序。综合并按时间顺序排列事件,形成时间线。
阶段 3:命令发现。识别每个事件的触发来源,将命令映射到事件。
阶段 4:参与者识别。映射每个命令的发出者,定义角色与系统。
阶段 5:限界上下文发现。对相关事件/命令进行分组,识别自然边界。
阶段 6:热点解决。由质疑者提出挑战,解决冲突与缺口。
各阶段的详细指导见 references/workshop-facilitation.md。
便利贴颜色约定
| 颜色 | 代表 | 示例 |
|---|---|---|
| 🟧 橙色 | 领域事件 | "Order Placed"、"Payment Received" |
| 🟦 蓝色 | 命令 | "Place Order"、"Process Payment" |
| 🟨 黄色(小) | 参与者 | "Customer"、"Admin"、"System" |
| 🟨 黄色(大) | 聚簇 | "Order"、"Customer"、"Product" |
| 🟩 绿色 | 读模型 | "Order Summary"、"Product Catalog" |
| 🟪 紫色 | 策略 | "When order placed, reserve inventory" |
| 🟫 粉色 | 外部系统 | "Payment Gateway"、"Email Service" |
| ❗ 红/粉色 | 热点 | 困惑或冲突的区域 |
详细约定见 references/sticky-note-types.md。
编排模式
由于 Claude Code 子代理无法再生成子代理,由主对话进行编排:主对话调用 event-storming 技能,技能引导并行的 Task 工具调用(分别调用 5 个人格),技能再综合结果并进行来源追踪,最终输出带有 [persona] 署名的事件目录。
快速开始示例
完整仿真模式提示词:
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
快速模式提示词:
Give me a quick event storm overview for a subscription billing system.
Focus on the core happy path events.
引导模式提示词:
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.
输出格式
事件风暴会话生成结构化的事件目录,包含:事件目录(按限界上下文分组,列出事件、命令、参与者、聚簇、策略)、识别出的限界上下文(标注核心域/支撑域/通用域)、以及热点。
完整模板见 references/templates/event-storm-output.md。
与其他技能的集成
事件风暴可与以下技能连接:domain-storytelling(故事为事件发现提供输入)、modular-architecture(限界上下文成为模块)、fitness-functions(模块隔离测试)、adr-management(记录限界上下文决策)。工作流为:领域故事讲述(理解"是什么")→ 事件风暴(设计"怎么做")→ 模块化架构(实现"在哪里")。
最佳实践
从事件开始(事件是事实,命令可讨论);使用过去时("Order Placed" 而非 "Place Order");探索边界(事件有助于发现模块边界);拥抱混乱(初始头脑风暴应是无序的);跟踪来源(了解每条洞见来自哪个视角);解决热点(不要留下未处理的冲突)。
参考资料
- references/workshop-facilitation.md - 阶段编排与时间安排
- references/persona-prompts.md - 每个人格的提示词模板
- references/sticky-note-types.md - 颜色约定与用法
- references/bounded-context-discovery.md - 上下文识别模式
- references/templates/event-storm-output.md - 带来源的输出格式
面向用户的接口
当被用户直接调用时,该技能运行一次 AI 模拟的事件风暴工作坊。执行工作流如下:
- 解析参数 - 提取领域描述与模式。若未提供描述,询问用户要对哪个领域做事件风暴。默认模式为 guided。
- 按模式执行:Full - 并行启动 5 个人格代理,综合输出并进行来源追踪,合并事件目录,识别热点,并分组为限界上下文候选。Quick - 单次分析,识别领域事件、命令、参与者及潜在限界上下文边界。Guided - 交互式 6 阶段工作坊(混沌探索、时间线排序、命令发现、参与者识别、限界上下文发现、热点解决)。
- 生成输出 - 产出包含领域事件、命令、限界上下文候选和热点的事件目录。
- 保存结果 - 保存至 docs/event-storming/[domain-name]-[date].md(或自定义 --dir)。
- 建议后续步骤 - 对不清晰流程推荐领域故事讲述,对集成策略推荐上下文映射,对关键决策推荐 ADR。
版本历史
v1.0.0(2025-12-22):首次发布。包含 5 个代理的多人格模拟、三种工作坊模式(full、quick、guided)、6 阶段工作坊结构、洞见来源追踪,以及与 domain-storytelling 和 modular-architecture 的集成。
最后更新:日期 2025-12-22;模型 claude-opus-4-5-20251101。