用途
本技能在用户故事生成之后运行,将每个用户故事转化为正式的验收标准,采用 Gherkin(Given-When-Then)格式。每条标准都要求是确定性的、可独立验证的,使测试工程师能够推导出明确的二元通过/失败结果,不产生歧义。技能强制实现 IEEE 29148-2018 第 6.4.5 节所要求的利益相关者意图与可测试条件之间的可追溯性。
何时使用
在 01-user-story-generation 已生成 projects/<ProjectName>/<phase>/<document>/user_stories.md 之后执行本技能。该文件中的每个用户故事应已遵循“As a / I want / So that”格式。在上游文件存在且至少包含一个有效故事标识符(US-XXX)之前,本技能不应运行。
当 backlog 或 personas 尚未定义时,应使用 user-story-generation,而非本技能。
输入文件
| 文件 | 来源 | 用途 | 是否必需 |
|---|---|---|---|
| user_stories.md | projects/<ProjectName>/<phase>/<document>/ | 含“As a / I want / So that”三元组的用户故事 | 是 |
| quality_standards.md | projects/<ProjectName>/_context/ | 性能、安全、可靠性阈值的 NFR 目标 | 否 |
必需输入还包括:已批准的用户故事、业务规则、质量阈值和错误案例,来源为产品负责人、需求基线和领域参考。若缺失,应停止受影响步骤,指明缺失来源,并仅返回合格的缺口记录。
输出文件
| 文件 | 目标位置 | 内容 |
|---|---|---|
| acceptance_criteria.md | projects/<ProjectName>/<phase>/<document>/ | Gherkin 格式验收标准,交叉引用故事 ID |
核心步骤
- 读取上游输出。打开 user_stories.md 并记录文件路径以确认读取成功。
- 提取故事三元组。对每个 US-XXX 故事,解析“As a [role]”“I want to [action]”“So that [value]”,记录故事 ID、标题和 epic 关联。
- 生成 Gherkin 标准。每个故事产出 3 至 5 条验收标准,格式为 Given [precondition], When [action], Then [expected result]。标准应覆盖:正常成功流程;至少一个错误或边界场景;至少一个边界条件场景;当存在被禁止的副作用时,添加 Must not 行。
- 追加 NFR 标准。若 quality_standards.md 存在,读取并追加带可测量阈值(响应时间、吞吐量、加密标准等)的非功能性验收标准到相关故事。
- 标记不可测试故事。若故事无法产出确定性、二元通过/失败标准,标记 [AC-FAIL] 并附整改说明,指出缺失或模糊元素。
- 写出输出。将每个故事的标准按 US-XXX 标识符分组写入 acceptance_criteria.md,包含回指原始故事和 epic 的交叉引用。
Must not 字段
在存在可观察的禁止性副作用时,在 Given/When/Then 旁添加 Must not 字段。多数安全和数据隔离需求位于此字段,在普通 Given/When/Then 模板中无处安放。应以缺失断言的形式陈述,而非模糊警告。示例:
AC-001: Export generates file with correct headers
- Given: authenticated user, at least one data row visible
- When: user clicks "Export CSV"
- Then: browser downloads file with columns [id, name, created_at]
- Must not: expose internal fields or rows belonging to other users
- Verification: automated integration test + manual schema spot-check
仅当某条标准确实没有值得约束的副作用时(例如纯读取且无跨租户或跨记录暴露风险),才省略 Must not 行。不要为每条标准填充模板化的“must not fail”行。当不确定某副作用是否值得命名时,应命名它。
输出格式规范
生成的 acceptance_criteria.md 应遵循以下结构:
Acceptance Criteria: [Project Name]
Generated: [Date] Source: user_stories.md Standard: IEEE 29148-2018 Sec 6.4.5, Gherkin/BDD Format
US-001: [Story Title]
Epic: [Epic Name] Story: As a [role], I want to [action], So that [value]
Functional Criteria
- [ ] AC-001.1: Given [precondition], When [action], Then [expected result]
- Must not: [prohibited side effect, when applicable]
- [ ] AC-001.2: Given [error condition], When [action], Then [error handling result]
- Must not: [prohibited side effect, when applicable]
- [ ] AC-001.3: Given [boundary condition], When [action], Then [boundary result]
- Must not: [prohibited side effect, when applicable]
NFR Criteria (if applicable)
- [ ] AC-001.NFR-1: Given [load condition], When [action], Then [measurable threshold]
US-002: [Story Title]
[... repeat per story ...]
Summary
| Metric | Value |
|---|---|
| Stories Processed | N |
| Total Criteria Generated | N |
| NFR Criteria | N |
| Failures Flagged ([AC-FAIL]) | N |
决策规则
| 选择或条件 | 动作 | 避免的失败或风险 |
|---|---|---|
| 标准使用主观语言或缺少可观察结果 | 用明确的前置条件、刺激、结果和边界重写 | 非确定性验收引发的争议 |
| 必需输入和测试预言完整 | 继续现有工作流并记录证据 | 验收无法复现的交付物 |
| 强制来源或负责人缺失 | 停止受影响分支并发出合格缺口记录 | 编造上下文或未经授权的决策 |
能力与权限边界
需要读取和搜索权限。仅当请求授权创建或修复指定需求工件时,才允许编辑。发布、生产变更、破坏性操作、支出和认证需要明确授权。
降级模式
若必需文件、审查者、标准来源、网络检查、渲染器或执行能力不可用,返回最窄的有用合格结果,并将受影响检查标记为未评估;绝不将未评估检查转为通过。
质量标准
- 保留稳定标识符和从项目证据到 acceptance_criteria.md 及其验收检查的双向可追溯性。
- 仅在具备命名指标、方法、阈值、证据来源和负责审查者时应用 ISO/IEEE 度量;发布前运行 anti-slop 门禁。
常见陷阱
- 模糊标准:避免“系统正确处理”等语言。每条标准应陈述具体、可观察的结果。
- 缺少负面案例:每个故事应包含至少一个错误路径标准。
- 主观语言:“fast”“intuitive”“user-friendly”等词违反 IEEE 29148 可验证性,应替换为可测量阈值。
- 孤立标准:每条标准应追溯至恰好一个 US-XXX 标识符。
- 安全或数据隔离相关标准缺少 Must not:若标准涉及跨用户数据、权限、导出字段或财务状态且无 Must not 行,则标准不完整。
验证清单
在最终确定输出前:
- user_stories.md 中每个用户故事在 acceptance_criteria.md 中都有对应标准部分
- 每个故事有 3 至 5 条 Gherkin 格式验收标准
- 每个故事至少有一个错误/边界案例标准
- 每个故事至少有一个边界条件标准
- 所有 NFR 标准包含可测量的数值阈值
- 缺少可测试标准的故事标记 [AC-FAIL] 并附整改说明
- 每条涉及跨用户数据、权限、导出字段或财务状态的标准都有 Must not 行
集成
上游:01-user-story-generation 提供 user_stories.md。 下游:05-testing-documentation/ 将验收标准转为测试用例;03-story-mapping 映射标准在 backlog 中的覆盖。
标准合规
本技能实现:
- IEEE Std 29148-2018 第 6.4.5 节:需求规范与可验证性
- Gherkin/BDD 格式:行为规范的 Given-When-Then 结构
- IEEE Std 610.12-1990:通过项目词汇表对齐术语
资源
- logic.prompt -- 本技能的直接 AI 执行指令
- README.md -- 目标摘要和快速入门指南
最后更新:2026-02-28 技能版本:1.0.0