安全回滚盾

👤 ztskills 📦 v1.0.0 ⭐ 4.5 ⬇️ 21 下载
🔒 IT运维与安全 免费

📖 技能介绍


name: safe-rollback description: 执行写操作前自动备份,出错时一键还原到修改前。当用户说"开始修改""动手吧""进入安全模式",或要求"改之前先备份"时触发。


安全回滚盾

目标

用户全程只记两个词——「开始」和「回滚」,文件永远可恢复。

触发判断(先判断,再动手)

触发条件满足其一: - 用户说"开始修改""动手吧""进入安全模式" → 开启安全模式,此模式下后续所有写操作自动前置备份 - 用户说"改之前先备份一下" → 单次备份:只对这次操作备份,不进入模式 - 模式一旦开启,持续生效直到用户说"结束安全模式"或"不用备份了"

不触发的情况(误触发防护): - 用户说"开始"但语境与文件操作无关(如"开始讲吧""开始分析")→ 不进入安全模式,先确认再进入 - 用户要求的全是只读操作(查询、分析、阅读)→ 不需要备份,不进入模式 - 用户说"备份"但指的是系统/数据库备份等本技能范围外的事 → 不接管,正常处理

执行流程

第 1 步:写操作前(必经;唯一例外:用户明确说"不用备份",且须复述确认)

对每一个写操作(修改/覆盖/移动/删除/新建后覆盖)执行: 1. 创建 .backup/ 目录(如不存在) 2. 备份文件命名为:原文件名.备份.YYYYMMDD-HHMMSS(同名同秒冲突时追加序号 -2、-3) 3. 立即校验备份成功:对比原文件与备份的 hash,不一致就中止本次写操作并报错 4. 写一条操作日志到 .backup/manifest.txt: [时间] 文件:src/config.py → 备份:config.py.备份.20260618-093000 [时间] 动作:修改 3 处(第 12、45、78 行) 日志是回滚的依据,必须记录「改了哪个文件、改了什么」,否则无法精确回滚。

第 2 步:执行操作

正常执行用户要求的修改,动作与日志保持一致。

第 3 步:操作完成输出

改动完成 ✅
- 改了:src/config.py(3 处:12、45、78 行)
- 备份:.backup/config.py.备份.20260618-093000
- 不满意就说"回滚";没问题就说"结束安全模式"

回滚流程(用户说"回滚"时)

  1. 先问一句:"回滚哪个?最近一次改动,还是指定文件?"(防止误伤)

    7w4.net小葱技能站收录全网优质技能,值得收藏。

  2. 从 manifest 找到该次操作的备份
  3. 用备份覆盖原文件
  4. 校验:hash 对比一致后报告
  5. 输出: ```markdown 已恢复到修改前 ✅
  6. 恢复文件:src/config.py
  7. 对应备份:config.py.备份.20260618-093000
  8. 后续修改的其它文件未受影响(如需一起回滚,说"连 xxx 一起回滚") ```

删除操作的特殊处理(短板补丁:删错要能救)

  • 任何删除 = 移动,目标文件移到 .backup/trash/(带时间戳),不真正删除
  • 用户说"彻底删掉"才真正删除
  • 用户说"找回删除的文件" → 从 trash/ 恢复最近匹配的文件

git 项目感知(短板补丁:不重复造轮子)

  • 检测到目标在 git 仓库内 → 优先提示"该目录是 git 仓库,用 git 恢复更轻",默认仍按本技能备份(双保险),用户可要求只用 git
  • 回滚时,git 仓库内文件也按备份文件恢复,不依赖 git 状态

边界情况清单

情况 处理方式
备份失败(磁盘满、无权限) 立即中止写操作,报告原因,绝不"先改再说"
用户改完又改,连续多次 每次独立备份+独立日志条目,回滚时按用户选的那次
回滚会影响后来才改的文件 回滚前说明"该文件后来又被改过,回滚会丢失第二次修改,继续吗?"
.backup/ 越来越大 保留最近 3 份同名备份,更早的自动删除(删除前确认日志完整)
用户忘了自己在安全模式 每次写操作前输出一行"已自动备份",让用户有感知
文件名带特殊字符/长路径 备份名只取文件名+时间戳,路径记录在 manifest 里

失败兜底

  • manifest 丢失 → 按时间最近的备份恢复,并告知"日志缺失,只能恢复到最近备份"
  • 找不到对应备份 → 停止回滚,如实说"该次操作没有备份,无法恢复",不假装成功

禁区

  • 禁止任何写操作跳过备份(用户明确说"不用备份"除外,且要复述确认一遍)
  • 禁止回滚时覆盖 .backup/ 目录本身
  • 禁止在备份未校验通过时继续操作

🤖 AI 评测

这个备份回滚工具功能设计很完善,能在修改文件前自动备份,出错时一键恢复,不用担心改坏了救不回来。触发机制考虑得很周到,误触发了也能识别。不过目前只有使用说明,没有实际代码,能不能用还不知道。另外只能保护代码文件,其他数据(如数据库)不在范围内。

📊 多维度评分

适应性4.4
规范性4.4
有效性4.7
可靠性4.1
可信度5

📁 包含文件 (1 个)

📄 SKILL.md 4.2 KB