关于 factory-clean
factory-clean 是用于盘点和回收软件工厂资源的技能,面向需要清理并行运行遗留产物的项目维护者。它根据运行状态保护活动工作和未保存内容,只将确认安全的陈旧资源列为清理候选。
主要功能
- 01盘点工作树、克隆与构建产物
- 02按活动状态分类资源
- 03保护未提交或未推送的工作
- 04清理陈旧锁、租约及产物
- 05删除前重新验证并逐项执行
适用场景
- 01并行运行后回收磁盘空间
- 02检查哪些工作树可以安全移除
- 03清理已过期的锁和租约
- 04核实清理不会丢失未保存工作
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ tikalk/ adlc-team-skills --skill factory-clean安装后在 Claude Code 中输入/factory-clean确认已加载。
详细介绍
factory-clean
此技能的作用
factory-clean 是软件工厂的资源回收引擎。它回答两个问题,并根据第二个问题采取行动:此项目目前占用了这台机器多少资源,以及哪些资源可以回收,而不会破坏工作或中断仍在运行的 Agent?
它作为一种 Kind-B 控制平面技能运行,会读取运行注册表、识别活动工作树,并清理已丢弃或过期的产物。
适用场景
- 多次并行运行后,查看哪些工作树可以安全移除,并回收磁盘空间。
- 清理废弃或过期的锁和租约。
- 确认没有意外丢失未提交或未推送的工作。
不适用场景:
- 常规代码开发或 PR 审查(使用
factory-mission或factory-review)。 - 强制删除未推送的 git 提交或未提交的文件(此技能绝不会删除不安全的工作)。
操作流程
1. 项目载入
确定要处理的项目(默认为当前仓库)。识别其状态根目录、运行注册表和工作树根目录(.adlc/worktrees/)。
2. 活跃工作分类
显示任何待删除项之前,读取本地状态文件和评论总线(如果集成了跟踪器,则通过评论总线和租约标记读取)。将每个资源归为以下五种活跃状态之一:
in use— 由租约有效的运行所持有(heartbeat_ts + ttl_seconds > now),或其路径被活动进程占用。**受保护。**绝不提供删除选项。holds work— 包含未提交更改或未推送至远程仓库的提交的工作树,或标记为retained的注册表条目。**受保护。**准确说明其中包含的内容。绝不删除。stale— 已注册,租约已超过其 TTL,没有未保存内容,并且没有运行中的进程占用其路径或将其用作工作目录。可考虑删除。orphan— 不存在注册表条目,但规范路径包含关系以及确定性的项目、技能和运行所有权标签证明它由此技能系列创建。可考虑删除。unknown— 无法确定所有权或活跃状态。**受保护。**向用户显示,但不提供删除选项。
注意:活跃状态分类依据此技能系列自身的注册表。报告中需说明,其他本地进程或 IDE 检出不可见,因此会作为 unknown 受到保护。
3. 清点范围
扫描并测量以下项目的大小或数量:
- 技能工作树和克隆:
.adlc/worktrees/下的工作树、.adlc/clones/下托管的克隆。 - Git 产物:过期的工作树注册信息、松散对象和包文件大小。(忽略并保护本地用户分支和全局 git 缓存)。
- 项目依赖和构建产物:依赖目录(
node_modules、.venv)、构建和分发产物、覆盖率和测试产物。 - 技能状态、临时文件和日志:每次运行的临时目录、快照和日志文件。(已保存的身份映射、项目约定、架构和配置一律受到保护)。
- 进程和端口:占用此项目端口或文件的开发服务器、端口转发和后台工作进程。
4. 报告和审批
- 按组展示清单,每组按可回收大小排序,并提供各组及总体总量。明确说明哪些内容受到保护及原因。
- 请用户在每组中选择确切的候选项标识符。默认不选择任何项。
- 展示将要运行的确切命令。
- 在每次删除前立即重新验证活跃状态:如果某次运行已启动,或自清点以来新增了未保存的工作,则跳过该项并报告冲突。
- 一次删除一项;遇到第一个错误就停止,不要继续执行基于错误假设的操作。
- 报告已回收和已跳过的内容,以及实际释放的空间(重新测量,不作估算)。
评论
支持 Markdown