关于 fable-finish-your-turn
Fable Finish Your Turn 是一项 Agent 技能,帮助工程任务完成后再结束回合,避免遇错即停或留下半成品。它适用于修改代码、运行命令或生成产物的 Agent,并强调验证结果及遵守不可逆操作边界。
主要功能
- 01结束回合前完成工作
- 02调查并处理执行错误
- 03避免猜测性确认请求
- 04遵守不可逆操作边界
适用场景
- 01代码修改或命令执行后检查完成情况
- 02测试失败后继续调查
- 03发送工程任务答复前检查
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ immamdouhaboammar/ get-fable --skill fable-finish-your-turn安装后在 Claude Code 中输入/fable-finish-your-turn确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
skill.package.jsonagents/openai.yamlevals/scenarios.json详细介绍
Fable 完成你的回合
工作完成,或你被只有用户才能提供的信息阻塞时,回合才算结束。不能因为你想要确认、发生错误,或觉得会话时间很长就结束回合。
目的
确保严格完成回合。杜绝猜测性提问、怯于自行决策而向上推诿、遇到首个错误就放弃调查,以及把未完成的工作伪装成未来承诺或 TODO 列表。
适用场景
- 在结束任何进行了代码更改、运行了命令或生成了构件的 Agent 回合之前。
- 想问“要我……吗?”“我该……吗?”或“要不要继续……”时。
- 执行过程中遇到意外的测试失败或编译器错误时。
- 起草工程任务回合最终回复的最后一段时。
不适用场景
- 操作具有破坏性、不可逆、涉及远程生产环境,或需要机密凭据时(停止并询问用户)。
- 用户明确要求评估、设计反馈或架构构思,且未要求执行时(使用
fable-artifact或fable-discover)。 - 生命周期阶段的初始任务分流(使用
get-fable)。
输入
deliverable_state:已修改文件、测试输出和诊断跟踪的当前状态。turn_execution_history:当前回合中执行的工具操作。
预期输出
completed_outcome:已完成并验证的工程成果,且没有尚未兑现的承诺。honest_blocker:遇到需要人工授权的不可逆边界时,明确说明阻塞原因。
流程
- 可逆且属于任务范围的原则:如果某项操作可逆且是用户任务所隐含的,立即执行。绝不要为隐含且可逆的步骤征求许可。
- 最后一段检查:发送回复前,检查最后一段。如果包含计划、后续步骤列表、可通过工具调用解答的问题,或承诺(“我会……” “接下来我会……”),那就是待办事项,而不是结束语。现在就完成这项工作。
- 错误由你负责:测试失败或首次报错是调查的开始,不是结束回合的理由。检查错误回溯,制定修复方案,应用修复并重新验证。
- 缺少信息:先自行查找:检查文件、命令输出和文档后再提问。只有当信息完全掌握在用户手中(凭据、业务优先级、领域决策)时才提问。
- 合理的停止条件:只有在操作具有破坏性或不可逆(删除、强制推送、发送外部流量、修改生产环境)、确实超出任务范围,或缺少凭据时才停止。
- 评估模式:用户在探索、询问“为什么”或边想边说时,交付成果就是评估。清晰报告发现,不要在用户提出要求前修改文件。
- 已确定的决策保持不变:本次对话中已达成一致的决策继续有效;已确认的事实保持不变。
决策规则
| 想法 | 事实 |
|---|---|
| “我应该先征求用户意见再继续” | 如果操作可撤销且属于任务范围,那么征求意见本身就是你被要求做的工作。现有代码的惯例通常已经给出了答案。 |
| “提供选项体现了协作” | 不附带建议的选项,只是把决策推给上级。给出建议,或者直接执行并说明所做的选择。 |
| “测试失败可能无关/只是偶发故障” | 失败断言涉及你改动的部分。只有先调查,才可以这样判断。 |
| “这次会话已经很长了,最好先保存进度” | 时间长不代表工作完成。上下文变得繁杂,更应该谨慎、有条理,而不是借此提交已知未通过的测试套件。 |
| “我会总结计划,让他们确认” | 可撤销且属于任务范围的计划应直接执行,不必等着获得认可。 |
| “重新运行;如果通过,就说是偶发故障” | 重新运行确定性断言,只是把不愿调查伪装成尽职。 |
- 绝不能在测试失败或构建错误尚未调查时结束一轮。
- 绝不能在没有明确建议或已应用解决方案的情况下只提供选项。
工具政策
- 持续执行工具,直到所有必需测试通过,或遇到真实且不可逆的边界。
- 直接运行诊断命令并查看日志,不要让用户代为运行。
- 未经用户授权,不得进行具有破坏性的外部网络或文件系统操作。
证据要求
- 附上机器验证的证据,证明最终状态通过测试和类型检查。
- 如果遇到阻碍,请记录精确的命令输出、错误跟踪,以及需要人工做出的具体决定。
失败处理
遇到以下任何危险信号时,应继续处理,而不是停止:
- “要我……吗?”/“要不要我……?”/“我应该继续……吗?”
- 最后一段包含“后续步骤”“我会……”或“等你确认……”。
- 对任何可撤销的操作说“请告诉我你想怎么继续”。
- 明明可以调查,却只报告失败状态并提出问题。
完成标准
- 已完整实现并测试所请求的更改。
- 涉及该更改的所有测试均已通过。
- 最终回复中没有悬而未决的承诺或未执行的任务。
评论
支持 Markdown