In an OpenSpec project, perform systematic functional testing and acceptance for implemented features within the specified change-id range based on completed requirements analysis, engineering design and code implementation; when the user issues commands like "functional acceptance" or "functional test", combine the outputs of request-analysis, project-analysis and coding-implement to execute tests according to general test-acceptance norms, discover and drive bug fixes, and output this acceptance record under design/documents/[change-id]/records/.
本技能用于在 OpenSpec 体系下,在「编码实现与代码评审」之后,对功能进行系统化测试与验收,确保:
openspec/changes/[change-id]/specs/*/spec.md 中的 Requirements + Scenarios 一一对应;design/documents/changes/[change-id]/records/ 中形成可追溯的功能验收记录;openspec validate [change-id](验证已开发代码的变更需求与文档一致性),第二轮 openspec validate --strict(严格模式验证,用于验收结论前整体校验)。产出物质量约定:验收记录须符合本技能 REFERENCE《验收记录-最小结构与自检》中的最小结构与产出后自检清单,详见 ai-agent-dev-system/skills/func-test/REFERENCE/验收记录-最小结构与自检.md。
触发指令示例:
add-xxx 做功能验收」前置技能依赖:
request-analysis:提供本次需求的背景、场景与规范增量(design/documents/changes/[change-id]/ 与 openspec/changes/[change-id]/specs/*/spec.md)。project-analysis:提供项目宪法与工程结构约定,帮助理解依赖环境与重要数据/接口。coding-implement:对应 change-id 的功能已完成初步实现,并 ideally 通过了基本自测与 code-review。code-review:如果已进行过 Code Review,可引用其中的问题清单与风险点,作为测试重点。前置资料来源:
openspec/changes/[change-id]/specs/*/spec.md:作为测试用例与验收标准的主要来源;openspec/changes/[change-id]/design.md:了解关键技术/交互设计与依赖;design/documents/changes/[change-id]/需求验收Checklist*.md(如存在):作为补充验收清单;info-database/ 与 info-service-interface/:涉及数据或对外接口测试时的结构与约束参考。锁定验收范围与 change-id
change-id;OpenSpec 第一轮验证(变更与文档一致性)
openspec validate [change-id](将 [change-id] 替换为本次验收的变更 ID,如 add-mvp-health-food-theme)。梳理测试维度与用例
specs/*/spec.md 中的 Requirements + Scenarios,生成或整理测试用例列表:
需求验收Checklist,应与 spec 中的 Scenarios 对齐,合并为本次测试计划。执行测试与记录结果
识别 bug 与改进项,形成验收判定
coding-implement + code-review 流程进行修复与复查;request-analysis / project-analysis 层处理。综合判定:
验收结论与后续动作映射(重要):
| 验收结论 | 是否可以进入下一阶段 | 后续动作 | |---------|-------------------|---------| | ✓ 通过 | ✅ 可以 | 直接进入下一阶段(Step 8: 归档) | | △ 有条件通过 | ❌ 不可以 | 必须修复问题清单中的未通过项,重新验收通过后,才能进入下一阶段 | | ✗ 不通过 | ❌ 不可以 | 必须修复 Blocking 问题,重新验收通过后,才能进入下一阶段 |
⚠️ 重要澄清:「有条件通过」≠ 「可以进入下一阶段」。只有「100% 通过」才是真正的通过。详见
memory/patterns/pattern-review-fix-loop.md
验收修复循环:
首次验收 ──→ 有条件通过/不通过 ──→ 修复问题 ──→ 重新验收 ──→ 通过?──→ 否 → 继续修复
└──────→ 是 → 进入下一阶段
输出测试验收记录
design/documents/changes/[change-id]/records/ 下创建本次验收记录文件,建议文件名 [change-id]-func-test.md(或 func-test.md);openspec validate 结果须记入记录;产出后执行该 REFERENCE 中的自检清单,通过后再给出是否推荐通过验收的结论。[change-id]-func-test-重新验收.md)OpenSpec 第二轮验证(严格模式)
openspec validate --strict(在项目根目录下执行)。tasks.md 或后续变更;通过后再给出「推荐通过本次验收」的结论。联动任务与后续变更
openspec/changes/[change-id]/tasks.md 中的任务;与 specs/*/spec.md 的关系
与 documents/ 的关系
design/documents/changes/[change-id]/ 中的需求说明与验收 Checklist 是测试计划的重要来源;documents/records/[change-id]-func-test*.md 是实际执行与结果的落地记录,两者应形成「计划-执行」闭环。与 request-analysis
与 project-analysis
与 coding-implement
与 code-review
环境与数据安全
明确通过标准
遇到不确定项要主动提问
add-mvp-health-food-theme 这个 change 做一次功能测试,并输出测试记录。」add-mvp-health-food-theme,加载其 specs/*/spec.md、design.md 与 需求验收Checklist;openspec validate add-mvp-health-food-theme,确认变更目录与文档一致;未通过则先修正再继续;coding-implement + code-review 流程修复;documents/records/add-mvp-health-food-theme-func-test.md 中输出本次验收记录,并将关键问题同步到 tasks.md;openspec validate --strict,通过后再给出是否推荐通过本次验收的结论。通过本技能,OpenSpec 项目在「需求 → 结构 → 实现 → 评审」之后增加了规范化的功能验收环节,帮助确保交付质量与文档标准的一致性。
首次验收记录(所有验收都必须记录):
design/documents/迭代日志.md- [日期] | [change-id] | func-test | 功能验收完成,综合判定:[通过/有条件通过/不通过],验收记录路径:[路径]重新验收记录(如首次验收为「有条件通过」或「不通过」,修复后必须重新验收并记录):
- [日期] | [change-id] | func-test | 功能重新验收完成,修复项:[N 项],综合判定:[通过],验收记录路径:[路径]示例:
# 首次验收(有条件通过)
- 2026-03-16 | check-langgraph-backend | func-test | 功能验收完成,综合判定:有条件通过(需人工验证 4 项),验收记录路径:design/documents/changes/check-langgraph-backend/records/check-langgraph-backend-func-test.md
# 修复后重新验收(通过)
- 2026-03-16 | check-langgraph-backend | func-test | 功能重新验收完成,修复项:4 项已验证,综合判定:通过,验收记录路径:design/documents/changes/check-langgraph-backend/records/check-langgraph-backend-func-test-重新验收.md
技能版本: v1.1(2026-03-17 升级:明确「有条件通过」必须修复并重新验收后才能进入下一阶段)
最后更新: 2026-03-17
依赖 REFERENCE: skills/func-test/REFERENCE/验收记录-最小结构与自检.md
关联 Memory: pattern-review-fix-loop, anti-pattern-conditional-pass-as-go, anti-pattern-terminology-drift
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer