关于 skill-verify
面向 Codex CLI 的证据核验技能,在报告任务完成或成功前设置验证关卡,要求运行新命令并确认输出确实支持结论。
主要功能
- 01声明前进行新鲜验证
- 02按声明类型规定证据
- 03检查完整输出与退出状态
- 04提供多提供方工作流指引
- 05与开发技能集成
适用场景
- 01提交前验证测试结果
- 02确认所报告的缺陷修复
- 03依据要求检查任务完成情况
- 04核验多提供方工作流结果
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ nyldn/ claude-octopus --skill skill-verify安装后在 Claude Code 中输入/skill-verify确认已加载。
附带文件agents/openai.yaml
详细介绍
宿主:Codex CLI — 此技能为 Claude Code 设计,后适配至 Codex。 交叉引用命令在 Codex 中使用已安装的技能名称,而非
/octo:*斜杠命令。 使用当前活动的 Codex shell 和子 Agent 工具。在当前会话明确提供相应能力之前,不要声称某个提供方、模型或宿主子 Agent 可用。 宿主工具的等效项请参阅skills/blocks/codex-host-adapter.md。
验证关卡
可移植的功能证据
通过现有边界适配器,加载所选功能的策略来源信息和开放标记计数。对于任何已验证的策略违规,引用确切的策略段落和与之冲突的计划操作。报告尚未解决的决策以及依赖这些决策的任务。稳定的任务完成状态需要与当前任务契约摘要绑定的父级验证;单个复选框、模型声明或历史清单都不能单独证明任务已完成。更正、取消和恢复过程中,保留结果与任务之间的映射。
铁律
没有最新的验证证据,就不得声称任务已完成如果你在本轮中没有运行验证命令,就不能声称验证通过。
关卡
在声称成功或表示满意之前:
- 确定 — 哪条命令能证明这一声明?
- 运行 — 执行完整命令(全新运行,不使用缓存)
- 阅读 — 阅读完整输出,检查退出代码并统计失败数
- 验证 — 输出是否确实证实了这一声明?
- 然后才 — 陈述这一声明并附上证据
跳过任何一步 = 声明未经验证。
合理化借口表
| 借口 | 事实 |
|---|---|
| “我在本会话早些时候运行过测试” | 之前运行的不算最新。代码后来有过更改。重新运行。 |
| “这次编辑很小,不可能出问题” | 小改动每天都会导致构建失败。验证关卡没有大小豁免。 |
| “子 Agent 报告成功了” | Agent 报告是声明,不是证据。独立验证。 |
| “CI 反正会检查” | CI 是安全网,不等同于验证。推送前先验证。 |
| “我确信它能正常工作” | 信心不是证据。运行命令。 |
| “运行完整测试套件太慢” | 那就运行目标测试套件,但必须运行,而且要全新运行。 |
什么算作证据
| 声明 | 所需证据 | 不足以证明 |
|---|---|---|
| 测试通过 | 测试命令输出显示 0 个失败 | 之前的运行结果、“应该能通过” |
| 构建成功 | 构建命令退出代码为 0 | Linter 通过 |
| Bug 已修复 | 重现原始症状:现在通过 | “代码改了,应该能用” |
| 回归测试有效 | 红(未修复时失败)→ 绿(修复后通过) | 测试只通过一次 |
| 子 Agent 已完成任务 | git diff 显示预期更改 | 子 Agent 说“完成了” |
| 满足要求 | 对照规范逐行检查清单 | 测试通过 |
| 提供方调度成功 | 输出包含预期内容 | 没有报错 ≠ 成功 |
危险信号 — 停下并验证
如果你发现自己有以下任何想法,请停下:
| 想法 | 应采取的行动 |
|---|---|
| “现在应该能用了” | 运行验证 |
| “我有信心” | 信心 ≠ 证据 |
| “就这一次” | 没有例外 |
| “Linter 通过了” | Linter ≠ 测试 ≠ 构建 |
| “Agent 说能用了” | 独立验证 |
| “这只是个小改动” | 小改动也会导致大问题 |
多提供方上下文
在 Claude Octopus 工作流中,验证尤其重要,因为:
- 提供方的输出可能是幻觉 — Codex、Antigravity、Copilot 和其他提供方可能会在没有证据的情况下声称成功
- 共识 ≠ 正确 — 三个模型意见一致,不代表它们是对的
- 综合文件可能已过时 — 检查时间戳,不要假定内容是最新的
- orchestrate.sh 退出代码为 0 ≠ 质量合格 — 脚本运行了,但是否生成了高质量输出?
任何多提供方工作流结束后:
# Verify synthesis file exists and is recent
ls -la ~/.claude-octopus/results/*-synthesis-*.md | tail -1
# Verify it has content (not just headers)
wc -l ~/.claude-octopus/results/*-synthesis-*.md | tail -1
应用时机
始终在以下操作之前:
- 提交代码
- 创建 PR
- 将任务标记为已完成
- 进入下一个工作流阶段
- 向用户报告结果
- 声称某个 bug 已修复
在 orchestrate.sh 工作流中:
probe(发现)后 — 确认综合文件存在grasp(定义)后 — 确认共识分数达到阈值tangle(开发)后 — 确认测试通过,而不只是代码已编写ink(交付)后 — 确认审查确实已运行,而不只是已派发
示例
正确:基于证据的声明
$ npm test
✓ user.create() saves to database (45ms)
✓ user.create() validates email (12ms)
Tests: 2 passed, 2 total
All 2 tests pass. ← Claim backed by output.
错误:无证据的声明
I've implemented the feature. It should work now. The tests should pass.
← No test was run. "Should" is not evidence.
正确:回归测试红绿循环
1. Write test → run → FAIL (expected, proves test detects the bug)
2. Implement fix → run → PASS (proves fix works)
3. Revert fix → run → FAIL (proves test isn't false-positive)
4. Restore fix → run → PASS (final confirmation)
与其他技能集成
此技能被以下文件引用:
flow-develop.md— 实现后的验证关卡flow-deliver.md— 交付前的验证关卡skill-code-review.md— 在报告前验证审查发现skill-tdd.md— 红绿循环要求在每个步骤提供证据skill-factory.md— 自主流水线必须在每个阶段进行验证
评论
支持 Markdown