完成前验证
概述
在声明任务完成前,必须执行此技能。它是所有变更的最后关口,确保交付质量与需求一致。
核心流程
- •核对需求:对照原始请求,逐项确认是否已实现。
- •运行测试:执行所有相关的单元测试、集成测试或回归测试。
- •手动验证:若无法自动化,执行关键路径的手动操作命令并捕捉输出。
- •检查副作用:确保没有引入明显的 lint 错误、格式问题或未预期的文件变更。
- •提交证据:在回复中附上测试结果、日志片段或运行输出。
常见错误
- •声称已完成但未运行验证
- •仅依赖记忆而非执行测试命令
- •遗留调试代码(console.log、临时日志)
- •在有已知测试失败时宣称验证通过
- •手动验证未提供输出或截图证据
验证清单
- • 所有显式需求(Explicit Requirements)都已满足。
- • 所有隐式边界条件(如错误处理)都已覆盖。
- • 测试命令返回成功(Exit Code 0)。
- • 无新增的 lint/类型错误。
- • 已清理所有临时调试代码(如
console.log)。
快速参考
| 阶段 | 必须动作 | 证据 |
|---|---|---|
| 核对 | 列表对比实现与需求 | 需求/实现对比表 |
| 自动化 | 运行 npm test 或同等命令 | 测试通过报告 |
| 手动 | 运行 curl 或 CLI 工具 | 终端输出截图/片段 |
| 清理 | 检查 git diff | Diff 中无残留调试代码 |
示例
任务:修复登录接口 500 错误并添加密码强度检查。
验证过程:
- •测试登录:
curl -X POST /api/login ...-> 返回 200 OK。 - •测试强度:使用弱密码注册 -> 返回 400 Bad Request(符合预期)。
- •运行测试:执行
vitest auth.test.ts-> 5 个测试全部通过。 - •检查代码:确认已移除所有临时打印。
回复证据:
"验证已通过:所有 5 个授权测试均成功。手动验证确认弱密码会被拦截,正常登录已恢复。无残留调试输出。"
借口 vs 事实
| 借口 | 事实 |
|---|---|
| “手测过了,没问题” | 手测不可重复且易遗漏,优先自动化测试。 |
| “只是改个文案/CSS,不需要验证” | 样式回归也需要截图或手动核对。 |
| “测试太慢了,下次再跑” | 速度不是质量的借口。 |
| “报错是环境问题” | 无法证明环境清白时,应视为代码问题。 |
红旗 - 立刻停止
- •未运行任何测试或验证命令就宣称“已修复”
- •发现已知缺口却试图掩盖
- •跳过对边缘情况的验证
- •证据与实际代码状态不符