mcpField
E
event-storming

event-storming

github.com/melodic-software开发2853 次安装今天更新
代码仓库

关于 event-storming

面向探索业务流程与系统边界团队的 Event Storming 模拟工作坊 skill,支持快速、引导式和五种角色模拟模式。它生成结构化事件目录,并归纳限界上下文候选。

主要功能

  1. 01提供三种工作坊模式
  2. 02完整模式含五种利益相关者角色
  3. 03引导式工作坊分六个阶段
  4. 04映射事件、命令和参与者
  5. 05识别限界上下文与问题点
  6. 06生成结构化事件目录

适用场景

  1. 01发现新项目中的领域事件
  2. 02梳理流程中的命令与参与者
  3. 03分析代码库中的限界上下文
  4. 04准备或模拟团队工作坊

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/melodic-software/claude-code-plugins --skill event-storming

安装后在 Claude Code 中输入/event-storming确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
bounded-context-discovery.md
persona-prompts.md
sticky-note-types.md
workshop-facilitation.md
references/templates/
event-storm-output.md

详细介绍

事件风暴

交互式工作坊配置

使用 AskUserQuestion 配置事件风暴会议:

# 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"

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

何时使用此技能

在以下情况下使用此技能:

  • 发现业务流程中的领域事件
  • 识别系统中的命令和参与者
  • 找到限界上下文的边界
  • 模拟多方利益相关者参与的事件风暴工作坊
  • 为实际的事件风暴主持工作做好准备
  • 分析现有代码库中的领域事件

关键词: 事件风暴、领域事件、命令、参与者、限界上下文、聚合、领域发现、工作坊模拟、多角色、DDD

什么是事件风暴?

事件风暴是一种基于工作坊的协作式领域发现方法。参与者使用便签来梳理:

  • 事件(橙色)- 领域中发生的事情
  • 命令(蓝色)- 触发事件的操作
  • 参与者(黄色)- 发出命令的人
  • 聚合(黄色)- 处理命令的业务实体
  • 读模型(绿色)- 决策所需的信息
  • 策略(紫色)- 业务规则和响应
  • 外部系统(粉色)- 外部集成
  • 热点(红色/粉色)- 存在困惑或冲突的领域

工作坊模式

此技能支持三种运行模式:

模式说明Token 成本使用场景
full-simulation5 个角色并行讨论,分 6 个阶段~15K tokens全面发现
quick单次分析,不使用角色~3K tokens快速了解领域
guided与用户交互,按需调用角色不定用户希望掌控流程
模式选择指南

在以下情况下使用 full-simulation:

  • 启动新项目或重大功能
  • 需要全面发现领域
  • 多种视角很有价值
  • 与全面性相比,时间并非首要考量

在以下情况下使用 quick:

  • 需要快速了解领域
  • Token 预算有限
  • 领域相对简单
  • 之后会进一步完善

在以下情况下使用 guided:

  • 希望主导流程
  • 有具体问题
  • 希望调用特定角色
  • 更倾向于交互式探索

多角色模拟

full-simulation 模式使用 5 个专用 Agent 来模拟不同利益相关者的视角:

角色 Agent职责视角贡献
domain-expert领域专家深厚的业务知识领域事件、业务规则、边缘情况
developer-persona技术实现系统约束技术事件、集成点
business-analyst流程与需求流程命令、参与者、验收标准
product-owner产品愿景用户价值优先级、MVP 范围、用户故事
devils-advocate挑战者发现缺漏热点、缺失的场景、矛盾

6 个工作坊阶段(完整模拟)

阶段 1:自由探索

所有角色独立构思事件。不设约束,也不排序。

编排:

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}")
阶段 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 子 Agent 无法启动其他子 Agent,因此由主对话负责编排:

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

快速开始

完整模拟模式
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.

输出格式

事件风暴会议会生成结构化的事件目录:

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

完整模板: 请参阅 references/templates/event-storm-output.md

与其他技能集成

事件风暴可与以下内容衔接:

  • domain-storytelling - 故事为事件发现提供素材
  • modular-architecture - 限界上下文成为模块
  • fitness-functions - 模块隔离测试
  • adr-management - 记录限界上下文决策

工作流:

Domain Storytelling → Event Storming → Modular Architecture
(understand "what")   (design "how")   (implement "where")

最佳实践

  1. 从事件开始 - 事件是事实,命令则有讨论空间
  2. 使用过去时 - 使用“Order Placed”,而非“Place Order”
  3. 探索边界 - 事件有助于找出模块边界
  4. 接纳混乱 - 初步头脑风暴应该杂乱无章
  5. 追踪来源 - 了解每条见解来自哪个视角
  6. 解决热点 - 不要让冲突悬而未决

参考资料

  • 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 模拟的事件风暴研讨会。

执行工作流
  1. 解析参数 - 提取领域描述和模式。如果未提供描述,请询问用户要对哪个领域进行事件风暴。默认模式为 guided。
  2. 根据模式执行:
    • Full:并行启动 5 个角色 Agent(domain-expert、developer、business-analyst、product-owner、devils-advocate)。综合输出并追踪来源,合并事件目录,识别热点,并归入限界上下文候选项。
    • Quick:通过单次分析识别领域事件、命令、参与者以及潜在的限界上下文边界。
    • Guided:开展交互式 6 阶段研讨会(混乱探索、时间线排序、命令发现、参与者识别、限界上下文发现、热点解决)。
  3. 生成输出 - 生成包含领域事件、命令、限界上下文候选项和热点的事件目录。
  4. 保存结果 - 保存到 docs/event-storming/[domain-name]-[date].md(或自定义 --dir)。
  5. 建议后续步骤 - 对于不明确的流程,建议使用领域故事讲述;对于集成策略,建议进行上下文映射;对于关键决策,建议记录 ADR。

版本历史

  • v1.0.0 (2025-12-22):首次发布
    • 使用 5 个 Agent 进行多角色模拟
    • 提供三种研讨会模式(full、quick、guided)
    • 采用 6 阶段研讨会结构
    • 追踪见解的来源
    • 与 domain-storytelling 和 modular-architecture 集成

最后更新

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

评论

支持 Markdown