领域故事讲述Skill domain-storytelling

领域故事讲述技能用于通过图示化故事进行协作领域建模,支持需求收集、业务流程理解和团队协作。关键词:领域建模,业务流程图,协作工具,事件风暴,需求分析,软件架构设计。

架构设计 0 次安装 0 次浏览 更新于 3/11/2026

name: 领域故事讲述 描述: 通过图示化故事进行协作领域建模。在收集需求、理解业务流程、新成员入职或准备事件风暴时使用。遵循Stefan Hofer & Henning Schwentner的方法论,包含参与者、工作对象和活动。 参数提示: <旅程名称> [–type 现状|未来] [–dir <路径>] 允许工具: 读取、写入、全局搜索、查找、技能、任务、向用户提问

领域故事讲述技能

概述

领域故事讲述是一种通过图示化故事捕捉业务流程的协作建模技术。本技能指导AI辅助的领域故事讲述会话,可用于事件风暴和有界上下文发现。

关键原则: 故事从领域专家的角度讲述,使用他们的语言和理解。

何时使用此技能

关键词: 领域故事讲述、图示化、参与者、工作对象、活动、现状、未来、业务流程、领域建模、故事收集、有界上下文发现、需求收集

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

  • 从领域专家收集需求
  • 理解现有业务流程(现状)
  • 设计未来状态流程(未来)
  • 新成员入职到领域
  • 准备事件风暴会话
  • 识别有界上下文候选
  • 构建统一语言词汇表

故事类型

现状故事

记录当前的工作方式:

  • 当前状态流程
  • 现有痛点
  • 变通方法和例外情况
  • 真实行为(非理想化)

何时使用: 理解当前状态、识别问题、变更前基线。

未来故事

记录应该如何工作

  • 期望的未来状态
  • 改进流程
  • 新能力
  • 理想化流程(但可实现)

何时使用: 需求收集、设计解决方案、沟通愿景。

图示化语言

领域故事讲述使用简单的图示化元素:

元素 符号 描述
参与者 🧑(简笔画人物) 执行活动的人或系统
工作对象 📄(文档) 交换的数据、文档或物理物品
活动 ➡️(带动词的箭头) 参与者执行的动作
序列 ① ② ③ 活动的编号顺序
注释 💬(笔记) 额外上下文或解释

详细符号指南: 参见references/pictographic-notation.md

AI辅助故事收集协议

阶段1:故事收集

目标: 用用户自己的语言收集叙述。

提示:

  • “告诉我一个典型的[流程]从头到尾的过程”
  • “当[触发事件]发生时,发生了什么”
  • “谁参与,他们做什么?”

捕获:

  • 谁做什么(参与者和活动)
  • 他们用什么(工作对象)
  • 以什么顺序(序列)
  • 任何变化或例外

阶段2:故事细化

目标: 探索边界情况和变化。

提示:

  • “如果[X]失败或不可用,会发生什么?”
  • “有任何特殊情况或例外吗?”
  • “最常见的路径与罕见路径是什么?”
  • “关于这个过程,什么让你感到沮丧?”

捕获:

  • 替代流程
  • 错误处理
  • 痛点
  • 隐含知识

阶段3:参与者识别

目标: 映射故事中的所有参与者。

提示:

  • “还有谁参与了我们没提到的?”
  • “有任何系统或外部方吗?”
  • “谁批准、审查或审计?”

捕获:

  • 人类参与者(按角色,非名称)
  • 系统参与者(内部和外部)
  • 参与者职责

阶段4:工作对象编目

目标: 识别所有交换的数据和文档。

提示:

  • “参与者之间传递什么信息?”
  • “使用什么文档或表格?”
  • “创建、更新或引用什么数据?”

捕获:

  • 文档和表格
  • 数据实体
  • 物理物品(如适用)
  • 工作对象生命周期

阶段5:边界发现

目标: 找到有界上下文候选。

分析:

  • 术语在哪里变化?
  • 哪些参与者紧密合作?
  • 哪些工作对象属于一起?
  • 自然交接点在哪里?

输出: 用于事件风暴的潜在有界上下文候选。

详细边界发现: 参见references/boundary-discovery.md

故事输出格式

文本表示

# 领域故事: [故事名称]

**类型:** 现状 | 未来
**领域:** [领域名称]
**日期:** YYYY-MM-DD

## 叙述摘要

[2-3句平实语言摘要]

## 故事序列

① **客户**向**销售代表**提交**订单表格**
② **销售代表**使用**产品目录**验证**订单表格**
③ **销售代表**在**订单系统**中创建**订单**
④ **订单系统**用**拣货单**通知**仓库**
⑤ **仓库员工**使用**拣货单**拣货
...

## 参与者

| 参与者 | 类型 | 职责 |
| --- | --- | --- |
| 客户 | 人类(外部) | 发起订单 |
| 销售代表 | 人类(内部) | 验证并输入订单 |
| 订单系统 | 系统(内部) | 订单管理 |
| 仓库 | 系统(内部) | 库存和履行 |

## 工作对象

| 工作对象 | 类型 | 使用者 | 描述 |
| --- | --- | --- | --- |
| 订单表格 | 文档 | 客户、销售代表 | 客户订单请求 |
| 产品目录 | 参考 | 销售代表 | 可用产品 |
| 订单 | 数据 | 订单系统 | 已验证订单记录 |
| 拣货单 | 文档 | 仓库员工 | 要拣的货物 |

## 注释

- [注1]: 缺货项异常处理
- [注2]: 旺季需要额外员工

Mermaid 图表(可选)

sequenceDiagram
    participant C as 客户
    participant SR as 销售代表
    participant OS as 订单系统
    participant W as 仓库

    C->>SR: ① 提交订单表格
    SR->>SR: ② 使用产品目录验证
    SR->>OS: ③ 创建订单
    OS->>W: ④ 用拣货单通知
    W->>W: ⑤ 拣货

故事模板: 参见references/story-templates.md

与事件风暴的集成

领域故事自然融入事件风暴:

故事元素 事件风暴元素
活动 命令或事件
参与者 参与者(黄色便签)
工作对象 聚合或读取模型
序列 时间线排序
边界 有界上下文候选

工作流程:

领域故事讲述(理解“发生了什么”)
    ↓
事件风暴(设计“如何发生”)
    ↓
有界上下文 → 模块化架构

继续事件风暴: 调用enterprise-architecture:event-storming技能,并将收集的故事作为输入。

促进模式

交互模式(推荐)

技能引导与用户的交互对话:

  1. 提问开放式问题
  2. 捕获响应作为故事元素
  3. 反馈以验证
  4. 迭代直到故事完整

快速模式

从用户提供的叙述快速捕获故事:

  1. 用户提供完整叙述
  2. 技能提取参与者、工作对象、活动
  3. 技能结构化到故事格式
  4. 用户验证和细化

文档模式

从现有文档提取故事:

  1. 读取现有流程文档
  2. 提取故事元素
  3. 结构化到故事格式
  4. 与用户验证

词汇表构建

收集故事时,构建领域词汇表:

术语 定义 上下文 别名
订单 客户对产品的已验证请求 销售 采购订单、PO
拣货单 从仓库检索货物的列表 仓库 拣货票

词汇表目的:

  • 建立统一语言
  • 识别术语冲突(同一词,不同含义)
  • 记录领域知识
  • 支持有界上下文发现

最佳实践

  • 使用领域专家的语言,而非技术术语
  • 以适当的粒度捕获故事(不过于详细)
  • 包括例外和变化
  • 按顺序编号活动
  • 记录注释以隐含知识
  • 随进展构建词汇表

不做

  • 强加技术术语
  • 跳过边界情况和例外
  • 未经询问即假设理解
  • 在同一故事中混合现状和未来
  • 忘记与领域专家验证

参考文献

  • references/pictographic-notation.md - 带示例的详细符号指南
  • references/story-templates.md - YAML标题、输出格式
  • references/boundary-discovery.md - 从故事发现有界上下文

相关技能

  • 事件风暴 - 理解“发生了什么”后设计“如何发生”
  • 模块化架构 - 实现从故事发现的有界上下文
  • ADR管理 - 记录故事讲述中发现的重要决策

最后更新: 2025-12-22

用户界面

当用户直接调用时,此技能创建领域故事。

执行工作流程

  1. 解析参数 - 提取旅程名称和类型(现状或未来)。如果未提供名称,询问用户要捕获的业务流程。默认类型是现状
  2. 启动故事促进者 - 启动story-facilitator代理指导交互会话:
    • 收集故事(参与者、工作对象、活动、序列)
    • 细化边界情况和变化
    • 识别参与者(人类角色和系统)
    • 编目工作对象(文档、数据、物理物品)
    • 用编号活动和Mermaid序列图结构化
  3. 发现边界 - 从术语变化、参与者分组和自然交接点识别有界上下文候选。
  4. 保存结果 - 保存到docs/domain-stories/[旅程名称]-[类型]-[日期].md(或自定义--dir)。
  5. 建议后续 - 推荐未来故事、相关流程、事件风暴用于领域模型设计。

版本历史

  • v1.0.0 (2025-12-26): 初始发布