前言¶
在 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)¶
- 删除前备份:备份目录为
{workspace}/.delete_recovery/delete_backup/YYYYMMDDHHMM/(页面简介中的delete_backup/YYYYMMDDHHMM/指同一时间戳结构,实际根路径在 workspace 下的.delete_recovery)。 - manifest 检索:
search按文件名、简介或路径关键字在manifest.jsonl中查找;v0.7.0 起 manifest 中的路径字段为 HMAC-SHA256 加密,明文路径由同目录.path文件承担恢复定位。 - 恢复与校验:
restore前执行 SHA256 完整性、PATH 交叉验证、路径遍历检测;verify仅校验不恢复。--force仅可跳过「SHA256 记录是否存在」的检查(面向 v0.3.0 前的旧备份),PATH 与遍历检测不可绕过。 - 范围限制:v0.7.0 起
allowed_roots默认限制在 workspace 根目录内;需恢复到 workspace 外时,文档说明可将allowed_roots设为None。 - 自动清理:备份文件夹保留约 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 内自动清缓存/过期文件,且清理前尽量留备份的场景。
限制与坑
- 备份写在
{workspace}/.delete_recovery/,与技能目录分离(技能删掉备份仍可留),但不等于加密或权限隔离;文档要求仅在受信任环境部署,且无安装时完整性校验。 - manifest 中 filename、description 仍为明文;敏感路径虽加密,仍要注意磁盘与备份目录的访问控制。
- 恢复默认限制在 workspace 内;跨 workspace 恢复需理解
allowed_roots=None的含义与风险。 - workspace_cleaner 备份失败时可能走降级复制,不等同于完整 SHA256 链路;失败时文件不会被删。
- 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