AGENTIC_SPEC_FORGE/spec_stage_skill/requirements/ac-to-examples/SKILL.md
将抽象的Acceptance Criteria(Given-When-Then)转换为具体的数值示例和真实对话,让AC对PM/客户/测试人员更易懂。适合在AC编写完成后、准备测试或向客户展示时使用,当AC格式正确但过于抽象时。帮助不熟悉BDD的PM/BA/测试人员理解测试场景,让AC从抽象规则变成可直接用于手动测试的具体步骤。
npx skillsauth add tikazyq/agentic-spec-forge ac-to-examplesInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Scope: REQUIREMENTS
版本: 0.1.0 | 创建日期: 2025-12-04
将抽象的Acceptance Criteria(AC)转换为具体的示例,让Given-When-Then从抽象规则变成具体可执行的测试场景。
核心价值:
适合人群:不熟悉BDD(行为驱动开发)的PM/BA/测试人员,需要具体示例理解测试场景
现状:
## AC-AUTH-001-01: 有效凭证登录成功
Given 用户有有效凭证
When 用户提交登录请求
Then 系统显示登录成功消息并跳转到首页
问题:
PM/客户看到Given-When-Then觉得太技术化,需要具体示例帮助理解
开发写单元测试或测试人员写测试用例时,需要具体的输入输出示例
# 抽象 → 具体
"有效凭证" → "邮箱: [email protected], 密码: Pass123!"
"用户已登录" → "用户王小明(ID: U001)已登录系统"
"购物车中有商品" → "购物车中有3件商品:苹果x2, 香蕉x1"
"账户余额充足" → "账户余额: ¥500,购买金额: ¥299"
# 抽象 → 具体
"系统正常运行" → "系统在线,数据库连接正常,服务响应时间<200ms"
"用户在首页" → "用户已登录,当前URL: https://example.com/home"
"数据库中有订单记录" → "数据库orders表中有订单ID为O20251204001的记录"
# 抽象 → 具体
"用户提交" →
1. 在用户名框输入"[email protected]"
2. 在密码框输入"Pass123!"
3. 点击"登录"按钮
"用户添加商品" →
1. 浏览商品列表,找到"苹果(红富士)"
2. 点击商品卡片进入详情页
3. 选择数量为"2"
4. 点击"加入购物车"按钮
# 抽象 → 具体
"用户选择日期" → "用户点击日期选择器,选择'2025-12-25'"
"用户上传文件" → "用户点击上传按钮,选择本地文件'report.pdf'(2.5MB)"
# 抽象 → 具体
"显示成功消息" →
- 页面顶部显示绿色提示条
- 提示文字:"登录成功,欢迎王小明"
- 3秒后自动消失
"跳转到首页" →
- URL变为: https://example.com/home
- 右上角显示用户头像和姓名"王小明"
- 页面标题显示"首页 - XX系统"
# 抽象 → 具体
"响应速度快" → "页面在2秒内加载完成,进度条显示100%"
"数据更新成功" → "刷新页面后,订单状态从'待支付'变为'已支付'"
"错误提示清晰" → "密码错误时,密码框下方显示红色文字'密码错误,请重试(剩余2次机会)'"
在原AC的Then部分下方增加"具体示例"章节:
## AC-AUTH-001-01: 有效凭证登录成功
Given 用户有有效凭证
When 用户提交登录请求
Then 系统显示登录成功消息并跳转到首页
**具体示例**:
**Given**(前置条件):
- 数据库中存在用户:邮箱[email protected], 密码=Pass123!(已加密)
- 用户未登录,当前在登录页面(URL: /login)
**When**(操作步骤):
1. 在"邮箱"输入框输入:[email protected]
2. 在"密码"输入框输入:Pass123!
3. 点击"登录"按钮
**Then**(预期结果):
1. 页面顶部显示绿色提示:"登录成功,欢迎王小明"
2. URL变为:/home
3. 右上角显示用户名"王小明"和头像图标
4. 页面标题变为"首页 - XX便利店管理系统"
为每个AC生成独立的示例文档:
# AC-AUTH-001-01 测试示例
## 场景:有效凭证登录成功
### 测试数据准备
| 数据项 | 值 |
|-------|---|
| 用户邮箱 | [email protected] |
| 用户密码 | Pass123! |
| 用户ID | U001 |
| 用户姓名 | 王小明 |
| 角色 | 便利店店长 |
### 操作步骤
1. 打开登录页面(URL: https://example.com/login)
2. 在"邮箱"框输入:[email protected]
3. 在"密码"框输入:Pass123!
4. 点击蓝色"登录"按钮
### 预期结果
1. **成功提示**:
- 位置:页面顶部
- 样式:绿色背景,白色文字
- 文字:登录成功,欢迎王小明
- 持续时间:3秒后自动消失
2. **页面跳转**:
- 新URL:https://example.com/home
- 页面标题:首页 - XX便利店管理系统
3. **用户信息显示**:
- 位置:页面右上角
- 内容:用户头像(圆形) + "王小明"
### 验证点
- [ ] 提示消息文字正确
- [ ] 提示消息3秒后消失
- [ ] URL正确跳转
- [ ] 用户名显示正确
最快的3步使用流程:
[ ] 第1步:确认已有AC文档
spec/requirements/acceptance_criteria.md(或其他.md文件)[ ] 第2步:调用SKILL生成具体示例
>>ac-to-examples 或 >>ac-examples-batch[ ] 第3步:查看增强后的AC
⏱️ 预计耗时:2-3分钟 / 10个AC
🆘 遇到问题? 查看下方"使用说明"章节获取详细指导
自动读取的文档:
spec/requirements/ 文件夹下的验收标准文档acceptance_criteria.md)id: AC-AUTH-001-01)项目结构示例:
你的项目/
└── spec/
└── requirements/
├── user_stories.md
├── acceptance_criteria.md ← AI会读取这个文件
└── nfr.md
AI会为AC生成什么示例:
可选的补充信息:
修改的内容: AI会在原有AC文件中新增"具体示例"章节,原有的Given-When-Then完全保留
新增示例包含:
具体的前提条件(Given):
详细的操作步骤(When):
可观察的预期结果(Then):
结果位置:
spec/requirements/acceptance_criteria.md示例(修改前后对比):
# 修改前(抽象版)
## AC-AUTH-001-01: 有效凭证登录成功
Given 用户有有效凭证
When 用户提交登录请求
Then 系统显示登录成功消息并跳转到首页
---
# 修改后(具体版)
## AC-AUTH-001-01: 有效凭证登录成功
Given 用户有有效凭证
When 用户提交登录请求
Then 系统显示登录成功消息并跳转到首页
**具体示例**:
**Given**(前置条件):
- 数据库中存在用户:邮箱[email protected], 密码=Pass123!
- 用户未登录,当前在登录页面
**When**(操作步骤):
1. 在"邮箱"输入框输入:[email protected]
2. 在"密码"输入框输入:Pass123!
3. 点击"登录"按钮
**Then**(预期结果):
1. 页面顶部显示绿色提示:"登录成功,欢迎王小明"
2. URL变为:/home
3. 右上角显示用户名"王小明"和头像图标
第1步:确保文档已准备好
spec/requirements/ 文件夹第2步:调用这个SKILL
>>ac-to-examples第3步:查看结果
常见问题:
Q: AI会覆盖我原来的Given-When-Then吗? A: 不会。AI只会新增"具体示例"章节,原有的Given-When-Then完全保留。
Q: 为什么需要具体示例? A: 抽象的AC(如"有效凭证")测试人员不知道用什么数据测,具体示例(如"[email protected]")可以直接用于手动测试。
Q: 如果我的AC格式不对怎么办? A: AI会提示你哪些AC需要调整,比如:"AC-AUTH-001缺少Then部分,请补充预期结果"。
Q: 生成的示例数据是真实的吗? A: 示例数据是基于你的业务场景生成的合理数据(如[email protected]),不是随机编造的。你可以根据实际情况调整。
acceptance-criteria 生成ACspec/requirements/目录下抽象AC的问题:
具体示例的价值:
| 维度 | 抽象AC | 具体示例 | |------|--------|---------| | Given | "有效凭证" | "邮箱: [email protected], 密码: Pass123!" | | When | "用户提交" | "1.输入邮箱 2.输入密码 3.点击登录按钮" | | Then | "显示成功消息" | "页面顶部显示绿色提示'登录成功,欢迎王小明'" | | 可测性 | ❌ 不知道怎么测 | ✅ 照着步骤测即可 |
# ❌ 抽象AC(不够清晰)
Given 用户购物车中有商品且余额充足
When 用户提交订单
Then 系统创建订单并扣减库存
# ✅ 具体示例(清晰可测)
**Given**(前置条件):
- 用户:王小明(ID: U001),账户余额:¥500
- 购物车中商品:
* 苹果(红富士)x2,单价¥5,小计¥10
* 香蕉x1,单价¥8,小计¥8
* 购物车总额:¥18
**When**(操作步骤):
1. 在购物车页面点击"去结算"按钮
2. 确认配送地址:"北京市朝阳区XX小区"
3. 选择支付方式:"余额支付"
4. 点击"提交订单"按钮
**Then**(预期结果):
1. 订单创建成功,订单号:O20251204001
2. 账户余额从¥500扣减至¥482
3. 库存扣减:
- 苹果库存从100减至98
- 香蕉库存从50减至49
4. 页面跳转到订单详情页,显示订单号和状态"待发货"
5. 页面顶部显示"订单提交成功"绿色提示(3秒后消失)
如何用具体示例进行手动测试:
准备测试数据:
执行操作步骤:
验证预期结果:
>>ac-to-examples # 为单个AC生成具体示例
>>ac-examples-batch # 批量为所有AC生成示例
>>ac-example-format # 选择示例格式(嵌入/独立)
>>ac-test-case # 生成标准测试用例文档
配合使用:
后续流程:
质量保证:
工作流位置:
注意:
development
提供网页应用全栈架构思考框架,涵盖前端渲染策略、后端 API 设计、基础设施部署、安全防护、性能优化五大维度。当需要设计完整 Web 应用、评审网页系统架构、或需要全局视角审视前后端协同设计时使用。支持 SPA/MPA、SSR/CSR、REST/GraphQL、容器/Serverless 等多种技术栈决策。
development
提供移动应用全链路架构思考框架,涵盖技术选型、离线同步、平台适配、性能优化、发布流程五大维度。当需要设计移动 APP、评审客户端架构、或需要全局视角审视原生/跨平台方案时使用。支持 Native/React Native/Flutter、推送通知、数据同步、iOS/Android 双平台等移动端特有场景决策。
development
提供微服务分布式架构思考框架,涵盖服务拆分、通信机制、基础设施、治理策略、可观测性五大维度。当需要设计微服务系统、评审分布式架构、或需要全局视角审视服务边界与协同时使用。支持 DDD 领域建模、同步/异步通信、API Gateway、服务网格、熔断降级等分布式系统关键决策。
tools
提供嵌入式系统软硬件协同思考框架,涵盖硬件层、软件架构、资源约束、实时性、测试调试五大维度。当需要设计嵌入式应用、评审物联网系统、或需要全局视角审视 MCU/MPU 与软件配合时使用。支持裸机/RTOS 选型、功耗优化、内存预算、中断响应、OTA 升级等嵌入式特有场景决策。