动机
.refactor-loop/ 的运行生成物与 .worktrees/ 在长跑 dogfood 下无界累积,实测当前单机:
.refactor-loop/logs/:333 文件 / 252M(每个 codex 一条,solver/judge/reviewer/fix 数千行)
.refactor-loop/prompts/:2726 文件(每 PR/每轮渲染的一次性 prompt)
.refactor-loop/runs/:3307 文件(verdict/report/audit artifact)
.controller-pending-events.log:38026 行 / 6.6M(append-only 事件日志,可回溯到数周前)
.worktrees/:19 个目录(多数为已 merged PR 的陈旧 worktree)
这些是生成物,不是事实源(权威源在 SKILL.md/脚本/测试,历史由 git 保存,见 CLAUDE.md「生成物不当事实源」「历史由 git 保存」)。无清理机制会拖慢 glob/扫描、占盘、并增加误读陈旧 artifact 的风险(本 dogfood 已发生过误删 in-flight log、扫错 runs/ 致 router 误判)。
范围
为 skill-private 运行态生成物 + 陈旧 worktree 设计一套有界保留 / 清理机制:
.refactor-loop/logs|prompts|runs 的按保留窗口(age/count)清理。
.controller-pending-events.log 等 append-only 事件日志的有界截断(保留近期窗口)。
.worktrees/<name> 中已 merged / 无 in-flight codex 的陈旧 worktree 清理(配合 git worktree prune)。
设计约束(安全不变量,需 design-consensus 收敛具体方案)
- 绝不删活跃产物:任何仍有 RUNNING codex 的 log / worktree 一律不动;删前必须用 raw
ps 确认进程真死(承本 dogfood 误删 in-flight minimal r2 log 教训)。
- 绝不删活跃 PR/issue 关联 artifact:保留窗口内 + 与 OPEN PR/issue 关联的 prompt/runs/log 不清。
- 事件日志按 retention 截断而非整删:保留近期窗口,且不破坏正在
tail -n 0 -F 的 Monitor bridge。
- host-opt-in + daemon-owned:保留窗口经
host.env 注入(缺省 noop/保守);机械、状态确定的清理放后台 daemon(daemon-first)。
- narrow allowlist,无 lifecycle authority:只在 skill-private
.refactor-loop/ + .worktrees/ 文件面 GC;禁止任何 git commit/push/merge、issue/PR/label 生命周期动作、tag/release;不作为 generic lifecycle actor。
- 可验证:behavior test(stub 文件树 + 假进程)断言「活跃产物不删 / 超窗陈旧产物删 / 事件日志截断保留近期 / 已 merged 无 in-flight worktree 清理」;source-regression 锁住保留窗口事实源与 allowlist 字面。
验收
设计落地后:长跑下 .refactor-loop 生成物与 .worktrees 维持有界规模;无活跃产物被误删;事件日志有界且 Monitor 不断流;全套 source-regression + behavior test 绿。
⟦AI:AUTO-LOOP⟧
动机
.refactor-loop/的运行生成物与.worktrees/在长跑 dogfood 下无界累积,实测当前单机:.refactor-loop/logs/:333 文件 / 252M(每个 codex 一条,solver/judge/reviewer/fix 数千行).refactor-loop/prompts/:2726 文件(每 PR/每轮渲染的一次性 prompt).refactor-loop/runs/:3307 文件(verdict/report/audit artifact).controller-pending-events.log:38026 行 / 6.6M(append-only 事件日志,可回溯到数周前).worktrees/:19 个目录(多数为已 merged PR 的陈旧 worktree)这些是生成物,不是事实源(权威源在 SKILL.md/脚本/测试,历史由 git 保存,见 CLAUDE.md「生成物不当事实源」「历史由 git 保存」)。无清理机制会拖慢 glob/扫描、占盘、并增加误读陈旧 artifact 的风险(本 dogfood 已发生过误删 in-flight log、扫错 runs/ 致 router 误判)。
范围
为 skill-private 运行态生成物 + 陈旧 worktree 设计一套有界保留 / 清理机制:
.refactor-loop/logs|prompts|runs的按保留窗口(age/count)清理。.controller-pending-events.log等 append-only 事件日志的有界截断(保留近期窗口)。.worktrees/<name>中已 merged / 无 in-flight codex 的陈旧 worktree 清理(配合git worktree prune)。设计约束(安全不变量,需 design-consensus 收敛具体方案)
ps确认进程真死(承本 dogfood 误删 in-flight minimal r2 log 教训)。tail -n 0 -F的 Monitor bridge。host.env注入(缺省 noop/保守);机械、状态确定的清理放后台 daemon(daemon-first)。.refactor-loop/+.worktrees/文件面 GC;禁止任何 git commit/push/merge、issue/PR/label 生命周期动作、tag/release;不作为 generic lifecycle actor。验收
设计落地后:长跑下
.refactor-loop生成物与.worktrees维持有界规模;无活跃产物被误删;事件日志有界且 Monitor 不断流;全套 source-regression + behavior test 绿。⟦AI:AUTO-LOOP⟧