delete-recovery:为 Agent 删除操作加一层可检索的备份与恢复

前言

在 Cursor、Claude Code 等环境里,让 Agent 帮忙删文件、清缓存很常见。一旦误删或清错目录,往往没有回收站,只能靠 Git 或手工备份碰运气。下面介绍 SkillHub 社区技能 delete-recovery(v0.8.0):在删除前把文件落到带时间戳的备份里,用 manifest 检索,恢复时做 SHA256 与路径安全校验;v0.8.0 还附带 workspace_cleaner,可在定时清理临时/过期文件前先走同一套备份逻辑。

这是什么

delete-recovery 是面向 IT 运维与安全场景的 Agent Skill(分类 it-ops-security),坐标 @user_55263055/delete-recovery,当前版本 0.8.0,来源为 community,发布者为 user_55263055。Skill 元数据标明 requires_api_key=false,不依赖外部 API Key。

它解决两类问题:一是「删之前先留底、删错了能按关键字找回」;二是在受控 workspace 内做定时清理时,尽量先备份再删,并保护核心 Markdown 与技能目录。

核心功能

以下能力均来自官方 SKILL.md 与 SkillHub 页面说明,可按版本对照使用(v0.1.0~v0.6.0 已标记淘汰,应使用 v0.7.0 / v0.8.0)。

备份与恢复(delete_recovery.py)

  1. 删除前备份:备份目录为 {workspace}/.delete_recovery/delete_backup/YYYYMMDDHHMM/(页面简介中的 delete_backup/YYYYMMDDHHMM/ 指同一时间戳结构,实际根路径在 workspace 下的 .delete_recovery)。
  2. manifest 检索:search 按文件名、简介或路径关键字在 manifest.jsonl 中查找;v0.7.0 起 manifest 中的路径字段为 HMAC-SHA256 加密,明文路径由同目录 .path 文件承担恢复定位。
  3. 恢复与校验:restore 前执行 SHA256 完整性、PATH 交叉验证、路径遍历检测;verify 仅校验不恢复。--force 仅可跳过「SHA256 记录是否存在」的检查(面向 v0.3.0 前的旧备份),PATH 与遍历检测不可绕过。
  4. 范围限制:v0.7.0 起 allowed_roots 默认限制在 workspace 根目录内;需恢复到 workspace 外时,文档说明可将 allowed_roots 设为 None。
  5. 自动清理:备份文件夹保留约 7 天、日志约 30 天(时间触发,默认约 24 小时间隔);也可 cleanup 手动全量清理。

workspace 定时清理(workspace_cleaner.py,v0.8.0)

  • 默认约 24 小时 间隔扫描 workspace,清理临时项(如 __pycache__、.pyc、Thumbs.db)及超过默认 7 天未修改的过期文件。
  • 清理前优先调用 delete_recovery.py backup;子进程备份失败时降级为复制到 delete_backup/,若仍失败则跳过该文件、不删除。
  • 白名单与配置存放在 {workspace}/.delete_recovery/workspace_cleaner/;AGENTS.md、SOUL.md、skills 等核心路径硬编码保护。

Agent 侧约束

SKILL.md 要求 Agent 仅通过本技能提供的 backup / restore / list / search / verify / cleanup 及 workspace_cleaner 管理命令处理删恢;禁止篡改内容、路径重定向、绕过校验等。所有删除(含用户指令与 workspace_cleaner)应先备份。

安装与启用

环境

  • Python 3.8+(脚本为 Python 实现)。
  • 通过 SkillHub 安装时需本机已安装 skillhub CLI(安装方式见 SkillHub 安装文档)。

SKILL.md 中另写有通过 ClawHub(npm i -g clawhub、clawhub install delete-recovery)的安装路径,与 SkillHub 坐标安装并存;在 SkillHub 场景下以坐标安装为准。

SkillHub 安装

官方页面给出的 AI 安装提示为:

请根据 https://skillhub.cn/install/skillhub.md,安装 `@user_55263055/delete-recovery`。

命令行安装(必须用 --dir 指向当前 Agent 的 skills 目录,否则默认 ./skills/ 可能不被识别):

skillhub install delete-recovery --namespace user_55263055 --dir <你的 skills 目录>

常见 skills 目录示例(来自 SkillHub 安装文档):

  • Cursor:~/.cursor/skills/
  • Claude Code:~/.claude/skills/
  • Codex:~/.codex/skills/ 或项目下 .agents/skills/

安装成功后,脚本路径形如:

<skills 目录>/@user_55263055/delete-recovery/scripts/delete_recovery.py
<skills 目录>/@user_55263055/delete-recovery/scripts/workspace_cleaner.py

安装后按各客户端要求重启或刷新 Agent,使 SKILL.md 被加载。

典型用法

下面步骤可在安装目录下进入 scripts 后执行;路径请替换为你的 workspace 与文件实际位置。

删除前先备份、误删后恢复

cd <skills 目录>/@user_55263055/delete-recovery/scripts

# 1. 备份(可选第三参数为 ≤6 字简介,便于 search)
python delete_recovery.py backup "/path/to/report.docx" "/path/to/report.docx" "工作报告"

# 2. 用户或 Agent 在确认后执行实际删除

# 3. 按关键字查 manifest
python delete_recovery.py search "报告"

# 4. 按 search 返回的 folder 与 safe_name 恢复
python delete_recovery.py restore 202603281030 "C__Users__user__Desktop__report.docx"

# 5. 可选:只验证备份未被篡改
python delete_recovery.py verify 202603281030 "C__Users__user__Desktop__report.docx"

list、delete_backup <folder>、cleanup、log [lines] 分别用于查看备份、删指定备份、立即清理过期项、读操作日志。

workspace_cleaner 预览与触发

python workspace_cleaner.py status
python workspace_cleaner.py dry-run
python workspace_cleaner.py run
python workspace_cleaner.py add-whitelist ".xlsx" --type ext
python workspace_cleaner.py set-interval 12
python workspace_cleaner.py set-expire-days 3

文档说明 workspace_cleaner 需通过 cron 或定期触发 run,不会单独常驻守护进程。

适用场景与注意

适合谁

  • 经常在 Agent workspace 里删配置、日志、生成物,又希望有「可搜索的删除记录」的开发者。
  • 需要 Agent 遵守「先 backup 再 delete」纪律的团队(可把约束写入 AGENTS.md)。
  • 希望在 workspace 内自动清缓存/过期文件,且清理前尽量留备份的场景。

限制与坑

  1. 备份写在 {workspace}/.delete_recovery/,与技能目录分离(技能删掉备份仍可留),但不等于加密或权限隔离;文档要求仅在受信任环境部署,且无安装时完整性校验。
  2. manifest 中 filename、description 仍为明文;敏感路径虽加密,仍要注意磁盘与备份目录的访问控制。
  3. 恢复默认限制在 workspace 内;跨 workspace 恢复需理解 allowed_roots=None 的含义与风险。
  4. workspace_cleaner 备份失败时可能走降级复制,不等同于完整 SHA256 链路;失败时文件不会被删。
  5. SkillHub 页面统计(截至资料抓取):评分 100000,下载 813,安装 5;与个别摘要里的数字可能因统计时间不同而不一致,以 SkillHub 页面为准。

结尾

delete-recovery 把「删前备份、manifest 检索、带校验的恢复」和可选的 workspace 定时清理绑成一套 Skill,适合交给 Agent 在受控 workspace 里执行文件生命周期操作。官方 SkillHub 页面与 API 坐标:

  • https://www.skillhub.cn/skills/user_55263055/delete-recovery
  • https://api.skillhub.cn/user_55263055/delete-recovery
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye