mcpField
A
acceptance-criteria-verification

acceptance-criteria-verification

github.com/troykelly测试与质量1245 次安装41 周前更新
代码仓库

关于 acceptance-criteria-verification

该技能为编码 Agent 提供逐项验收标准验证流程,涵盖测试、记录证据、发布报告及同步问题与项目状态。

主要功能

  1. 01提取并拆分验收标准
  2. 02为标准规划验证方式
  3. 03运行测试或手动检查
  4. 04记录状态与验证证据
  5. 05发布报告并更新问题状态

适用场景

  1. 01核对功能是否满足问题中的标准
  2. 02测试失败时记录复现信息
  3. 03向问题提交结构化验证报告

安装

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

$npx skills add https://github.com/troykelly/claude-skills --skill acceptance-criteria-verification

安装后在 Claude Code 中输入/acceptance-criteria-verification确认已加载。

详细介绍

验收标准验证

概述

系统地验证每项验收标准,并发布结构化报告。

核心原则: 验证每项标准。记录每次验证。

开始时宣告:“我正在使用验收标准验证流程来验证实现。”

验证流程

第 1 步:提取标准

阅读议题并提取所有验收标准:

# Get issue body
gh issue view [ISSUE_NUMBER] --json body -q '.body'

解析出各项标准(在验收标准部分中查找 - [ ] 或 - [x] 模式)。

第 2 步:规划验证

针对每项标准,确定:

标准测试类型验证方式
[标准 1]单元测试运行指定测试
[标准 2]集成测试调用 API 并检查响应
[标准 3]E2E浏览器自动化
[标准 4]手动目视检查
第 3 步:执行验证

针对每项标准,运行相应的验证:

单元测试/集成测试
# Run specific tests
pnpm test --grep "[test pattern]"

# Or run test file
pnpm test path/to/specific.test.ts
E2E 测试
# If using Playwright
npx playwright test [test file]

# If using browser automation MCP
# Use mcp__playwright or mcp__puppeteer
手动验证

对于需要目视或交互验证的标准:

  1. 启动应用程序
  2. 导航到相关区域
  3. 执行操作
  4. 如有相关内容,截取屏幕截图
  5. 记录结果
第 4 步:记录结果

针对每项标准,记录:

Criterion: [Text from issue]
Status: PASS | FAIL | PARTIAL | SKIP
Evidence: [Test output, screenshot, observation]
Notes: [Any relevant details]
第 5 步:发布验证报告

在议题中发布结构化评论:

gh issue comment [ISSUE_NUMBER] --body "## Verification Report

**Run**: $(date -u +%Y-%m-%dT%H:%M:%SZ)
**By**: agent
**Commit**: $(git rev-parse --short HEAD)
**Branch**: $(git branch --show-current)

### Results

| # | Criterion | Status | Notes |
|---|-----------|--------|-------|
| 1 | [Criterion text] | PASS | [Notes] |
| 2 | [Criterion text] | FAIL | [What failed] |
| 3 | [Criterion text] | PARTIAL | [What works, what doesn't] |

### Summary

| Status | Count |
|--------|-------|
| PASS | X |
| FAIL | X |
| PARTIAL | X |
| SKIP | X |
| **Total** | **X** |

### Test Output

<details>
<summary>Test Results</summary>

\`\`\`
[test output here]
\`\`\`

</details>

### Next Steps

- [ ] [Action items for failures/partials]
"
第 6 步:更新议题复选框

针对每项通过的标准,在议题正文中将其勾选:

# Get current body
BODY=$(gh issue view [ISSUE_NUMBER] --json body -q '.body')

# Update checkboxes for passing criteria
# (Implementation depends on body format)

# Update issue
gh issue edit [ISSUE_NUMBER] --body "$NEW_BODY"
第 7 步:更新项目字段
# Update project fields using project-status-sync skill

# Verification status
# - All PASS → Passing
# - Any FAIL → Failing
# - Mix of PASS/PARTIAL → Partial

# Criteria Met count
# - Count of PASS criteria

# Last Verified
# - Current date

# Verified By
# - "agent"

状态定义

状态含义操作
PASS标准已完全满足,且已验证可正常工作在议题中勾选
FAIL未满足标准,需要修复记录失败项,返回开发阶段
PARTIAL可以工作,但存在问题,需要改进记录问题,可能需要修复
SKIP无法验证(受阻、不适用等)记录原因

E2E 验证最佳实践

使用浏览器自动化时:

  1. 从全新环境开始 - 每次验证都使用新的浏览器会话
  2. 收集证据 - 在关键环节截取屏幕截图
  3. 检查可见状态 - 不仅检查 DOM,还要检查实际显示效果
  4. 测试错误情况 - 不要只测试正常流程
  5. 清理 - 验证后关闭会话
// Example verification flow (pseudo-code)
await page.goto(appUrl);
await page.click('[data-testid="new-chat"]');
await page.waitForSelector('[data-testid="chat-input"]');
await page.screenshot({ path: 'new-chat-verification.png' });
// Verify expected state
const title = await page.title();
expect(title).toContain('New Chat');

处理失败

当标准未通过时:

  1. 具体记录失败项
  2. 如果不明显,提供复现步骤
  3. 收集错误消息或屏幕截图
  4. 返回开发阶段进行修复
  5. 修复后重新运行验证

不要:

  • 失败时将状态标记为 PASS
  • 因为“应该能正常工作”而跳过验证
  • 忽略间歇性失败

验证清单

完成验证前:

  • 已评估所有验收标准
  • 每项标准都有明确的 PASS/FAIL/PARTIAL/SKIP 状态
  • 已为每项标准收集证据(测试输出、屏幕截图)
  • 已在议题中发布验证报告
  • 已为通过的标准更新议题复选框
  • 已更新项目字段
  • 如果存在失败,已记录后续步骤

验证后

根据结果采取相应操作:

总体结果后续操作
全部 PASS进入代码审查
存在 FAIL返回开发阶段,修复并重新验证
仅有 PARTIAL与用户讨论:是否可以接受,还是需要修复?

集成

此技能由以下内容调用:

  • issue-driven-development - 第 8 步

此技能调用:

  • project-status-sync - 更新验证字段
  • issue-lifecycle - 发布评论

评论

支持 Markdown