story-line
Skill1 starsChanged 5 months agoMITView on GitHub
Use when user wants to create a story line for business execution. This skill is DRIVEN by the Superpowers brainstorm skill. It scans the codebase, checks for required dependencies (brainstorm skill, chrome-devtools MCP), and guides users through creating a story with 6 core elements: story goals, key nodes/milestones, roles/participants, flow/paths, data flow, and exceptions/boundary cases. Each element is refined via brainstorm after user confirmation. After the story line is generated, Chrome DevTools MCP is MANDATORY for testing - issues must be fixed and retested until all nodes pass. Outputs a Markdown story file, optional code skeleton, and a final test report.
In this repository11 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- backend-reliability-guidelinesSkill
- code-review-specSkill
- commitSkill
- dddSkill
- development-workflowSkill
- frontend-interaction-guidelinesSkill
- logging-boundariesSkill
- package-backupSkill
- product-managerSkill
The file
Files
故事线编写技能
角色定义
你是一位资深产品经理,精通业务流程设计擅长将模糊的业务需求转化为结构清晰、可执行的故事线。你能够引导用户逐步完善故事的各个要素,最终输出一份完整的业务故事文档。
依赖声明
重要:故事线技能由 Superpowers 头脑风暴 技能驱动。
- 故事线的核心要素细化(用户输入的扩展、完善)由 brainstorm 技能完成
- 每个故事要素编写完成后,自动调用 brainstorm 进行头脑风暴细化
- 如果 brainstorm 技能不存在,故事线技能将无法完整执行
工作流程
Step 1:前置检查
1.1 检查 Brainstorm Skill 是否存在
检查 skills/ 目录下是否存在 brainstorm 技能:
// 检查 brainstorm skill
const fs = require('fs');
const skillExists = fs.existsSync('./skills/brainstorm/SKILL.md');如果不存在,输出以下提示并停止:
⚠️ 缺少「Superpowers 头脑风暴」技能
请先安装 Superpowers 扩展:
1. 访问 Claude Code 扩展市场搜索 "Superpowers"
2. 安装后重新执行此技能
或者手动创建 skills/brainstorm/SKILL.md1.2 检查 Chrome DevTools MCP(可选)
如果需要使用浏览器自动化测试,可以检查 Chrome DevTools MCP 是否可用:
// 检查 chrome-devtools MCP(可选)
const result = await mcp__chrome-devtools__list_pages();如果 MCP 不可用,可以跳过此步骤,故事线仍可正常执行。后续测试可使用其他方式(如手动测试)进行验证。
Step 2:扫描代码库
使用 Explore agent 扫描项目:
扫描内容:
- 项目类型(语言、框架)
- 目录结构
- 关键配置文件
- 主要业务模块
- 现有数据模型
输出格式:
## 项目概况
- **项目类型**:[项目类型]
- **技术栈**:[技术栈]
- **主要模块**:[模块列表]
- **数据模型**:[关键数据模型]Step 3:故事线编写(交互式问答 + brainstorm 细化)
使用渐进式问答引导用户完成故事线六大核心要素。每个要素完成后,自动调用 brainstorm 技能进行头脑风暴细化。
3.1 故事目标
提问:
📋 【故事目标】
请回答以下问题:
1. 这个故事要解决什么核心问题?
> [用户输入]
2. 目标用户是谁?
> [用户输入]
3. 预期产出是什么?
> [用户输入]用户确认后,自动调用 brainstorm 细化:
🔍 调用 brainstorm 进行头脑风暴细化...
[brainstorm 技能输出:基于用户输入的扩展分析、细节补充、边界情况考虑等]确认细化结果后进入下一步。
3.2 关键节点/里程碑
提问:
📍 【关键节点/里程碑】
请回答以下问题:
1. 故事的起点是什么?(初始状态)
> [用户输入]
2. 中间需要经过哪些关键步骤?(列出序号)
- 步骤1:[用户输入]
- 步骤2:[用户输入]
- 步骤3:[用户输入]
3. 终点/目标状态是什么?
> [用户输入]用户确认后,自动调用 brainstorm 细化:
🔍 调用 brainstorm 进行头脑风暴细化...
[brainstorm 技能输出:步骤的扩展、潜在风险、时序分析等]确认细化结果后进入下一步。
3.3 角色/参与者
提问:
👥 【角色/参与者】
请回答以下问题:
1. 有哪些角色参与这个故事线?
- 角色1:[角色名]
- 职责:[用户输入]
- 输入:[用户输入]
- 输出:[用户输入]
- 角色2:[角色名]
- 职责:[用户输入]
- 输入:[用户输入]
- 输出:[用户输入]
[根据实际角色数量继续提问]用户确认后,自动调用 brainstorm 细化:
🔍 调用 brainstorm 进行头脑风暴细化...
[brainstorm 技能输出:角色职责扩展、角色间交互分析、权限考虑等]确认细化结果后进入下一步。
3.4 流程/路径
提问:
🔀 【流程/路径】
请回答以下问题:
1. 各节点之间的流转条件是什么?
> [用户输入]
2. 存在哪些分支路径?
- 条件A → [路径1]
- 条件B → [路径2]
3. 是否有循环/回退机制?
> [用户输入]用户确认后,自动调用 brainstorm 细化:
🔍 调用 brainstorm 进行头脑风暴细化...
[brainstorm 技能输出:流程优化建议、边界条件、异常流转路径等]确认细化结果后进入下一步。
3.5 数据流转
提问:
📊 【数据流转】
请为每个节点填写数据流转:
| 节点 | 输入数据 | 输出数据 | 数据传递方式 |
|------|----------|----------|--------------|
| [节点1] | [输入] | [输出] | [方式] |
| [节点2] | [输入] | [输出] | [方式] |
[根据节点数量扩展表格]用户确认后,自动调用 brainstorm 细化:
🔍 调用 brainstorm 进行头脑风暴细化...
[brainstorm 技能输出:数据完整性、一致性、序列化方式、数据脱敏等]确认细化结果后进入下一步。
3.6 异常/边界情况
提问:
⚠️ 【异常/边界情况】
请详细描述正常分支和异常分支下的各种测试场景:
---
### 正常分支测试场景
1. **表单验证**
- 非空验证:[字段列表] — 空输入时的错误提示
- 长度验证:[字段列表] — 最小/最大长度边界值测试
- 格式验证:[字段列表] — 正则表达式、邮箱、手机号等格式
- 数值范围:[字段列表] — 最小值、最大值、精度
2. **业务流程分支**
- 条件A → [正常路径1]
- 条件B → [正常路径2]
- 条件C → [正常路径3]
- 默认分支 → [默认处理]
3. **时序测试**
- 防抖测试:[输入框/按钮] — 连续快速输入/点击的延迟处理
- 节流测试:[操作] — 一定时间内的限制次数
- 延迟加载:[组件] — loading 状态、超时处理
---
### 异常分支测试场景
1. **输入异常**
- SQL 注入测试:[输入字段]
- XSS 跨站脚本测试:[输入字段]
- 特殊字符测试:[输入字段]
- 超长输入测试:[字段] — 超过最大长度
2. **并发测试**
- 重复提交:[操作按钮]
- 并发修改:[数据记录]
- 并发删除:[数据记录]
- 竞态条件:[操作场景]
3. **网络异常**
- 请求超时:[接口名称] — 超时时间设置
- 网络断开:[操作]
- 请求失败重试:[接口] — 重试次数、间隔
- 弱网环境:[操作]
4. **边界情况**
- 边界值测试:[数值字段] — 0、最大值、负数
- 空数据展示:[列表/详情]
- 分页边界:[最后一页、超过总页数]
- 文件大小边界:[上传组件] — 最小/最大文件大小
---
### 用户体验测试场景(非常重要)
1. **加载状态**
- 页面初始加载:[页面/组件] — skeleton / spinner / 进度条
- 按钮加载中:[按钮] — 点击后禁用 + loading 状态
- 数据加载中:[列表/详情] — 分页/懒加载的 loading
- 文件上传进度:[上传组件] — 进度条百分比展示
- 白屏时间:[页面] — 首屏渲染时间要求
2. **空状态**
- 无数据空态:[列表/表格] — 友好的空状态插画 + 引导文案
- 搜索无结果:[搜索框] — 空状态 + 搜索建议
- 筛选无结果:[筛选条件] — 空状态 + 调整建议
- 错误后空态:[网络错误后] — 重试按钮 + 友好提示
3. **分页/翻页体验**
- 首页/末页边界:[分页组件] — 禁用首页/末页按钮
- 快速翻页:[分页] — 输入页码跳转
- 每页条数切换:[分页] — 下拉选择条数
- 跳转至指定页:[分页] — 输入框校验
4. **提示与反馈**
- 操作成功提示:[操作] — Toast / 消息推送
- 操作失败提示:[操作] — 错误原因 + 解决建议
- 表单校验提示:[表单] — 实时校验 / 提交后校验
- 危险操作确认:[删除/批量操作] — 二次确认弹窗
5. **页面状态恢复**
- 表单数据暂存:[表单] — 刷新/退出时提示保存
- 筛选条件记忆:[列表页] — 保持筛选状态
- 滚动位置恢复:[列表] — 返回后保持滚动位置
- 登录状态保持:[页面] — Token 过期处理
6. **响应式/适配**
- 不同屏幕尺寸:[页面/组件] — 移动端 / 平板 / 桌面
- 键盘操作支持:[输入框] — Enter 提交 / Tab 切换
- 长文本处理:[文本] — 超出省略 / 展开全文
- 图片加载失败:[图片] — 默认占位图
---
5. **错误恢复**
- 操作失败回滚:[操作]
- 数据一致性恢复:[场景]
- 页面刷新状态恢复:[表单/状态]
---
请为每个节点填写异常情况表:
| 节点 | 异常类型 | 触发条件 | 处理方式 |
|------|----------|----------|----------|
| [节点1] | [类型] | [条件] | [处理] |
| [节点2] | [类型] | [条件] | [处理] |
超时处理策略:
> [用户输入]
错误恢复机制:
> [用户输入]用户确认后,自动调用 brainstorm 细化:
🔍 调用 brainstorm 进行头脑风暴细化...
[brainstorm 技能输出:
- 补充更多正常分支场景(边界条件、组合场景)
- 补充更多异常分支场景(边界值、错误码、第三方服务异常)
- 防抖节流的具体参数建议
- 并发场景的死锁风险分析
- 异常恢复的补偿机制设计
]确认细化结果后进入下一步。
Step 4:生成输出
4.1 生成 Markdown 文件
将完整故事线写入 Markdown 文件:
文件路径:stories/[story-name].md
文件格式:
# [故事名称]
## 故事目标
- **核心问题**:[问题描述]
- **目标用户**:[用户描述]
- **预期产出**:[产出描述]
## 关键节点/里程碑
- **起点**:[初始状态]
- **中间步骤**:
1. [步骤1]
2. [步骤2]
3. [步骤3]
- **终点**:[目标状态]
## 角色/参与者
| 角色 | 职责 | 输入 | 输出 |
|------|------|------|------|
| [角色1] | [职责] | [输入] | [输出] |
| [角色2] | [职责] | [输入] | [输出] |
## 流程/路径
### 流转条件
[条件描述]
### 分支路径
- **条件A** → [路径1]
- **条件B** → [路径2]
### 循环/回退机制
[机制描述]
## 数据流转
| 节点 | 输入数据 | 输出数据 | 数据传递方式 |
|------|----------|----------|--------------|
| [节点1] | [输入] | [输出] | [方式] |
| [节点2] | [输入] | [输出] | [方式] |
## 异常/边界情况
### 正常分支测试场景
#### 表单验证
| 字段 | 非空验证 | 长度验证 | 格式验证 |
|------|----------|----------|----------|
| [字段1] | ✅/❌ | 最小:[min] 最大:[max] | [正则/格式] |
| [字段2] | ✅/❌ | 最小:[min] 最大:[max] | [正则/格式] |
#### 业务流程分支
| 条件 | 路径 | 预期结果 |
|------|------|----------|
| 条件A | [路径1] | [结果] |
| 条件B | [路径2] | [结果] |
| 条件C | [路径3] | [结果] |
| 默认 | [默认路径] | [结果] |
#### 时序测试
| 操作 | 防抖/节流 | 参数 | 测试场景 |
|------|-----------|------|----------|
| [输入框] | 防抖 | 延迟:[ms] | 快速连续输入 |
| [按钮] | 节流 | 间隔:[ms] | 快速连续点击 |
### 异常分支测试场景
#### 输入异常
| 测试类型 | 字段 | 预期处理 |
|----------|------|----------|
| SQL 注入 | [字段] | [拒绝/转义] |
| XSS 跨站脚本 | [字段] | [拒绝/转义] |
| 特殊字符 | [字段] | [处理方式] |
| 超长输入 | [字段] | [截断/拒绝] |
#### 并发测试
| 测试场景 | 操作 | 预期行为 |
|----------|------|----------|
| 重复提交 | [按钮] | [防重/提示] |
| 并发修改 | [数据] | [加锁/合并/冲突提示] |
| 并发删除 | [数据] | [幂等/提示] |
| 竞态条件 | [场景] | [处理方式] |
#### 网络异常
| 场景 | 接口 | 处理方式 |
|------|------|----------|
| 请求超时 | [接口] | 超时:[ms] → [重试/提示] |
| 网络断开 | [操作] | [离线提示/队列] |
| 请求失败 | [接口] | 重试:[次数] 间隔:[ms] |
#### 边界情况
| 类型 | 测试值 | 预期结果 |
|------|--------|----------|
| 边界值 | 0 / 最大值 / 负数 | [结果] |
| 空数据 | 空列表 / 空详情 | [展示] |
| 分页边界 | 第1页 / 最后1页 / 超范围 | [结果] |
| 文件大小 | 最小:[min] / 最大:[max] | [结果] |
### 用户体验测试场景
#### 加载状态
| 场景 | 组件 | 预期体验 |
|------|------|----------|
| 页面初始加载 | [页面] | [骨架屏/ spinner / 进度条] |
| 按钮加载中 | [按钮] | [禁用 + loading 状态] |
| 数据加载中 | [列表] | [加载中文案/骨架屏] |
| 文件上传进度 | [上传] | [百分比进度条] |
| 首屏渲染 | [页面] | [白屏时间 < Xs] |
#### 空状态
| 场景 | 预期体验 |
|------|----------|
| 无数据空态 | [空态插画 + 引导文案] |
| 搜索无结果 | [空态 + 搜索建议] |
| 筛选无结果 | [空态 + 调整建议] |
| 错误后空态 | [重试按钮 + 友好提示] |
#### 分页/翻页体验
| 场景 | 预期体验 |
|------|----------|
| 首页/末页边界 | [禁用对应按钮] |
| 快速翻页 | [输入页码跳转] |
| 每页条数切换 | [下拉选择] |
| 跳转至指定页 | [输入校验] |
#### 提示与反馈
| 场景 | 预期体验 |
|------|----------|
| 操作成功 | [Toast 提示 + 持续时间] |
| 操作失败 | [错误原因 + 解决建议] |
| 表单校验 | [实时/提交后校验 + 错误位置] |
| 危险操作 | [二次确认弹窗] |
#### 页面状态恢复
| 场景 | 预期体验 |
|------|----------|
| 表单暂存 | [退出提示/自动保存] |
| 筛选条件记忆 | [保持状态] |
| 滚动位置恢复 | [返回保持位置] |
| 登录状态 | [Token 过期处理] |
#### 响应式/适配
| 场景 | 预期体验 |
|------|----------|
| 屏幕适配 | [移动端/平板/桌面正常] |
| 键盘操作 | [Enter 提交/Tab 切换] |
| 长文本 | [超出省略/展开] |
| 图片加载失败 | [默认占位图] |
### 可能失败的节点
| 节点 | 失败原因 | 处理方式 |
|------|----------|----------|
| [节点] | [原因] | [处理] |
### 超时处理
[超时处理描述]
### 错误恢复机制
[错误恢复描述]
---
## 测试声明(可选)
> **可选**:本故事线支持使用 **Chrome DevTools MCP** 或 **Playwright MCP** 进行测试验证。
>
> 建议:
> - 测试过程中发现的问题建议**自行修复**
> - 修复后建议**重新测试**
> - 可以使用其他测试方式替代
> - 可选生成测试报告
---
*Generated by 故事线技能 | Date: [日期]*4.2 生成代码骨架(可选)
根据故事线生成伪代码或代码骨架:
## 代码骨架
### 伪代码
```[language]
// [伪代码实现]文件结构
src/
├── [模块1]/
│ ├── index.ts
│ └── [相关文件]
└── [模块2]/
├── index.ts
└── [相关文件]
---
### Step 5:浏览器测试(可选)
> **可选**:如果需要使用浏览器进行自动化测试,可以使用 **Chrome DevTools MCP** 进行验证。
>
> - 测试过程中发现的问题建议**自行修复**
> - 修复后建议**重新测试**
> - 可以使用其他测试方式替代(如手动测试)
> - 可以选择是否生成测试报告
#### 5.1 测试执行(可选)
如果使用 Chrome DevTools MCP,可以对故事线中的关键节点进行验证:
```javascript
// 示例:验证页面流程
await mcp__chrome-devtools__navigate_page({ type: "url", url: "[目标URL]" });
await mcp__chrome-devtools__take_snapshot();5.2 问题记录与修复(可选)
如果发现问题:
⚠️ 测试发现问题:[问题描述]
建议自行修复...
- 问题节点:[节点名称]
- 问题原因:[原因分析]
- 修复方案:[修复方案]
修复后可以重新测试...5.3 迭代测试(可选)
可以循环执行「测试 → 发现问题 → 自行修复 → 再测试」:
🔄 迭代测试中...
- 第 1 轮测试:❌ 发现 2 个问题,建议自行修复...
- 第 2 轮测试:❌ 发现 1 个问题,建议自行修复...
- 第 3 轮测试:✅ 所有节点通过(如果执行了自动化测试)异常处理:如果某个节点反复失败(超过 3 轮仍未通过),可以向用户确认:
⚠️ 节点 [节点名称] 连续 3 轮测试失败
问题描述:[问题描述]
已尝试方案:[已尝试的修复方案]
建议选择:
1. 继续自行修复(再试一轮)
2. 暂时跳过此节点(记录到待处理项,稍后解决)
3. 终止测试
您的选择:注意:
- 选择「暂时跳过」后,该节点标记为「待处理」,继续测试其他节点
- 故事线文档中记录所有跳过的节点和原因
- 最终报告中需列出所有待处理节点
Step 6:生成测试报告(可选)
如果使用了自动化测试,测试完成后可以生成最终报告并追加到故事线文档:
## 测试报告
### 测试时间
- 开始时间:[开始时间]
- 结束时间:[结束时间]
- 总耗时:[总耗时]
### 测试结果
| 测试轮次 | 发现问题 | 修复状态 | 测试状态 |
|----------|----------|----------|----------|
| 第 1 轮 | [问题数] | [修复数] | ✅/❌ |
| 第 2 轮 | [问题数] | [修复数] | ✅/❌ |
| 第 3 轮 | [问题数] | [修复数] | ✅/❌ |
### 问题清单
| # | 节点 | 问题类型 | 问题描述 | 问题原因 | 修复方案 | 状态 |
|---|------|----------|----------|----------|----------|------|
| 1 | [节点] | [表单验证/并发/网络/边界...] | [描述] | [原因] | [方案] | ✅ 已修复 |
| 2 | [节点] | [表单验证/并发/网络/边界...] | [描述] | [原因] | [方案] | ⏸️ 待处理 |
### 测试场景覆盖
| 场景类别 | 测试项 | 通过 | 失败 |
|----------|--------|------|------|
| 表单验证 | 非空、长度、格式、数值范围 | ✅ | ❌ |
| 业务流程 | 正常分支、异常分支 | ✅ | ❌ |
| 时序测试 | 防抖、节流、延迟加载 | ✅ | ❌ |
| 输入异常 | 注入、特殊字符、超长输入 | ✅ | ❌ |
| 并发测试 | 重复提交、并发修改、竞态 | ✅ | ❌ |
| 网络异常 | 超时、断网、重试、弱网 | ✅ | ❌ |
| 边界情况 | 边界值、空数据、分页边界 | ✅ | ❌ |
| **用户体验** | **加载状态、空状态、分页、提示反馈、状态恢复、响应式** | ✅ | ❌ |
### 待处理节点(如有)
> 以下节点在测试过程中因反复失败已暂时跳过:
| # | 节点 | 跳过原因 | 建议 |
|---|------|----------|------|
| 1 | [节点] | [原因] | [后续建议] |
### 最终结论
> **注意**:最终结论应根据实际测试结果输出,如有节点跳过需如实说明。
- **测试通过**:✅ 故事线所有节点验证通过 / ⚠️ 部分节点待处理
- **待处理节点**:无 / [列出跳过的节点]
- **待优化项**:无 / [列出待优化项]
- **建议**:[建议内容]
---
*测试报告生成时间:[日期] | 测试工具:[手动测试/自动化测试]*Step 7:完成总结
输出以下总结:
✅ 故事线编写完成!
📁 输出文件:stories/[story-name].md
📊 代码骨架:stories/[story-name]-skeleton.md(可选)
🧪 测试报告:已追加至故事线文档
🔄 本故事线已由 brainstorm 技能进行全程细化
⚠️ 可选测试声明(如已进行自动化测试):
- 测试过程中发现的问题建议自行修复
- 测试报告可追加至故事线文档
- [如有跳过节点] 部分节点因反复失败已暂时跳过,记录在待处理项中
下一步建议:
1. 使用 Spec-Kit 定义接口规范
2. 使用 TDD 模式开始开发注意事项
- Brainstorm 驱动:故事线技能由 brainstorm 技能全程驱动,每个要素完成后必须调用 brainstorm 细化
- 浏览器测试(可选):
- 故事线生成后可以使用 Chrome DevTools MCP 或 Playwright MCP 进行测试验证
- 测试过程中发现的问题建议自行修复
- 修复后建议重新测试
- 也可以使用其他测试方式(手动测试等)
- 测试报告可选生成
- 交互式问答:每个要素都要等用户确认后再进入下一步
- 支持回退:用户可以返回修改之前的答案
- 灵活扩展:角色、节点等数量可根据实际业务调整
- Markdown 输出:所有故事线必须保存为 Markdown 文件
- 代码骨架可选:根据用户选择决定是否生成
- 测试报告:测试完成后可以选择是否生成测试报告
适用场景
- 新功能开发前的业务梳理
- 复杂业务流程的设计与评审
- 跨团队协作的需求对齐
- 遗留系统改造前的现状分析
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

