关于 checkpoint-resume
checkpoint-resume 是 OrchestKit 的分阶段任务编排技能,每个阶段后将进度保存到 `.claude/pipeline-state.json`。发生中断后,可继续执行、选择其他阶段或重新开始。
主要功能
- 01每个阶段后保存状态
- 02显示工作流进度
- 03继续、选择阶段或重新开始
- 04并行执行互不依赖的阶段
- 05每三阶段创建小型提交
适用场景
- 01遇到速率限制后继续工作流
- 02从已保存的阶段状态恢复
- 03通过子 Agent 协调独立阶段
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ yonatangross/ orchestkit --skill checkpoint-resume安装后在 Claude Code 中输入/checkpoint-resume确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
test-cases.jsonreferences/pipeline-state-schema.mdpipeline-state.schema.jsonresume-decision-tree.mdrules/_sections.md_template.mdcheckpoint-mini-commit.mdordering-priority.mdstate-write-timing.mdscripts/init-pipeline.shshow-status.sh详细介绍
检查点续接
具备抗速率限制能力的流水线编排器。每个阶段结束后都会将进度保存到 .claude/pipeline-state.json,确保长时间会话在中断后仍可继续。
快速参考
| 类别 | 规则 | 影响 | 关键模式 |
|---|---|---|---|
| 阶段顺序 | ${CLAUDE_SKILL_DIR}/rules/ordering-priority.md | CRITICAL | 优先处理 GitHub issues/commits,文件密集型阶段放在最后 |
| 状态写入 | ${CLAUDE_SKILL_DIR}/rules/state-write-timing.md | CRITICAL | 每个阶段后写入,绝不批量写入 |
| 迷你提交 | ${CLAUDE_SKILL_DIR}/rules/checkpoint-mini-commit.md | HIGH | 每 3 个阶段提交一次,使用检查点提交格式 |
共计:3 个类别中的 3 条规则
调用时
**如果 .claude/pipeline-state.json 存在:**运行 scripts/show-status.sh 显示进度,然后询问是继续、选择其他阶段,还是重新开始。加载 Read("${CLAUDE_SKILL_DIR}/references/resume-decision-tree.md") 以查看完整决策树。
**如果状态文件不存在:**请用户描述任务,制定执行计划,通过 scripts/init-pipeline.sh <branch> 写入初始状态,然后开始阶段 1。
执行计划结构
{
"phases": [
{ "id": "create-issues", "name": "Create GitHub Issues", "dependencies": [], "status": "pending" },
{ "id": "commit-scaffold", "name": "Commit Scaffold", "dependencies": [], "status": "pending" },
{ "id": "write-source", "name": "Write Source Files", "dependencies": ["commit-scaffold"], "status": "pending" }
]
}
dependencies 为空的阶段可以通过 Task 子 Agent 并行运行(前提是它们不会写入相同文件)。
每个阶段结束后
- 更新
.claude/pipeline-state.json——参见Read("${CLAUDE_SKILL_DIR}/rules/state-write-timing.md") - 每 3 个阶段:创建一次迷你提交——参见
Read("${CLAUDE_SKILL_DIR}/rules/checkpoint-mini-commit.md")
参考资料
按需通过 Read("${CLAUDE_SKILL_DIR}/references/<file>") 加载:
| 文件 | 内容 |
|---|---|
references/pipeline-state-schema.md | 完整的逐字段架构及示例 |
references/pipeline-state.schema.json | 用于验证的机器可读 JSON Schema |
references/resume-decision-tree.md | 继续、选择阶段或重新开始的逻辑 |
脚本
scripts/init-pipeline.sh <branch>— 将状态 JSON 框架打印到 stdoutscripts/show-status.sh [path]— 打印易读的流水线状态(需要jq)
关键决策
| 决策 | 建议 |
|---|---|
| 阶段粒度 | 每个阶段交付一项有意义的成果(一次提交、一组 issues、一项功能) |
| 并行执行 | 仅对 dependencies 为空且不会写入相同文件的阶段使用 Task 子 Agent |
| 速率限制恢复 | 状态已保存——重新调用 /checkpoint-resume 继续 |
--resume会保留计划模式(CC 2.1.132+)——恢复时会遵循--permission-mode plan,而ExitPlanMode会在本次会话的剩余时间内重新应用计划模式。参见configure/references/cc-version-settings.md(## CC 2.1.132 Settings)。
Claude 管理的 worktree 会在结束时解锁(CC 2.1.157+),且
EnterWorktree可以在会话中切换 worktree——恢复的会话可以通过普通的git worktree remove/prune清理先前的 worktree。
/cd(CC 2.1.169+)可将会话移动到新的工作目录,且不会破坏提示词缓存——当带检查点的任务要在不同目录中继续时(例如切换到手动创建的 worktree),应优先使用它,而不是重新启动。
可自托管运行器:
post-session生命周期钩子(CC 2.1.169+)会在会话结束后、工作区删除前运行——这是快照未提交检查点状态或导出.claude/chain/交接内容的理想位置,否则这些内容会随工作区一并销毁。