Fable 循环
此技能负责编排 fable-method:请先阅读其 SKILL.md 文件;其中的规则指导着每个阶段。它与本技能并排安装(在本插件的 skills/fable-method/ 目录下,或手动安装时的 ~/.claude/skills/fable-method/ 目录中)。该方法规定要 检查什么;此循环规定由 谁 来完成工作:哪些在主线程中运行,哪些分发给子智能体,以及在交付前哪些需要被攻击。
先过门控。
对于根据方法中的平凡性门控判断为平凡的任务:直接执行,用最明显的检查进行验证,用两句话报告。无阶段,无子智能体。其他所有任务均按以下四个阶段顺序运行。
阶段 1 - 规划(第一个书挡)
- 应用方法的第 0-3 步:对需求进行分类,用指定的验证定义“完成”,陈述关键的假设。
- 证据扇出。 在 一条 消息中作为并行子智能体生成证据收集器,切勿顺序进行:
- 代码库问题:针对每个不同区域生成一个探索型智能体(“X 如何工作”,“Y 依赖什么”)。
- 库或事实问题:一个研究型智能体,用于获取最新文档或搜索网络。
- 每个子智能体返回带有引证的提炼后的发现,而不是原始文件转储。
- 预算为一批加一批后续;第三批需要陈述理由。
- 生成计划工件,格式如下:
- 分类
- 完成的定义及其验证方式
- 已发现的证据(附引证)
- 一个 推荐方法(替代方案各用一行简要说明驳回理由)
- 范围(工作将涉及的确切文件或模块)
- 风险和假设
- 执行清单
- 决策门控。
- 任务型且可逆:直接进入阶段 2,无需询问。
- 计划优先型(范围模糊、不可逆或对外部有影响的操作,或用户要求提供计划):展示计划工件并 停止 等待批准。
阶段 2 - 执行
- 在 主线程 中执行清单(如果工作环境提供了
todo工具,请使用它;完成一项就勾掉一项)。决策和编辑在主线程中进行;仅搜索和验证进行扇出。 - 每次编辑都遵循方法的第 4 步:在行为变更前通过意图门控,首次使用未打开内容前通过回忆门控,最小正确变更,精确编辑,绝不未经查看就销毁。
- 独立的机械化项(跨多个文件的相同更改、独立的文件生成)可扇出到并行子智能体,在一条消息中完成,如果它们可能触及相同文件,则使用工作树隔离。
- 执行中途出现意外情况时,按照方法第 2 步规则 7 处理:说明情况,然后更新计划或返回阶段 1。切勿强行让计划通过意外情况。
- 中途出现知识空白时暂停,而非猜测:一旦编辑需要依赖记忆中的事实(如签名、密钥、数值),立即停止该事项,按照方法的回忆门控规则扇出一个研究型子智能体,待其返回后再继续。
- 对外有影响的清单事项需遵守方法的授权门控:未获得用户明确授权,则不执行操作;该事项转换为报告中的下一步建议。
- 轮次预算检查点。 将长迭代限制在 ≤50 个代理轮次内;在每个限制点,编写一个检查点工件(已完成的内容、证据路径、确切的下一步行动),然后从中断处继续。最终验证绝不能成为轮次上限切断的步骤——在预算内进行验证,或将其明确列为待处理的检查点事项。
阶段 3 - 验证(对抗性)
-
自行执行指定的两项验证:观察完成标准(运行、渲染、计数),以及周边系统的健康状况(所触及区域的构建、测试、代码检查)。
-
对于有重大影响的更改,生成攻击者。 并行生成 1-3 个子智能体,每个从不同的角度被提示去 反驳 工作成果,例如:
- “阅读此差异并证明该更改是错误的或不完整的。”
- “运行时测试所更改的行为,找到一个能破坏它的输入。”
- “针对规范/文档检查此声明,找出矛盾之处。”
- “对比完整的更改集与计划声明的范围,证明有超出范围的内容被更改。”
不同的视角优于相同的审查者。
-
如果你自己的检查无法确定的发现,则返回阶段 2 作为新工作。根据方法设定硬性限制:对同一问题连续 3 次修复-验证失败,或出现任何超出你控制范围的阻塞项,则停止并将输出及你的假设交还给用户。
阶段 4 - 审计与报告(第二个书挡)
- 按照 fable-method 的审计模式进行自我审计:针对每个方法步骤,标记为已遵循、已跳过或伪造。修复一次通过即可修复的内容(通常是未经核实的声明:立即验证它,或将其重新标记为注意事项)。
- 按照方法第 6 步进行交付:第一句说明结果,展示验证证据,诚实地说明注意事项,仅在后续工作由当前工作衍生而来时才提出后续行动。报告中不得包含阶段名称或步骤编号;
INTENT和AUTH行是报告中可以包含的仅有的方法工件。
何时不使用此循环
- 平凡任务(门控会自动处理它们)。
- 没有多步骤工作的纯问题:直接使用 fable-method。
- 在已经编排好的 GSD 阶段内部:此时 GSD 负责阶段划分;在阶段内应用 fable-method 规则,而不是嵌套循环。
模型经济性
该循环与模型无关。证据和攻击者子智能体适用于成本效益更高的模型;将主线程(决策、编辑)保持在最强可用模型上,并且在有选择时,为攻击者分配比收集器更高的计算资源。
用法
/fable-loop <task> 运行完整编排循环