SuperAPI AI 工具集

cleanup

编程与开发

查看项目

更新于 11-04 04:45

技能介绍

Cleanup 是一个回收磁盘空间、清理 AI 编程智能体遗留分支的技能,核心理念是“一次扫描、一次确认、一次执行”。所有删除动作都通过技能目录内的 scripts/agent_cleanup.py 完成,并在执行前重新检查每个 git 项、产物文件夹、归档和回收站,跳过扫描后已发生变化的内容。

用途与范围

可选择扫描范围:默认扫描当前仓库,需在仓库内运行且不加 --root,覆盖该仓库、智能体工作树文件夹(Codex、Cursor、Conductor、Vibe Kanban)、包缓存、智能体日志和回收站。整机扫描适用于用户表示磁盘已满、所有项目或全部内容的情况,需为每个存放项目的文件夹添加 --root <dir>,常见位置包括 ~/code、~/dev、~/src、~/projects、~/repos、~/Developer、~/Documents/*,若都不存在则询问用户。还可用 --only git,artifacts,archives,caches,agents,trash 缩小范围,例如“只清分支”对应 --only git;仅当用户希望同时删除 origin 上的已合并分支时才加 --remote。

扫描

扫描命令为 python3 <skill-dir>/scripts/agent_cleanup.py scan --fetch [--root DIR ...] [--only ...] [--remote]。除 --fetch 会更新远程跟踪引用外,扫描是只读的,会按四类输出编号条目并保存计划:REMOVE(已合并到基础分支、可重新生成,或目录已不存在的工作树,注销后保留其分支);NEEDS-DECISION(包含独有内容,如未提交或被忽略的文件、未合并或未推送的提交、构建输出、归档、旧日志);KEEP-ACTIVE 和 SKIP(打开的 PR、近期工作,包括最近 --recent-hours 内编辑过文件的已合并工作树、长期分支、主检出、锁定或正在 rebase 的工作树、有运行中进程所在的内容、未挂载的驱动器),这些永不处理。--help 可列出阈值(--stale-days、--keep-days、--min-size)。

一次确认

仅询问一次,可使用多选问题工具,否则用单条消息发送并等待回答。REMOVE 项默认选中,每项一行显示 id、大小、路径和备注;条目多时按类型(工作树、分支、产物、缓存)分组并保留每个 id 可见,同时说明缓存会按需重新下载、产物会在下次安装或构建时恢复。每个 NEEDS-DECISION 项单独一行且默认不选中,显示路径、大小及其独有内容;智能体日志和归档一旦删除无法恢复。若使用了 --remote,远程分支作为单独问题询问,因为删除会影响所有使用该仓库的人。KEEP-ACTIVE 和 SKIP 给出一行摘要,让用户知道它们已被检查。

执行

将用户选中的 id 原样传给 apply:python3 <skill-dir>/scripts/agent_cleanup.py apply 1 2 5 9-14。仅当选中 id 包含用户在其问题中批准的远程分支时才加 --remote。apply --recommended 会执行所有 REMOVE 项,仅在用户批准全部且不包含其他项时使用。apply 对每项输出一行:完成、跳过(扫描后已变化、已消失或正在使用)、拒绝,或带 git 原因的失败;需按原样逐条报告。跳过和拒绝的项保持原样,下次扫描会重新分类。若计划超过 24 小时,apply 会拒绝执行,需重新扫描并再次确认。git worktree remove 会拒绝有未提交更改的工作树,仅对用户明确接受丢失这些更改的 id 加 --force。分离工作树的独有提交以及被删除分支中任何远程都没有的提交,会在移除前保存到 refs/agent-cleanup/ 下。

报告

最后告知用户:释放了多少空间、移除了什么、保留了什么及原因;对每个智能体数据项,说明其备注中提到的智能体内置保留设置,以便日志不再堆积。所有操作记录到 ~/.local/state/agent-cleanup/history.jsonl。

限制

资料未提供关于收费、价格、平台支持范围或清理效果的量化说明,暂未提供。脚本运行依赖 Python 3 环境;远程分支删除会影响仓库其他使用者,需谨慎确认。