---
name: finish-cleanly
description: 在任务完成、准备最终交付或用户要求收尾时，核实最终成果并自动清理本任务已无用途的临时文件及重复交付副本。默认只保留最终成果，不反复询问清理许可；保护用户文件、依赖、必要证据及回滚资料。适用于产生本地过程文件的任务收尾，不用于全盘清理或每次中途回复。
---

# 完成任务时自动收尾

用户已确认默认策略：只保留最终成果，自动清理本任务产生且已无用途的过程文件和重复交付副本。此策略限定于当前任务自有资源；不扩大系统权限、不覆盖用户当次的保留要求。无须再次询问“要不要清理”。

## 先识别成果和归属

最终成果由用户目标决定：安装技能时是安装目录及必要文件；生成报告时报告就是成果；修复代码时源代码、必要测试和文档都是成果。用户要求下载包时，下载包也是成果。不要按扩展名、目录名、年龄、大小、Git 未跟踪状态或“可重新生成”判断垃圾。

根据本次会话的创建记录、明确的任务清单或已核实的交接信息确定归属。优先使用任务专属临时目录；长任务有跨阶段需要时才维护最小临时清单。不全盘扫描，不为清理再生成永久报告。创建记录不足的文件默认保留；路径位于 tmp 并不是归属证据。

## 判断完成与保留边界

目标已达成、必要验证已结束，且后续步骤不再需要这些资源时才收尾。中途回复、等待确认、部署未核验、故障未解决，都不等于任务完成。此时保留相关证据和现场，不以“最终回复”作为删除依据。

- 自动清理：已无用途的本任务探测脚本、测试目录、中间输出和过程日志。
- 自动清理：正式成果已落地且核实完整的制作副本、ZIP、重复截图和辅助验收材料；曾提供下载链接不是永久保留理由，但必须说明失效。
- 保留：用户要求的成果、明确要求留下的调试资料，以及成果运行、维护或验证所必需的文件。
- 保留：未解决问题的诊断证据、恢复现场所需文件和仍承担回滚用途的备份。即使本轮成功也不自动删除回滚保障。
- 不自动处理：原有或归属不明文件、其他任务资源、共享缓存和依赖。
- 默认范围之外：线上文件、外部服务资源、Git 历史、Codex 会话记录、工作树管理及进程终止。确需处理时沿用专门工具、对应规则与明确授权。

只有无法判断的对象影响收尾或需要用户权衡时，才集中问一次具体问题；其余确认无用的任务自有文件先处理。无回复不是同意。无关的原有文件直接保留，不为它们制造询问。

## 限定路径执行

1. 从已核实归属的资源生成具体清理清单；先确认正式成果存在、内容完整且适用验证已通过。复制/安装场景按需比较内容或哈希。
2. 检查保留的脚本、配置、文档、构建步骤和仍在运行的任务是否依赖候选资源。不得删除后留下一套无法运行的交付。若仅是必要依赖，保留它；在原任务授权内可合理修正路径时，先修正并验证，再删除旧资源。
3. 删除前检查目标及父路径的符号链接、目录实际内容。删除临时链接只移除链接本身，不遍历共享目标；发现父路径跳出已核实范围时先停止该项。递归删除目录前必须确认其中全部内容属于已允许清理范围；来源不明的新文件保留，缩小清理范围。
4. 只删除清单中的精确路径。不使用宽泛通配、按时间批量删除、全盘清理或跟随链接的递归操作。不将文件移到别处冒充清理，不自行创建定时任务。
5. 核对候选已移除、成果及保护对象未受损。遇到权限拒绝或工具失败如实报告，遵守审批边界，不能改用其他方式绕过。部分失败不妨碍处理其他安全且已授权的项。

## 少打扰地交付

发生清理时，在最终答复中用一句话说明清理类别和保留的正式成果。已发链接失效时一并说明。只有实际统计后才报大小，并把逻辑文件字节数与真实释放磁盘空间区分；无需为了小清理额外测量。

没有清理内容时不输出“没有垃圾可清理”等提示。不能虚报清理成功，也不列长篇常规清单。若有关键对象需保留或等待用户选择，具体说明用途；不泛泛询问是否清理所有东西。

若本技能导致必须询问或留下未处理项，链接本 SKILL.md 并指出对应保留/归属规则；将技能判断与系统审批拒绝区分。

## 验收本技能

创建、修改或评测技能时才读取 [行为验收场景](references/behavior-checks.md)。自动发现、实际清理行为和权限是否允许执行分别记录；不能用自动调用配置证明自动触发。只有自然请求下实际读取技能才算触发。
