SuperAPI AI 工具集

closeout

编程与开发

查看项目

更新于 10-23 16:19

技能介绍

Closeout 是一个面向编码会话的收尾检查技能,核心用途是回答一个问题:当前这个会话是否可以安全关闭。它不执行任何写操作,只做盘点、判断和指路。

用途 在结束一次编码会话前,Closeout 会检查是否存在会因关闭而丢失工作或中断任务的阻塞项,以及虽然可以等待、但关闭不会造成损失的后续事项。最终输出一个结论和支撑该结论的条目清单。

主要能力

  1. 会话盘点:从对话中整理出本次会话创建、编辑或删除的文件(按所在检出或工作树分组)、创建的分支与工作树、打开或推送到的 PR(编号与仓库)、启动的后台 Bash 任务、子代理、Monitors、CronCreate 任务、ScheduleWakeup 循环、开发服务器、监视器和队列 worker、向用户提出的问题、仍开放或延期的 grill ledger 分支、用户提出的请求,以及部署事实(迁移、新增环境变量、新增定时命令或队列任务、配置或缓存变更、对话中提到的“合并后”或“部署后”步骤)。
  2. 阻塞项检查:判断哪些事项一旦关闭会话就会丢失工作或中断任务。Git 状态方面,运行 scripts/git-state.sh 检查每个检出和工作树,只统计本次会话清单中的文件以及 .claude/agent-memory/ 下的内容;未提交文件指向 /commit;已提交但未推送(unpushed 大于 0 或为 null)指向 git push 或 git push -u origin <branch>;upstream_gone 为 true 表示远端分支已被删除,通常是合并所致,应检查其 PR,已合并的属于 /repository-cleanup 后续事项而非推送;存在未完成的合并操作则指向 /resolving-merge-conflicts 或相应的 --continue/--abort。运行中的任务方面,尚未收到完成通知的后台任务或子代理需要等待或停止;本次会话创建的 cron 任务或唤醒循环需确认是否仍存在,再决定删除或有意保留;开发服务器或监视器需确认是否仍存活,再决定停止或有意保留。无法在当前环境中检查的任务会标记为未检查,而不是已完成。
  3. 后续事项检查:判断哪些事项可以等待、关闭不会造成损失。PR 方面,运行 scripts/pr-state.sh 列出每个开放 PR 及其等待内容;检查失败指向 /fix-ci-failures,有未解决评论线程指向 /resolve-review-comments,评审为 CHANGES_REQUESTED 且无开放线程指向 /triage-github-pr,检查通过但仍需评审则等待评审者或用 /triage-github-pr 推进合并,已合并但会话分支或工作树仍存在则指向 /repository-cleanup。未回答的问题、未完成的请求、最后一次测试通过后又编辑过的代码、从未在运行中的应用里验证过的行为变更、合并后与部署后步骤,以及本次会话触及的 .scratch/ 工作,都会分别列出并附上对应的清除方式。若后续事项存在且下一个会话需要本次会话的上下文,还会提示 /handoff。
  4. 报告输出:按固定格式打印结论、阻塞项、后续事项和未检查项。结论只有三种:❌ 不安全关闭(存在一个或多个阻塞项)、⚠️ 可关闭但有后续事项(无阻塞项,但有一个或多个后续事项或未检查项)、✅ 干净,可安全关闭(没有未完成事项,也没有未检查项)。空章节会被省略;未检查项会列出每个无法运行的检查及原因,避免跳过的检查被误读为通过。

使用方式 该技能以只读方式运行,不自行提交、推送、停止、删除或回答问题。每个待办项末尾都会给出清除它的命令或技能,由用户自行执行。检查范围严格限定在当前会话:只有本次对话创建、编辑、启动、打开或询问的事项才计入;较早的分支、工作树、PR 和 stash 不会进入报告,即使相关命令会打印它们。如果对话曾被压缩(较早部分被摘要替代),摘要之前的事项可能缺失,报告会明确说明这一点。

适用场景 适合在结束一次编码会话前使用,尤其是涉及多个文件改动、多个分支或工作树、已开 PR、后台任务、定时任务、开发服务器、未回答问题和部署步骤的会话。也适合在需要把上下文交接给下一个会话时,配合 /handoff 使用。

限制 该技能只报告和指路,不执行任何清除操作。检查范围仅限当前会话,不覆盖更早的工作。部分检查可能因环境限制无法运行(如 gh 未登录、不是 git 仓库、当前 harness 缺少某工具、对话被压缩),这些会列入“未检查”而非视为通过。无法在当前环境中检查的任务不会被标记为已完成。