Install
openclaw skills install change-safeguard确保对工作区文件、配置和脚本的改动经过全面影响分析、逐项修改和严格复验,防止遗漏或错误修改。
openclaw skills install change-safeguard工作区文件变更操作的安全保险箱。
任何对工作区文件、配置、脚本的优化、修改、移动、删除操作,都必须走此技能流程。确保不遗漏、不误改。
触发场景:
不触发:
| 原则 | 含义 |
|---|---|
| 🔍 搜索 ≠ 修改 | 看到搜索结果不代表已执行,必须逐一编辑 |
| ✅ 清零才算完成 | grep 旧字符串结果为空,才准说完成 |
| 🔄 改完必复验 | 最后一轮 grep 清零是不可跳过的强制步骤 |
1️⃣ 影响分析 ── grep 找出所有旧引用
2️⃣ 列清单 ── 逐个文件 + 具体位置 + 分类标记
3️⃣ 执行 ── 按清单逐一编辑,改一个打一个勾
4️⃣ 复验 ── 再次 grep 旧字符串,区分遗漏 vs 无需修改
5️⃣ 完成 ── 旧引用清零 → 展示修改总结
任何步骤不可跳过,不可合并。
全量搜索,覆盖所有常见文件类型:
grep -rn "旧字符串" /path/to/ \
--include="*.md" --include="*.py" --include="*.json" \
--include="*.yaml" --include="*.yml" --include="*.sh" \
--include="*.js" --include="*.ts" --include="*.toml" \
2>/dev/null
搜索结果分类标记:
| 标记 | 含义 | 示例 |
|---|---|---|
| 📍 需修改 | 路径/名称变了,必须更新 | old/path/file.md → new/path/file.md |
| 🔒 无需修改 | 静态引用,位置未变 | README.md 路径未变 |
| ⚠️ 需确认 | 不确定是否需要改 | 注释、日志输出格式 |
格式:
### 影响分析结果
共 X 处引用:Y 处需修改,Z 处无需修改
### 需修改清单
| # | 文件 | 需修改内容 | 状态 |
|---|------|-----------|------|
| 1 | file.md | old → new | ⬜ |
| 2 | script.py | 参数更新 | ⬜ |
列出后告知用户,等待确认后再执行。
⬜ → ✅# 复验旧字符串
grep -rn "旧字符串" /path/to/ --include="*.md" --include="*.py" --include="*.json" ... 2>/dev/null
# 验证新字符串
grep -rn "新字符串" /path/to/ --include="*.md" --include="*.py" --include="*.json" ... 2>/dev/null
结果处理:
| 复验结果 | 动作 |
|---|---|
| 旧字符串 grep 结果为空 | ✅ 进入步骤 5 |
| 有残留但无需修改(注释/日志) | 解释后 ✅ 进入步骤 5 |
| 有残留是遗漏 | 回到步骤 3 补漏 |
### 修改总结
共修改 X 个文件:
| # | 文件 | 修改内容 |
|---|------|----------|
| 1 | file.md | 路径更新 |
| 2 | script.py | 函数调用更新 |
✅ 复验通过,旧引用已清零。
| 行为 | 说明 |
|---|---|
| ❌ 搜了≠改了 | 看到搜索结果就以为处理了 |
| ❌ 改完不复验 | 编辑完直接说完成 |
| ❌ 凭记忆列举 | 不用 grep 就列受影响文件 |
| ❌ 漏掉文件类型 | 只搜 .md 忘了 .py、.json 等 |
| ❌ 跳过影响分析 | 不列清单直接开始改 |
| ❌ 跳过用户确认 | 不告知影响范围就执行 |
| 场景 | 关键搜索 | 注意事项 |
|---|---|---|
| 目录重构 | 旧路径 | 区分哪些文件要改、哪些不动 |
| 函数重命名 | 旧函数名 | 包括定义和所有调用点 |
| 删除文件 | 文件名 | 先清引用再删文件 |
| 配置迁移 | 旧配置名 | 区分硬编码和变量引用 |
说"完成"前,自问:
任何一题回答"没有" → 不准说完成。
全局技能,所有 Agent 必须遵循