SuperAPI AI 工具集

closeout

办公与效率

查看项目

更新于 10-15 09:40

技能介绍

用途

Closeout 是一个会话收尾仪式(Session Close-Out Ritual)技能,调用入口为 /closeout。它的目的是在每个工作会话结束时,系统性地清点本次会话产生的产出、闭合已完成的计划与原子,并为下一个会话保留可续接的上下文。

根据资料,触发时机包括:

  • 用户明确说出 /closeout、"close out"、"wrap up"、"end the session"
  • 在任何非平凡的 git push 之前(收尾应先于 push)
  • 当会话已产出 3 个及以上文件、计划或原子,且用户正在示意结束

资料指出,其存在理由是计划孤儿问题:在 ~/.Codex/plans/ 的 427 个计划中,386 个(90.4%)既不含 DONE-NNN 也不含 IRF 引用,只有 20 个(4.7%)为 EXECUTED、21 个(4.9%)为 IN-PROGRESS。资料认为这种孤儿率正是缺少收尾仪式的直接产物。

主要能力(六步协议)

第 1 步 — 盘点会话产出

尽可能并行运行以下命令:

# 本次会话创建或修改了哪些文件?
git status --short
# 本次会话撰写了哪些计划?
ls -t ~/.Codex/plans/*.md 2>/dev/null | head -10
# 当前分支及相对 origin 的状态?
git branch --show-current
git log @{u}.. 2>/dev/null || echo "(no upstream tracking)"

然后向用户展示一份简要清单表:修改 N 个文件、创建 M 个、本会话撰写 K 个计划、领先 origin L 个提交。

第 2 步 — 回访计划

对本会话撰写的每个计划(按会话时间窗口内的 mtime 过滤 ~/.Codex/plans/*.md),分类为:

  • EXECUTED:包含 DONE-NNN 引用,无需操作。
  • IN-PROGRESS:包含 IRF-XXX-NNN 引用但没有 DONE-NNN,更新其 frontmatter 以确认持续状态。
  • ABANDONED:无闭合引用、无后续提交,移入 ~/.Codex/plans/abandoned/ 并附简短放弃原因。

对模糊情况询问用户。资料强调不要未经确认就批量分类,因为 home-scope AGENTS.md 的规则“Atoms are permanent — never batch-close”同样适用于作为制品的计划。

第 3 步 — 回访原子(如适用)

如果本会话触及了 data/prompt-registry/prompt-atoms.json,则找出本会话闭合的原子并确认其 status 字段已更新。如果不是(大多数会话),跳过。

第 4 步 — 核对 git 状态

交叉检查:

  • 工作区干净(没有属于本会话的未提交更改)
  • 本地 main 与 origin 同步(或分支正确跟踪)
  • 工作区根目录没有散落的导出/临时文件(ls /Users/4jp/Workspace/*.txt 应为空)

如果存在散落导出文件(自动命名模式 2026-MM-DD-NNNNNN-this-session-being-continued-from-a-previous-c.txt),将其移动到 ~/Documents/session-exports/,若重复则删除。

第 4.5 步 — 校验 CLAUDE.md 自动生成内容的新鲜度(hall-monitor 门禁)

如果活动仓库的 CLAUDE.md 带有 <!-- ORGANVM:AUTO:START --> / <!-- ORGANVM:AUTO:END --> 哨兵标记,运行门禁:

~/.local/bin/claude-md-autogen-gate

如果它返回非零,说明自动生成尾部已超过 7 天,则拒绝将会话标记为 DONE。先刷新:

organvm context sync --write     # autogen sections only
# or
organvm refresh                  # full 10-step pipeline

然后重新暂存 CLAUDE.md 并提交(claude-md-autogen-freshness 预提交钩子会重新校验),再重新运行门禁。

仅在用户明确授权时绕过:

AUTOGEN_FRESHNESS_THRESHOLD_DAYS=999 ~/.local/bin/claude-md-autogen-gate

资料说明该步骤与预提交钩子(claude-md-autogen-freshness)配合,在提交边界和会话边界两处捕获陈旧问题。根因先例:2026-05-16 追踪到 32 天的 autogen 尾部陈旧,源于 organvm refresh 第 6 步在 system-system--system 上软失败:无效层级 'sovereign'(通过 schema + validator 同步编辑关闭;见 GH 4444J99/domus-semper-palingenesis#30,IRF-DOM-048)。

第 5 步 — 更新 active-handoff(如存在)

如果任何活动仓库中存在 .conductor/active-handoff.md,用以下内容更新它:

  • 本次会话完成了什么
  • 哪些已锁定/尚未尝试
  • 下一个会话应接手什么

资料称这是跨会话连续性门禁。

第 6 步 — 编写 CLOSEOUT_SUMMARY.md

在 ~/.Codex/plans/closeout-{date}.md 生成会话收尾摘要,格式如下:

# Session Close-Out — {date}

## Outputs
- {N} files created, {M} modified
- {K} plans authored: {filenames}
- {L} commits made (SHAs): {sha-list}

## Closure marks
- EXECUTED plans (DONE-NNN refs): {list}
- IN-PROGRESS plans (IRF refs): {list}
- ABANDONED plans (moved): {list}

## Pending
- Uncommitted changes: {if any}
- Unpushed commits: {if any}
- Active handoff: {path if exists}

## Hand-off note for next session
{one-paragraph context for resumability}

使用方式

在满足触发条件的会话结束时调用 /closeout,技能会依次执行上述六步协议。资料给出的成本估计为每会话约 3-5 分钟;如果会话没有产生值得注意的制品,应说明并干净退出(安静会话上收尾很快)。

适用场景

  • 用户明确示意会话结束时
  • 任何非平凡 git push 之前
  • 会话产出 3 个及以上文件、计划或原子且用户示意结束时

限制与规则

资料明确列出需遵守的规则:

  • 未经用户明确确认,绝不批量关闭原子或计划。依据 Universal Rule(memory rule #53):atoms are permanent, never batch-close。
  • 绝不删除计划文件。改为移入 abandoned/ 以保留历史(依据 home AGENTS.md 的 plan-discipline 部分)。
  • 除非用户已为本会话明确授权 push,否则绝不将 push 作为收尾的一部分。收尾的职责是为 push 做准备,而非执行 push。
  • 如果会话未产生值得注意的制品,应说明并干净退出。

相关资料

  • docs/evaluation/SELF-REVIEW-MASTER-2026-05-05.md — 病理 #4:计划撰写节奏远超计划执行节奏(21:1)
  • docs/evaluation/self-review-2026-05-05/stale-plans-and-orphan-commits.md — 90.4% 孤儿率背后的完整数据
  • Universal Rule #2:“Nothing local only” — 收尾是每个会话实现“nothing local only”的手段

关于收费、价格与具体平台支持,资料暂未提供。