--- name: verification-before-completion description: 汇报「完成/修好/通过」或关闭任务、提交 PR、宣布 REQ 完成之前,必须先运行验证命令并附证据;没有证据不得声称完成。当准备说完成、关闭任务、或汇报交付前使用。 metadata: invocation: model-invoked owner: qiudl --- # 完成前验证 ## 0. 一句话 **没有证据的「完成」不算完成。** ## 1. 何时用 - 准备说「搞定了 / 修好了 / 通过了 / 可以发了」 - 准备把任务标 `completed`、关 issue、提 PR - 准备宣布 REQ 完成或可发布 - 收到「你确认一下」这类要求时 何时不用:还在探索阶段、明确记录的是中间发现(这时要写「未验证」而不是「完成」)。 ## 2. 证据三件套 1. **命令**:原样可复制,别人能重跑 2. **输出关键行**:可读文本,不要只看截图 3. **判定**:退出码 / 通过数 / 失败数 格式:`验证:<命令> → <结果>(通过 N / 失败 M),证据:<日志路径或输出片段>` ## 3. 按类型的验证清单 | 改动类型 | 必须验证 | | --- | --- | | 代码改动 | 构建 + 单测 + 类型检查(有则跑) | | bug 修复 | 先复现(证明坏)→ 修复 → 同一用例再跑(证明好) | | 需求级交付 | 验收标准逐条打勾 + PDV 验收通过 | | 发布/部署 | 健康检查 + E2E + 回滚预案可用 | | 配置/文档 | 生效验证(如 `--dump-config` 结果、命令输出) | | 数据变更 | 变更前后数据抽查 + 回滚脚本验证 | ## 4. 反模式 - 「应该可以」「本地没问题」「理论上过了」 - 只贴成功截图,不贴命令 - 跳过失败用例不说明 - 把「编译通过」当成「功能可用」 - 把「测试跑了一部分」说成「全部通过」 ## 5. 与 ai-proj 对接 - 任务标 `completed` 前,把证据挂到该任务文档; - REQ 未 `released` 时不得报需求完成(见 `ai-proj-helper-entry` 的交付终点); - 证据缺失时,正确做法是状态写 `in_progress` 并说明「还差哪项验证」。