double-check

在修改任何文件后(包括删除功能),自动进行两次独立验证(测试/编译/运行检查/文档或配置检查),确保无误才结束。本技能应默认应用于所有文件修改任务。 / 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.

3,891 stars

Best use case

double-check is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

在修改任何文件后(包括删除功能),自动进行两次独立验证(测试/编译/运行检查/文档或配置检查),确保无误才结束。本技能应默认应用于所有文件修改任务。 / 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.

Teams using double-check should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/double-check/SKILL.md --create-dirs "https://raw.githubusercontent.com/openclaw/skills/main/skills/belugarex/double-check/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/double-check/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How double-check Compares

Feature / Agentdouble-checkStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

在修改任何文件后(包括删除功能),自动进行两次独立验证(测试/编译/运行检查/文档或配置检查),确保无误才结束。本技能应默认应用于所有文件修改任务。 / 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.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

Related Guides

SKILL.md Source

# 双重验证技能 / Double-Check Skill

本技能适用于**任何文件修改场景**,包括代码、文档、配置、资源文件的添加、修改、删除、重构与更新等。**核心要求**:只要用户请求修改任何文件,AI 应**自动应用本技能**,并在每次修改后执行以下双重验证流程:

**激活标识**:每次启用本技能的回复以 ✅✅ 开头,便于你确认本技能已被调用。

- **连续两次验证**:修改后立即进行两次验证,**两次均无错误**才能结束。
- **同样严谨**:两次验证使用相同的方式(如相同的测试命令或运行命令),确保结果可靠。
- **自动触发**:无需用户额外提示,AI 应主动遵循本流程。
- **验证目标**:确保修改后的文件变更能够**顺利通过对应检查**(无编译/运行/构建/文档校验错误,且原有功能或内容不受影响)。

## 📌 适用场景 / Applicable Scenarios

本技能应默认应用于所有涉及文件修改的请求,包括但不限于:
- **修复 Bug** 后运行测试用例或运行程序检查。
- **添加新功能**后确保原有功能正常。
- **删除功能**后验证剩余代码是否能顺利运行,无残留错误。
- **重构代码**后检查编译/类型错误或运行程序。
- **调整代码风格**后验证 lint 规则。
- **更新依赖**后检查构建是否正常。
- **更新文档**后验证文档构建或校验规则。
- **修改配置**后验证构建/运行流程是否正常。
- 任何其他文件变更后需要保证正确性的任务。

## 🧠 核心原则 / 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` 等),优先使用这些命令进行验证。
- **如果没有标准验证命令**,则与用户协商一个可执行的检查方式(如运行主程序、执行构建脚本、或使用已存在的校验脚本),通过退出码(0 表示成功)和错误输出来判断是否正常。**注意**:这种方式只能发现运行时/构建层面的错误,不能保证逻辑或内容正确性,需告知用户。

### 4. 第一次验证
- 运行确定的验证命令。
- 捕获输出,判断是否通过(测试通过/编译成功/运行无报错且退出码为0)。

### 5. 结果处理
- **如果验证失败**:
  - 向用户报告错误详情(错误信息、行号等)。
  - 根据错误修正相关文件变更。
  - 返回步骤 4(第一次验证)重新开始,**计数重置**。
- **如果验证成功**:
  - 记录“第一次成功”。
  - 进入步骤 6。

### 6. 第二次验证(同样严谨)
- **立即再次运行相同的验证命令**(使用相同的方式,例如同样包含 `--no-cache` 等选项)。
- 捕获输出,判断是否通过。

### 7. 最终判断
- **如果第二次验证也成功**:
  - 向用户报告:✅ **双重验证通过!修改已完成且连续两次验证无错误。**
  - 结束任务。
- **如果第二次验证失败**:
  - 向用户报告失败详情(可能是偶发性问题或修改引入的新错误)。
  - 根据错误修正相关文件变更。
  - 返回步骤 4(第一次验证),**计数重置**,重新开始双重验证流程。

## 🔧 验证方式示例

| 项目类型 | 推荐验证命令 | 说明 |
|----------|--------------|------|
| 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

- **自动应用**:本技能旨在**默认应用于所有文件修改任务**。AI 应主动识别文件修改意图并遵循本流程。
- **删除功能的特殊考虑**:删除功能时,需确保移除了所有相关引用(如调用、导入、配置),避免残留代码导致错误。
- **验证方式协商**:如果项目没有标准的验证命令,AI **必须**与用户协商确定验证方式(如简单的运行命令或构建脚本),并告知用户该方式的局限性(只能发现运行时/构建错误,不能保证逻辑或内容正确)。
- **验证命令可用性**:确保验证命令在环境中可用。如果无法执行(例如没有运行环境),应与用户协商替代方案(如人工审查)。
- **连续两次**:强调“连续”意味着两次验证之间**没有新的文件修改**,只有验证执行。
- **同样严谨**:两次验证应使用**完全相同的方式**(包括命令、参数、环境等),以确保结果一致且可靠。
- **验证独立性**:如果工具存在缓存机制可能影响结果,建议使用清除缓存的相关选项(如 `npm test -- --no-cache`、`pytest --cache-clear` 等)确保两次验证真实独立。
- **超时处理**:如果验证命令运行时间过长(例如超过 5 分钟),可提示用户并建议手动检查,或允许用户中断。
- **与版本控制结合**:建议在修改前创建提交点或暂存更改,以便回滚。

## 🚀 与现有技能结合

如果你已在用 `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.**

Related Skills

botlearn-healthcheck

3891
from openclaw/skills

botlearn-healthcheck — BotLearn autonomous health inspector for OpenClaw instances across 5 domains (hardware, config, security, skills, autonomy); triggers on system check, health report, diagnostics, or scheduled heartbeat inspection.

DevOps & Infrastructure

time-checker

3891
from openclaw/skills

Check accurate current time, date, and timezone information for any location worldwide using time.is. Use when the user asks "what time is it in X", "current time in Y", or needs to verify timezone offsets.

General Utilities

hna-666-flight-checker

3891
from openclaw/skills

查询海南航空 666Plus 权益可往返航班,自动遍历指定目的地

SKILL: stock-checker

3891
from openclaw/skills

## Description

doctorbot-healthcheck-free

3891
from openclaw/skills

🩺 Free Security & Health Audit. Your OpenClaw deserves a check-up. This skill performs a non-invasive scan to detect security risks, outdated software, and misconfigurations.

truthcheck

3891
from openclaw/skills

Verify claims, fact-check content, check URL trustworthiness, and trace claims to their origin using the TruthCheck CLI. Use when: (1) user asks to fact-check or verify a claim, (2) user wants to check if a URL/source is trustworthy, (3) user wants to trace where a claim originated, (4) user asks about misinformation or content verification. Requires: pip install truthcheck

assignment-check

3891
from openclaw/skills

Check use's assignment folder and extracts and read uses assignment question files and tell user the deadline and how long approximately to finish them.

health-check

3891
from openclaw/skills

每日安全检查。检查 OpenClaw Gateway、磁盘空间、内存使用等系统健康状态。触发时机:cron 定时任务或手动调用。

checksum

3891
from openclaw/skills

A CLI utility for generating and verifying cryptographic file checksums (MD5, SHA1, SHA256). Supports recursive directory hashing and verification from file.

minimax-plan-checker

3891
from openclaw/skills

获取 MiniMax 平台的套餐信息,包括套餐名称、额度、当前使用情况。当用户询问 MiniMax 套餐、额度使用情况、API 调用量、计费信息时使用此技能。

openclaw-security-policy-check

3891
from openclaw/skills

OpenClaw 网关安全自动化审计与配置检查工具。自动检查 OpenClaw 配置文件中的常见安全风险,执行安全审计。适用于:

upi-go-live-checklist

3891
from openclaw/skills

Drive a zero-to-first-test-payment UPI onboarding workflow with explicit readiness checks: provider selection, sandbox setup, credentials, webhook validation, test matrix, go-live gates, and incident rollback planning. Use when preparing to launch UPI payments safely.