mcpField
F
fable-handoff

fable-handoff

github.com/immamdouhaboammarAgent 工作流355 次安装1 周前更新
代码仓库

关于 fable-handoff

fable-handoff 是用于暂停或转交工程任务时保留可执行上下文的技能。它记录已验证事实、待解问题、阻碍和有依据的下一步,使工作无需重读对话即可继续。

主要功能

  1. 01记录任务与仓库状态
  2. 02区分事实、决策和假设
  3. 03追踪证据时效与失败尝试
  4. 04标明阻碍并保护无关变更
  5. 05指定一个安全的下一步

适用场景

  1. 01将未完成任务转交给其他 Agent
  2. 02跨会话暂停并恢复工作
  3. 03记录失败尝试及待验证假设
  4. 04为进行中的发布或审查建立检查点

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/immamdouhaboammar/get-fable --skill fable-handoff

安装后在 Claude Code 中输入/fable-handoff确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

skill.package.json
agents/
openai.yaml
evals/
scenarios.json
examples/
cross-session-handoff.md
references/
continuity-schema.md
resumability-and-context-compaction.md
templates/
handoff-state.template.md

详细介绍

Fable 交接

留下足够且经过核实的上下文,让其他 Agent 无需重放整段对话或重新摸索代码库,就能继续工作。

使命

交接不是摘要,而是一份续接契约。

接手的 Agent 应清楚了解用户提出了什么要求、实际做了哪些更改、哪些说法有证据支持、哪些证据已过时或缺失、当前有哪些阻碍,以及接下来最安全的第一步是什么。

适用场景

  • 暂停一项耗时较长的任务;
  • 将工作移交给另一个 Agent、人员或会话;
  • 上下文过多,需要进行持久化压缩;
  • 发布或 PR 尚未完成,但必须停止执行;
  • 自动化或协作循环需要持久化检查点。

不适用场景

  • 除了一个简单且已完成的轮次,没有值得持久化保留的信息;
  • 由于规划或诊断尚未完成,下一步行动本身仍不明确;
  • 交接会被用来掩盖缺少验证或尚未解决的失败。

连续性分类

状态交接重点
已干净完成的卡片具体证据 + 下一张卡片
工作区有未提交更改已负责的更改与无关更改 + 安全的续接点
尝试失败复现步骤、已尝试的方案、修订后及尚存的假设
等待评审差异/基线、发现的问题、验证状态
等待发布候选 SHA/版本、各渠道状态、外部阻碍
等待研究/探索实测事实、尚未解决且影响决策的问题
等待委派工作工作人员责任归属、已返回/缺失的数据包

协议

阶段 1 — 重建持久化任务

用一句简洁的话记录用户最初/当前希望达成的结果。将其与之后发现的实现策略分开。

阶段 2 — 精确记录代码库/工作状态快照

在可获取时,记录:

  • 分支/工作区和候选提交 SHA;
  • 当前卡片/阶段;
  • 有意修改的文件/界面;
  • 必须保留的无关用户更改;
  • 有意不提交的生成产物/状态文件;
  • 未关闭的 PR、问题、发布版本或标签标识符。
阶段 3 — 区分事实、决策与猜测

分别记录:

  • 实测事实:观察到的代码库/运行时/提供方证据;
  • 决策:选定的架构/契约及其原因;
  • 推断:合理但尚未证实的判断;
  • 已否决的假设:避免重复无效推理;
  • 未解决的问题:仅记录会影响下一步行动的问题。
阶段 4 — 记录证据及其时效性

为每条重要说法记录:

  • 命令/探测/来源;
  • 结果;
  • 相关变更/提交/产物;
  • 状态为最新、过时或未检查。

绝不要把 NOT_CHECKED 写成听起来像是已通过的描述。

阶段 5 — 记录失败和已尝试的修复

仅记录能让接手者有所收获的尝试。说明尝试了什么、结果如何,以及这如何改变或未能改变原有假设。

阶段 6 — 明确说明阻碍

阻碍必须说明缺少哪项外部事实/权限/环境,以及解决后能开展什么工作。

错误示例:CI 问题

正确示例:GitHub 依赖项审查失败,因为仓库已禁用依赖关系图;代码/安全扫描本身并未报告依赖项漏洞。

阶段 7 — 给出一个安全的下一步行动

第一步行动应可直接执行,并有当前证据作为依据。如果有多个独立行动,请先指出主要行动,再列出其他行动。

阶段 8 — 清理敏感信息

不要复制机密、令牌、私钥、原始凭据、不必要的个人数据或冗长日志。应说明使用安全凭据机制,而不是记录凭据值。

决策规则

  • 优先使用精确标识符(分支、SHA、PR、文件路径、命令),而不是叙述性描述。
  • 保留否定性结论:已被证伪的理论可以避免重复浪费。
  • 证据的新鲜度必须在上下文压缩后仍然明确;不能把旧的通过测试概括为当前测试通过。
  • 如果工作区有未提交更改,请区分本任务的更改与无关更改/用户自己的更改。
  • 如果下一步取决于尚未解决的决策,应先转交规划/恢复流程,而不是臆造交接操作。
  • 对话历史只是可选上下文;交接内容必须能够独立理解。
  • 如果错误特征、命令和关键行已足够,就不要复制完整日志。

不变原则

  • 交接内容如实说明已证实和未证实的事项。
  • 接手的 Agent 无需猜测名称、分支或文件,就能定位确切工作。
  • 绝不在交接内容中保存机密。
  • 明确保护与任务无关的用户更改。
  • 下一步操作不能暗中依赖交接内容中未提供的上下文。

失败类型

叙述倾倒

聊天过程太多,可执行状态太少。应围绕任务/状态/证据/下一步操作重新组织。

新鲜度失实

将旧证据概括为当前证据。附上变更/SHA/制品上下文,并降低过期证据的可信度。

上下文匮乏

接手者必须重新发现架构,或弄清某项决策的原因。补充最精简但关键的证据/决策理由。

机密泄露

凭据出现在摘要/日志中。删除凭据值,只引用安全来源。

归属不明

列出有未提交更改的文件,却未说明哪些属于任务/用户/其他工作。交接前应先明确归属。

虚假结项

外部门禁/评审/提供方证据缺失时,交接内容却声称“已完成”。应明确标记待处理/阻塞状态。

反模式

  • 复制整个对话;
  • 倾倒终端输出却不作解读;
  • 省略失败尝试,导致下一位 Agent 重复尝试;
  • 不说明提交/变更的新鲜度就声称“测试通过”;
  • 因为“下一位 Agent 会需要”而保存令牌;
  • 使用“继续修复”之类含糊的下一步;
  • 丢失会实质影响实现的用户约束/偏好;
  • 仅凭已准备好的制品就声称已发布/已公开。

交接包

Goal:
Current branch/worktree/SHA:
Active phase/card:
Intentional changes:
Protected unrelated changes:
Measured facts:
Decisions + rationale:
Rejected hypotheses / failed attempts:
Evidence:
- claim → command/source → result → fresh/stale/not checked
Open findings/blockers:
External states (PR/CI/release/registry):
Primary next safe action:
Secondary independent actions:
Do not repeat / do not change:

完成标准

当零上下文的接手 Agent 能够:

  • 确认具体任务和仓库状态;
  • 区分事实/决策/推断;
  • 知道哪些证据是最新的;
  • 避免重复已被证伪的尝试;
  • 安全地保护无关工作和凭据;
  • 无需询问缺失的基本上下文即可执行下一步操作;

则交接即为完整。

进阶资源

  • 深入指南:references/resumability-and-context-compaction.md
  • 现有架构:references/continuity-schema.md
  • 模板:templates/handoff-state.template.md
  • 示例:examples/cross-session-handoff.md

评论

支持 Markdown