SuperAPI AI 工具集

continue-claude-work

智能体与模型

查看项目

更新于 10-15 14:08

技能介绍

用途

Continue Claude Work 用于从先前的 Claude Code 会话中恢复可执行的上下文,并在当前对话中继续执行。它以本地会话文件为事实来源,然后进行具体的编辑和检查,而不仅仅是总结。

它存在的意义在于替代 claude --resume:claude --resume 会把完整的会话记录重放进上下文窗口。对于长会话,这会在已解决的问题和过时状态上浪费 token。本技能只选择性地重建可执行的上下文——最新的压缩摘要、待办工作、已知错误和当前工作区状态——从而在保留先前知识的同时获得一个全新的开始。

主要能力

  • 通过单个脚本调用完成会话发现、压缩边界解析、噪声过滤和工作区状态提取。
  • 输出结构化 Markdown 简报,包含:会话元数据、压缩摘要、最后的用户请求、最后的助手响应、遇到的错误、未解决的工具调用、子智能体工作流状态、会话结束原因、涉及的文件、MEMORY.md、Git 状态。
  • 根据会话结束原因(正常退出、中断、错误级联、被放弃)选择不同的继续策略。
  • 支持子智能体上下文提取,可恢复多智能体工作流。
  • 自动跳过当前活跃会话(修改时间小于 60 秒前),避免自我提取。

使用方式

运行捆绑的提取脚本:

# 当前项目的最新会话
python3 scripts/extract_resume_context.py

# 按 ID 指定会话
python3 scripts/extract_resume_context.py --session <SESSION_ID>

# 按主题搜索
python3 scripts/extract_resume_context.py --query "auth feature"

# 列出最近会话
python3 scripts/extract_resume_context.py --list

工作流分为四步:

  1. 提取上下文(单次脚本调用)。
  2. 根据会话结束原因分支选择策略:正常退出则从待办工作继续;中断则重试被中断的工具调用或评估是否仍需要;错误级联则先诊断根因,不要盲目重试;被放弃则把最后一条用户消息当作当前请求。
  3. 核对并继续:确认当前目录与会话项目一致;若 git 分支已变化则记录并决定是否切换;检查与待办工作相关的文件,验证旧声明是否仍然成立;然后实现与最新用户请求一致的下一步具体操作,运行确定性验证(测试、类型检查、构建),若受阻则说明确切阻塞点并提出一个下一步操作。
  4. 报告:简要说明恢复了哪些上下文、执行了哪些工作、剩余哪些任务。

脚本采用压缩边界感知提取,找到会话 JSONL 中最后一个压缩边界并提取其摘要;并根据会话大小自适应选择读取策略(有压缩则读最后压缩摘要加压缩后全部消息;小于 500 KB 无压缩读最后 60% 消息;500 KB 至 5 MB 读最后 30%;大于 5 MB 读最后 15%)。

适用场景

  • 需要接续上一次 Claude Code 会话的工作。
  • 会话被中断(ctrl-c 或超时)后需要恢复。
  • 多智能体工作流被中断,需要知道哪些子智能体已完成、哪些需要重试。
  • 想在不重放完整会话记录的情况下恢复上下文。

示例触发语句:

  • "continue work from session abc123-..."
  • "don't resume, just read the .claude files and continue"
  • "check what I was working on in the last session and keep going"
  • "search my sessions for the PR review work"

限制

  • 无法恢复 .jsonl 文件已从 ~/.claude/projects/ 删除的会话。
  • 无法访问其他机器上的会话(文件仅限本地)。
  • 编辑工具操作显示的是增量而非完整文件内容,完整文件恢复需使用 claude-code-history-files-finder。
  • 压缩摘要是有损的,早期对话细节可能缺失。
  • sessions-index.json 可能过时(条目指向已删除文件),脚本会回退到基于文件系统的发现。

护栏

  • 不要运行 claude --resume 或 claude --continue——本技能在当前会话内提供上下文恢复。
  • 不要把压缩摘要当作完整事实——它们是有损的,务必对照当前工作区验证声明。
  • 不要覆盖无关的工作树更改。
  • 不要把完整会话文件加载进上下文——始终使用脚本。