Double Check
by @belugarex
在修改任何文件后(包括删除功能),自动进行两次独立验证(测试/编译/运行检查/文档或配置检查),确保无误才结束。本技能应默认应用于所有文件修改任务。 / After any file changes (including feature removal), automatically perform two in...
clawhub install double-check📖 About This Skill
name: double-check description: 在修改任何文件后(包括删除功能),自动进行两次独立验证(测试/编译/运行检查/文档或配置检查),确保无误才结束。本技能应默认应用于所有文件修改任务。 / After any file changes (including feature removal), automatically perform two independent verifications (tests/compilation/runtime checks/docs or config checks) to ensure correctness. This skill should be applied by default to any file modification task. author: BelugaRex tags: [coding, testing, verification, quality-assurance, bilingual]
双重验证技能 / Double-Check Skill
本技能适用于任何文件修改场景,包括代码、文档、配置、资源文件的添加、修改、删除、重构与更新等。核心要求:只要用户请求修改任何文件,AI 应自动应用本技能,并在每次修改后执行以下双重验证流程:
激活标识:每次启用本技能的回复以 ✅✅ 开头,便于你确认本技能已被调用。
📌 适用场景 / Applicable Scenarios
本技能应默认应用于所有涉及文件修改的请求,包括但不限于:
🧠 核心原则 / Core Principles
1. 自动应用:AI 应识别出“修改文件”的意图,并自动激活本技能。
2. 修改 → 验证 → 修正 → 再验证:任何文件修改都必须经过验证环节。
3. 两次连续成功:必须连续两次验证均无错误,才能视为最终成功。
4. 同样严谨:两次验证采用完全相同的方式(例如都运行 npm test 或 python main.py),确保一致性。
5. 独立验证:尽管命令相同,但两次运行在逻辑上是独立的(例如不使用缓存结果,或使用 --no-cache 等选项),避免偶然因素。
6. 清晰报告:每次验证后向用户报告结果(成功/失败,错误详情)。
📋 执行步骤 / Execution Steps
1. 理解任务
2. 执行修改
3. 确定验证方式
根据项目情况选择合适的验证方式:npm test、pytest、cargo check、make test、mkdocs build、markdownlint 等),优先使用这些命令进行验证。4. 第一次验证
5. 结果处理
6. 第二次验证(同样严谨)
--no-cache 等选项)。7. 最终判断
🔧 验证方式示例
| 项目类型 | 推荐验证命令 | 说明 |
|----------|--------------|------|
| Node.js (有测试) | npm test | 运行测试 |
| Node.js (无测试) | node index.js | 运行主程序,检查是否报错 |
| Python (有测试) | pytest 或 python -m unittest | 运行测试 |
| Python (无测试) | python main.py | 运行主程序,检查是否报错 |
| Rust | cargo test 或 cargo check | 运行测试或编译检查 |
| Go | go test ./... | 运行测试 |
| Go (无测试) | go run main.go | 运行主程序,检查是否报错 |
| Java (Maven) | mvn test | 运行测试 |
| Java (无测试) | java -jar target/app.jar | 运行打包后的程序,检查是否报错 |
| 通用 (有 Makefile) | make test 或 make check | 自定义测试 |
| 通用 (无测试) | 与用户协商运行命令 | 例如运行脚本、启动服务等 |
💬 用户交互示例
示例 1:删除功能(有测试)
用户:请删除用户登录功能,用不到它了。AI(自动应用本技能):
1. 定位并删除登录功能的相关代码(文件、函数、调用等)。
2. 运行 npm test(第一次验证)→ 测试通过(原有测试不受影响)。
3. 再次运行 npm test(第二次验证)→ 测试通过。
4. 报告:✅ 双重验证通过!登录功能已删除,剩余代码运行正常,所有测试通过。
示例 2:删除功能(无测试,运行检查)
用户:删掉设置页面的主题切换功能,没用了。AI(自动应用本技能):
1. 删除主题切换的相关代码。
2. 由于没有找到测试命令,与用户协商:“我没有找到标准的测试命令。我可以运行 python main.py 来检查是否有运行时错误,这种方式只能发现程序崩溃,无法验证逻辑正确性。你同意吗?或者你有其他验证方式?”
- 用户回复:“可以,就运行看看。”
3. 运行 python main.py(第一次验证)→ 程序正常运行,退出码 0。
4. 再次运行 python main.py(第二次验证)→ 程序正常运行,退出码 0。
5. 报告:✅ 双重验证通过!主题切换功能已删除,程序运行无报错。请注意,这仅验证了运行时错误,未检查其他功能是否受影响。
示例 3:验证失败并修正(添加功能)
用户:添加一个计算器函数。AI:
1. 添加函数及相关代码。
2. 运行 pytest(第一次验证)→ 失败(新函数测试未通过)。
3. 报告错误详情,修正代码。
4. 再次运行 pytest(第一次验证重置)→ 通过。
5. 再次运行 pytest(第二次验证)→ 通过。
6. 报告:✅ 双重验证通过!计算器函数添加成功,所有测试通过。
⚠️ 注意事项 / Important Notes
npm test -- --no-cache、pytest --cache-clear 等)确保两次验证真实独立。🚀 与现有技能结合
如果你已在用 answer-framework 技能,本技能可与它自然衔接。例如,answer-framework 负责分析问题、组织回答,而 double-check 负责确保修改后的文件质量。AI 在收到文件修改请求时,应同时融合两个技能的指导。
> 记住:文件质量不是偶然,而是双重验证的结果。本技能应默认应用于每次文件修改。 > Remember: File quality is not an accident; it's the result of double-checking. This skill should be applied by default to every file modification.