mcpField
V
verifying-before-completion

verifying-before-completion

github.com/osmontero测试与质量16158 次安装今天更新
代码仓库

关于 verifying-before-completion

面向软件开发 Agent 的完成前验证技能,要求先运行完整检查命令并阅读结果,再报告测试、构建或需求状态。其核心做法是以最新证据支持每项完成声明。

主要功能

  1. 01完成声明前运行验证命令
  2. 02检查完整输出与退出状态
  3. 03区分不同验证类型的证据
  4. 04用红绿测试验证回归用例
  5. 05独立核验 Agent 的工作结果

适用场景

  1. 01报告测试是否通过
  2. 02确认构建成功后再提交
  3. 03验证修复是否解决原问题
  4. 04逐项检查需求完成情况

安装

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

$npx skills add https://github.com/osmontero/opencode-skills --skill verifying-before-completion

安装后在 Claude Code 中输入/verifying-before-completion确认已加载。

附带文件LICENSE.txt

详细介绍

完成前验证

概述

未经验证就声称工作已完成,不是高效,而是不诚实。

核心原则: 始终先有证据,再做声明。

违反规则的字面要求,就是违背规则的精神。

铁律

NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE

如果你没有运行此消息中的验证命令,就不能声称验证通过。

门槛函数

BEFORE claiming any status or expressing satisfaction:

1. IDENTIFY: What command proves this claim?
2. RUN: Execute the FULL command (fresh, complete)
3. READ: Full output, check exit code, count failures
4. VERIFY: Does output confirm the claim?
   - If NO: State actual status with evidence
   - If YES: State claim WITH evidence
5. ONLY THEN: Make the claim

Skip any step = lying, not verifying

常见错误

声明所需证据不足以证明
测试通过测试命令输出:0 个失败之前的运行结果、“应该能通过”
Linter 检查干净Linter 输出:0 个错误部分检查、推断
构建成功构建命令:退出码为 0Linter 检查通过、日志看起来不错
Bug 已修复测试原始症状:通过代码已更改、假定已修复
回归测试有效已验证红绿循环测试只通过一次
Agent 已完成VCS diff 显示更改Agent 报告“成功”
满足要求逐行核对清单测试通过

危险信号——立即停止

  • 使用“应该”“大概”“似乎”等说法
  • 验证前就表达满意(“太好了!”“完美!”“完成了!”等)
  • 准备在未验证的情况下提交、推送或创建 PR
  • 轻信 Agent 的成功报告
  • 依赖部分验证
  • 认为“就这一次”
  • 感到疲惫,想尽快结束工作
  • 任何暗示成功、但尚未运行验证的措辞

防止找借口

借口事实
“现在应该能用了”运行验证
“我有信心”信心 ≠ 证据
“就这一次”没有例外
“Linter 检查通过了”Linter ≠ 编译器
“Agent 说成功了”独立验证
“我累了”疲惫 ≠ 借口
“部分检查就够了”部分检查无法证明任何事情
“换种说法就不适用这条规则了”精神重于字面

关键模式

测试:

RIGHT: [Run test command] [See: 34/34 pass] "All tests pass"
WRONG: "Should pass now" / "Looks correct"

回归测试(TDD 红绿循环):

RIGHT: Write → Run (pass) → Revert fix → Run (MUST FAIL) → Restore → Run (pass)
WRONG: "I've written a regression test" (without red-green verification)

构建:

RIGHT: [Run build] [See: exit 0] "Build passes"
WRONG: "Linter passed" (linter doesn't check compilation)

要求:

RIGHT: Re-read plan → Create checklist → Verify each → Report gaps or completion
WRONG: "Tests pass, phase complete"

委派给 Agent:

RIGHT: Agent reports success → Check VCS diff → Verify changes → Report actual state
WRONG: Trust agent report

为什么这很重要

来自 24 条失败经历:

  • 你的人类搭档说“我不相信你”——信任破裂
  • 未定义的函数被交付——可能导致崩溃
  • 遗漏的要求被交付——功能不完整
  • 因错误地声称完成而浪费时间 → 纠正方向 → 返工
  • 违反了:“诚实是核心价值观。如果你撒谎,就会被取代。”

何时应用

始终在以下情况之前:

  • 任何形式的成功或完成声明
  • 任何满意的表达
  • 任何关于工作状态的正面陈述
  • 提交、创建 PR、完成任务
  • 转向下一个任务
  • 委派给 Agent

规则适用于:

  • 完全相同的措辞
  • 意译和同义词
  • 暗示成功的表达
  • 任何暗示已完成或正确的沟通

归根结底

验证没有捷径。

运行命令。阅读输出。然后再声明结果。

这是不可妥协的。

评论

支持 Markdown