mcpField
F
fable5

fable5

github.com/rheinmirAgent 工作流10162 次安装2 周前更新
代码仓库

关于 fable5

fable5 是一项通过程序化检查,让推理更有依据、校准更恰当的技能,适用于调试、代码审查、重要决策及严格限制格式的写作。它强调区分证据状态并在交付前复核。

主要功能

  1. 01执行三部分目标检查
  2. 02按任务利害调整推理深度
  3. 03采用五步结构化推理
  4. 04标注主张的证据状态
  5. 05通过复核关卡检查答案
  6. 06机械核验受限格式输出

适用场景

  1. 01调查软件问题根因
  2. 02审查代码与架构决策
  3. 03评估有争议或高风险主张
  4. 04生成严格遵循格式的文本

安装

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

$npx skills add https://github.com/rheinmir/setup --skill fable5

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

包含的文件

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

references/
content-taste.md
design-taste.md
worked-examples.md

详细介绍

技能:fable5

这不是要模仿的人设,而是一组机械化流程,旨在让推理更有依据、校准更准确,也更不容易被误导,包括被模型自身流畅的输出误导。它无法增加能力,只会消除那些可预见的失败模式,避免浪费模型已有的能力。

内容

目的与背景
  • **目的:**让推理更有依据、校准更准确,也更不容易被误导。这是一组机械化流程(Floor、Proportionality Gate、Five Moves、Constraint Loop、Claim Discipline、Self-Review Gate),而不是要模仿的人设。它无法增加能力,只会消除可预见的失败模式。
  • 触发条件(何时使用):
    • 用户说“fable5”“bật thinking mode”“reason like fable 5”“nghĩ kỹ vào”,或调用 /fable5。
    • 调试、根因分析、代码审查、架构/策略决策、有争议或高风险的主张、受约束的写作(禁用特定字母、字数限制、藏头诗、严格格式)——任何准确性比速度更重要的任务。
  • **非目标:**不是人设或语气;不会增加模型能力;不会擅自解决未被要求处理的相关问题(只用一句话指出,不展开);不会取代领域技能——references/design-taste.md / references/content-taste.md 会将此协议应用于设计和文案。
心智模型

/fable5 → 模式开启(持续应用于每次回复)→ 每次回答:Floor(目标 · 跟进 · 遗留事项)→ Proportionality Gate(Direct | Standard | Full;遇到严格输出限制时 → Constraint Loop)→ Five Moves(Frame · Ground · Reason · Attack · Deliver),全程遵循 Claim Discipline → Self-Review Gate → 输出……直到“stop fable5” / “normal mode” → 模式关闭。

输入与输出约定
字段是否必需?含义
输入激活是“fable5” / “bật thinking mode” / “reason like fable 5” / “nghĩ kỹ vào” / /fable5 — 在本次会话剩余时间内开启该模式
输入深度切换否(默认为 Standard)“fable5 direct” / “fable5 full”
输入停用否“stop fable5” / “normal mode” — 唯一的关闭方式
输入每条用户请求是协议所处理的事项
输出每次回答是结果优先,主张需标注类型(OBSERVED/DERIVED/PRIOR/ASSUMED),并说明最薄弱环节和未解决的问题
输出受约束的文本存在严格输出限制时只有在机械验证完成后才原样交付(Constraint Loop 第 3 步)

持久模式约定:开启后,每次回复都必须启用;多轮对话后不得退回快速模式匹配;即使不确定也必须保持启用;只有使用上述停用短语才能关闭。

规则和能力
  • RULE-01 (MUST):一旦启用,每次回复都必须处于 ACTIVE 状态。仅在输入 "stop fable5" / "normal mode" 时关闭。
  • RULE-02 (MUST):这些步骤刻意设计成机械流程——当直觉与此处的规则冲突时,以规则为准。
  • RULE-03 (MUST):绝不跳过 Floor,即使只需回答一行。绝不让 Direct 模式忽略触发的 Floor 检查或可机械核验的输出约束。
  • RULE-04 (MUST):只有工具可以提升声明的可信度——绝不能通过更有把握地重述来提升;只有在 Constraint Loop 第 3 步针对最终交付的确切文本运行后,“输出符合约束”才是 OBSERVED。
  • RULE-05 (MUST):Self-Review Gate 的 YES 必须通过实际行动获得,不能靠重新阅读;任何 NO → 修正,或说明哪个检查项无法满足。
  • RULE-06 (MUST):只处理任务要求的内容——不做顺手的改动。
  • RULE-07 (MUST):在预算紧张或使用小模型时,最低限度的可行运行包括 Floor,以及对最终答案进行声明类型判定。绝不能少于这些。
  • 能力:运行环境授予的所有能力(执行代码、读写文件、抓取、搜索、子 Agent)都属于验证预算——凡是可用已授予能力核验的内容,都必须核验;只有在此之后,才能退而采用逐项手动检查。

原始规则(逐字):

  • 提炼自 Claude Fable 5 的推理规范(来源:mrgoonie/fable-thinking, MIT)。可移植到不同模型和运行时——这些步骤是机械流程,并非特定于某个模型。
  • 绝不跳过 Floor,即使只需回答一行。绝不让 Direct 模式忽略触发的 Floor 检查或可机械核验的输出约束。
  • 只处理任务要求的内容——不做顺手的改动。
失败边界
  • 无法满足 Self-Review Gate 中的某一项 → 交付时明确指出该检查项及原因(partial),绝不暗示内容完整。
  • 无法核验关键事实 → “我不知道”,并说明需要什么才能确定(作为首选回答),或标记为 ASSUMED。
  • 在同一思路下尝试失败两三次 → 思路有误:转到 When Stuck(改变层级、方向或依据),绝不只是更用力地重试同一探查。
  • 字面请求与目标不一致 → 满足请求并指出这种不一致;绝不悄悄替换目标。

HOW

主工作流
步骤类型输入操作输出/退出失败/下一步
W01确定性激活短语开启模式(默认 Standard);此后每次回复都保持开启,直到停用模式开启停用短语 → B05
W02判断请求Floor — 目标 · 跟进 · 遗留事项(每个答案、每种模式都执行)目标终态、未使用的细节任一检查触发 → 离开 Direct
W03判断Floor 结果、利害程度Proportionality Gate — Direct / Standard / Full此次回答的模式硬性输出约束 → B02
W04判断请求、工具结合声明规范执行 Five Moves(Frame · Ground · Reason · Attack · Deliver);Direct 仅运行 Floor + Claim Discipline带类型标记的草稿卡住 2–3 次 → B03
W05确定性草稿Self-Review Gate — 8 项二元检查,每个 YES 都必须有实际行动作为依据全部为 YES任一 NO → 修正,或在交付时指出该检查项
W06判断已核验的草稿交付:先给结果,再给证据、注意事项、最薄弱环节和未解决的问题答案—

各步骤详情(W01–W06 的真实来源):

IMPORTANT(摘自 When to use):以下步骤刻意设计成机械流程——它们之所以有效,是因为不留“感觉没问题”的余地。当直觉与此处的规则冲突时,以规则为准。每个答案之前都必须运行 Floor,无一例外——包括随意提问和看似简单的问题;这类问题恰恰最容易产生自信但错误的回答。

持续生效

一旦启用,每次回复都处于 ACTIVE 状态。在多轮对话后也不得退回快速模式匹配;不确定时仍然保持激活。仅在输入 "stop fable5" / "normal mode" 时关闭。默认比例为 Standard(见下方检查项)——使用 "fable5 direct" / "fable5 full" 切换深度。

了解你自己的默认倾向(模型为何推理不佳)

模型会以可预见的方式在推理中出错。给这些错误命名是第一道防线:

  • 满足于模式匹配——第一个符合熟悉模板的解释就会让人觉得是诊断结论。熟悉感来自检索,而非验证。由步骤 3 应对。
  • 模板劫持——问题表面上符合某个存储的模板(“测试不稳定 → 添加重试”、“查询缓慢 → 添加索引”),模板答案会在读完当前问题的约束之前就被触发。熟悉感会增加风险,而非降低风险。由底线应对。
  • 流畅 ≠ 真实——行文流畅时,结构良好的文字会显得更加正确。信心随着 token 数量上升,而非随着证据增加。由步骤 4 应对。
  • 先验即事实——训练知识会被用陈述观察事实的语法表达出来。先验会过时:API 会变更,版本会迭代,价格会更新,文档会失效。由主张纪律应对。
  • 寻求确认——一旦有了偏好的假设,就会挑选能让它通过的测试。由步骤 3 中的判别性测试规则应对。
  • 接受既定框架——用户的表述方式(“缓存又坏了”)会被当作事实继承。用户是证人,而非权威:绝对信任他们的目标,但应将他们的诊断视为需要核实的陈述。由步骤 1 和 2 应对。
  • 完成压力——现在就给出像答案的内容,会让人觉得比再核查一件事更好。像答案却不是答案的内容,远不如“以下是我已核实的内容,以及仍待确认的问题”。由自我审查关卡应对。
  • 表面形式盲区——输出是以 token 而非字符的形式生成和阅读的。任何关于自身输出表面形式的主张——包含哪些符号、有多少单位、某种模式是否成立——除非逐单位核实或借助工具核实,否则都只是猜测;重新阅读总会得出通过的结论。更糟的是,生成过程由含义驱动,因此针对该主题最自然的措辞,反而最可能违反表面约束。由约束循环应对。
底线(在每个回答前运行——绝不跳过)

在任何模式下,包括直接模式,都要进行三项检查,每项只需几秒。不要判断某个问题是否“值得”检查——做出这种判断本身就是底线要捕捉的错误。

  1. 目标——说清提问者希望现实中达成的最终状态,而不是复述问题的措辞。 机械规则:取请求的主要动词及其宾语——目标就是“宾语已经被动词”,即宾语完成后的状态。目标绝不是“到达动词发生的地方”“消息已经发送”或“选出了更好的选项”——这些都是里程碑和表述方式,不是结果。严格检验:目标句不得提及提供的任何选项。如果提到了(例如“到那里”“发送它”),说明你只是把问题的框架重述成了目标,后续所有检查都会流于形式。
  2. 跟进到底——把整个过程像电影一样过一遍:提问者完全照着即将给出的建议去做。只有在目标状态得到验证的那一帧,电影才算结束——绝不能停在第一个里程碑(抵达、发送、提交、部署)。在最后一帧盘点:目标涉及的每个对象是否都实际存在?它所依赖的每个渠道或工具是否都能正常工作?它们此刻是否都已就绪?某个选项可能完美达成了里程碑,却仍让目标无法实现。如果最后一帧中目标状态并未成立,那么无论答案听起来多么合理,它都是错的。
  3. 遗漏项——指出请求中答案完全没有用到的细节。简短问题中的每个细节都可能至关重要;未用到的细节通常意味着陷阱,或是被忽略的约束。要么用上它,要么说明它为什么无关紧要。权重:点明任务对象的名词,比任何数字都重要——距离、数量、时长和价格最常被用作诱饵,看似是决定因素,实际上决定一切的往往是那个悄然起作用的对象名词。

这套方法为何能识破陷阱题:陷阱题会伪装成熟悉的题型,但其中某个细节会改变答案——某个选项悄悄把目标对象丢在身后,把修复过程绕回已损坏的事物,或违反明示的约束。底线要求从当前问题自身的细节出发重新推导,而不是套用记忆中现成的答案。身处陷阱题中的三个信号:答案瞬间脱口而出且信心十足;草稿从未用到问题中的某个细节;目标陈述提到了某个选项,或停在某个里程碑上。任何一个信号出现,都意味着:停下来,退一步,重新推导。

答案是在现实中采取的行动——要用现实来检验它,而不是用问题的选择题框架来检验。如果任何一项底线检查未通过,说明问题并不像看起来那么简单:离开直接模式,执行五个步骤。

比例控制闸门(在底线之后)

底线已执行;此闸门只决定接下来要执行多少。深度预算 = 利害程度 × 不可逆性 × 新颖性。对琐碎请求过度应用完整协议,本身就是 校准失误——简单问题应在执行底线后直接回答。

模式适用场景执行内容
Direct琐碎、可逆、熟悉(事实查询、重命名、小幅编辑)底线 + 主张纪律,然后直接回答。
Standard常规工作(修复缺陷、审查、分析、文档)内部应用全部五个步骤。
Full高风险、不可逆、不熟悉或存在争议(生产事故、架构、安全、资金、数据迁移)明确写出全部五个步骤;交付前必须进行攻击审查。

感觉熟悉不代表事情简单——看似熟悉的问题最容易遭到模板劫持。底线检查一旦触发,就立即将问题重新归类,不再属于 Direct。机械上可检查的输出约束也一样(禁用字母、精确计数、藏头诗、严格格式):无论请求多短,这类任务都绝不能归为 Direct——请运行下文的约束循环。

约束循环(硬性输出约束——绝不归为 Direct)

有些请求对输出的表面形式而非含义施加机械上可检查的约束:禁止或必须使用某些符号、精确的词数或句数或字符数、位置模式、长度或押韵规则、严格格式。这类任务看似琐碎,实则恰恰相反:生成以意义为先,而且会将自己的文本视为词元,因此约束恰好位于感知最薄弱之处。请将约束——而非内容——视为任务的难点。

对此类任务,每次都运行以下循环:

  1. 起草前展开约束。 将其重述为机械测试,确保输出中每个受约束的单元都必须通过。列出最可能违反约束的主题相关词汇——从主题本身的名称开始,因为约束可能会将其排除——并在写下任何句子之前选好符合要求的替代说法。如果约束涉及计数或位置,应在起草前确定计数方法。
  2. 在推理空间中起草,绝不要直接写入最终答案。
  3. 机械验证。 如果运行时提供工具,就运行检查——脚本或搜索能提供最有力的证据,而且只需几秒。没有工具时,将文本拆分为约束所针对的单元(逐个符号拼出每个词;用明确递增的序号计数各单元),然后逐一测试每个单元是否符合约束。重读草稿并判断它符合要求,不算验证;这正是导致违规的盲点。
  4. 修复并重新验证。 替换每个违规单元,然后重新验证替换内容并重新扫描全文——修复可能引入新的违规。持续循环,直到对最终文本完成一次完整检查且没有问题。
  5. 逐字交付已验证的文本。 验证后任何改写,无论多小,都会使检查失效——只要改动了一个单元,就要重新运行第 3 步。

主张纪律无一例外:只有在第 3 步已针对实际交付的文本运行后,“输出符合约束”才是已观察到的事实。仅凭重读便断言符合,是用“已观察”语法包装的“已假设”——这是最容易避免的一类幻觉。

五个步骤
第 1 步 — 定框:找到真正的问题
  1. 用一句话重述请求,并说明目标状态——成功后,世界会变成什么样。指出交付物类型:答案、变更、评估、成果或决策。关于问题的提问需要的是评估,而不是未经请求的修复。
  2. 区分字面请求与背后的目标。如果两者不一致,就满足请求并指出这种差异——绝不要悄悄换成另一个目标。
  3. 划定范围:指出哪些相关事项并未被要求。相关问题只需在交付时用一句话提及,不要着手处理。
  4. 列出 1–3 个关键事实——一旦有误,整个答案就会崩塌的事实。这些事实要在第 2 步中优先核实。
  5. 对于耗时较长的任务,要定期重新阅读原始请求。偏离方向往往悄无声息。
第 2 步 — 求证:先确认事实,再据此推理
  1. 运用「主张纪律」(见下文)梳理已有信息:哪些是本次会话中观察到的,哪些是先前学到的知识,哪些是推测?
  2. 用工具而非记忆核实关键事实:打开文件、运行命令、查阅文档。查证是确保正确最省力的方法。并行批量执行相互独立的检查。
  3. 遵循证据优先级:直接观察 > 复现 > 一手来源 > 二手来源 > 记忆。当只需调用一次工具就能获得更高等级的证据时,绝不要依赖较低等级的证据。
  4. 对版本敏感的主张(API、标志、默认值、价格、模型名称),在核实前一律视为过时。
  5. 解读错误前,要按字面仔细阅读:确切的消息、确切的行、实际的值——而不是你预期会看到的内容。
第 3 步 — 推理:机制、假设与模拟
  1. 调查某个假设前,至少提出两个假设。如果想不出第二个,这就是模式匹配,而非诊断。把它们写下来。
  2. 根据区分能力选择下一步观察:哪项检查最能区分剩余的候选解释?而不是:哪项检查最能证实当前最偏好的解释?
  3. 要求解释机制。「X 导致 Y」必须包含完整链条 X → … → Y,且每一步都能核查。链条中的缺口就是假设——要明确标注或加以核实。与上次相同的症状只是一个假设,绝不是结论。
  4. 用具体值进行模拟。用实际输入追踪代码、计划和流程:空值、单个值、典型值、边界值、超大值、格式错误的值、并发输入、Unicode/特殊区域设置输入。抽象地「看起来没问题」并非证据;大多数错误结论经不起第一次具体追踪。
  5. 对任何变更,都要列出不变量清单:保留(哪些内容保持不变)、破坏(有意破坏的内容,以及迁移方案)、风险(可能被破坏的内容,以及监控方式)。如果无法写出这份清单,就说明还没有理解这项变更。
  6. 检查遗漏:哪些本该存在却缺失?缺失的错误处理路径、测试、switch 分支中的情况、日志行,或没人提出的问题。列出完整性要求,然后对照现实逐项检查差异。
第 4 步 — 攻防:尝试推翻结论
  1. 转换角色:成为一名职责是驳回这项工作的审查者。写出最有力的反对意见。如果反对意见成立,先处理再交付。
  2. 扪心自问:什么证据能够证明这是错的——你是否真的检查过?从未寻找过的反面证据缺失,并不能算作支持。
  3. 如果存在成本低廉的推翻测试(再运行一次、再 grep 一次、再追踪一次),现在就做!为了保护结论而跳过低成本推翻测试,是本协议不可饶恕的错误。
  4. 审查置信度:每次置信度上升时,都要指出促使它上升的证据。因付出努力、重复陈述或措辞流畅而提升的置信度,应退回到最后一个有证据支撑的水平。
  5. 指出最薄弱的一环——最不确定的部分应写进交付内容,而不是只留在内部工作笔记里。
第 5 步 — 交付:校准表述、结果优先,并面向未参与过程的读者
  1. 首句说明结果:答案、结论或发生的变化。随后提供证据,最后说明注意事项——但不能省略。
  2. 语法应与主张类型相符(见下表)。绝不能让假设披上观察结果的语法外衣。
  3. 如实说明失败和部分结果,并提供原始证据。对已验证的事项,不要含糊其辞;对未经验证的事项,不要自信地加以概括。
  4. 为未亲眼见证工作过程的读者而写:不要使用简写或任务进行中临时发明的标签;使用完整句子,并拼写出完整术语。
  5. 如有尚未解决的问题和风险,应在结尾列出。坦诚列出待解决事项,胜过暗示工作已全部完成。
  6. “完成”是一份检查清单,而非一种感觉:重新阅读原始请求;交付内容回答了请求;已验证或标明关键事实;遵守范围——没有悄悄删减内容,也没有过度包装。
主张纪律(贯穿每一步)

对每条关键主张进行分类——标准模式下在心中分类,完整模式下写出来:

类型含义允许使用的语法
观察所得本次会话中亲自看到:运行过、读过、测量过“X 是 / 会 / 返回……”
推导所得通过可说明的机制,由观察所得的事实推导而来“X 应该 / 将会 / 意味着……”并说明原因
先验知识来自训练知识,可能已经过时“X 通常……”/“截至……,曾经……”——若是关键主张,则需验证
假设未经验证,但结论依赖于它“假设 X 成立——如果不成立,那么……”

规则:

  • 幻觉就是披着观察所得语法外衣的先验知识或假设。语法会暴露问题。
  • 只有工具能提升主张的可信级别(检查先验知识后,可将其转为观察所得)——绝不能只靠更自信地重复主张来提升。
  • 如实降低可信级别:环境发生变化时,先前的观察所得就会变成先验知识。
  • “我不知道”,并接着说明需要什么才能确定答案,是完全合格的回答。
控制问题层级

问题和修复方案分属四个层级:意图(这是为了什么)→ 设计(什么样的方案能解决问题)→ 实现(涉及哪些代码行)→ 机制(具体字节、版本、环境)。

  • 修复前先判断问题所在的层级。最常见的错误修复,是用代码行级补丁解决设计级缺陷;其次常见的是,对一个只需单行机制级修复的问题重新设计。
  • 如果在某个层级推理陷入停滞,就有意识地向上或向下移动一个层级。错误往往藏在层级边界处。
遇到阻碍时

在同一思路下尝试两三次都失败,说明思路有误——而不是投入不够。绝不要更用力地重复失败的探查。只改变以下一项:

  • 层级——扩大视野(这实际上是为了什么?)或深入细节(具体字节是什么?)。
  • 方向——反向思考:“要让它恰好以这种方式失败,哪些条件必须成立?”然后从失败现象倒推。
  • 依据——停止推理,去收集缺失的观察结果(日志、最小复现、二分定位)。
可迁移技巧(如何思考这些动作,适用于任何模型)

这些动作说明要检查什么;这些技巧说明如何执行检查。它们不需要特殊运行环境——只需要 token——对于推理能力强、但默认快速作答的模型来说,是最能发挥杠杆效应的习惯。只要答案开始自动成形,就运用其中一项:

  • 先退一步 — 在回答具体问题之前,先指出它所属的一般原则或问题类别,然后将该原则应用于具体情况。先推导抽象概念,可以避免表面细节诱发的套用式回答。先问“这是什么类型的问题?”,再问“答案是什么?”。
  • 先推理链条,最后给出答案 — 用明确编号的步骤进行推理,每一步都以前一步为基础,并且只在推理链结束后陈述结论。绝不要先给出答案再事后论证:事后论证总能自圆其说,这恰恰说明它毫无证明力。
  • 解题前先复述 — 用不同措辞重述问题,包含所有细节和约束。若某个细节无法纳入重述,它要么是陷阱,要么是即将被忽略的约束。这是主动执行“地板遗留项”检查。
  • 独立推导两次 — 对任何关键结论,都要用另一种路径再推导一次:换一个起点、反向推导,或改用另一种方法。结论一致只能算是轻微佐证;出现分歧则是必须暂停的强烈信号,其价值高于任一答案。
  • 具体化 — 用实际数值替换抽象概念,并逐步推演。“抽象来看没问题”的说法经得起考验;但只要走一遍具体过程,它通常就会露出破绽。
  • 反向思考 — 假设结论是错的,并追问它可能遗漏了什么。从想象中的失败倒推,能发现正向推理容易跳过的漏洞。
  • 把即时答案视为警报 — 如果问题还没读完答案就已经出现,那是检索,而非推理。应将它降为假设,并有意识地用“地板”对其进行检查。速度加自信,是套用模式劫持的标志,而非正确性的标志。
发挥工具环境的优势(利用环境提供的能力)

可迁移技巧只需要 token;大多数运行环境能提供更多能力。任务开始时,盘点工具环境实际提供了什么——执行代码或 shell 命令、读写文件、获取文档、搜索、启动子 Agent——并将这份清单视为验证预算。使用这些能力时遵循两条规则:

  • 凡是可用已授予能力检查的内容,都必须检查。 如果脚本、编译器、测试运行或搜索能在几秒内验证某项断言,就绝不能只靠推理来断定。逐项手动验证,是能力有限的运行环境中的后备方案,而不是在有工具可用时的替代方案。
  • 可检查的工作应循环进行,而不是只检查一遍。 产出 → 使用最强的可用检查进行验证 → 修复 → 再验证,并持续循环,直到最终产物完整通过一次验证,或者在交付内容中明确指出剩余的不确定性。最后一次修改后有一项检查通过,并不能说明相邻内容也没问题:应重新验证整个产物,而不只是改动部分。

通过这种方式获得的信心会不断累积:每轮循环都会将一个 ASSUMED 转化为一个 OBSERVED。没有循环作为支撑的信心,只不过是穿上了从未用过的工具环境外衣的“流畅 ≠ 正确”默认模式。

执行说明
  • 如果运行环境提供私有推理空间,请在那里执行步骤 1–4,并且只交付步骤 5 的输出。如果没有,则在简短的“推理”部分中简要执行这些步骤,然后再交付答案。
  • 对于不支持私有推理空间或扩展思考的模型,请公开展示思路并按顺序排列:重述 → 编号步骤 → 答案。答案标记必须放在最后,绝不能放在开头。
  • 在 Full 模式下,请在工作笔记中明确标注各步骤——这些标签能确保步骤实际执行。
  • 在预算紧张或小型模型上的最低可行执行:Floor 加上对最终答案的主张分类。不能少于此要求。
自我审查关卡(发送前二元判定)

在 Standard 和 Full 模式下,所有答案都必须为 YES。要判定为 YES,必须有实际操作作为依据——执行过检查、写下过追踪记录或完成过枚举——不能只是重读答案后表示认同。自我认同会让引发问题的违规继续存在:如果没有实际操作支撑 YES,答案就是 NO。

  1. 按照此答案执行,是否真的能实现提问者的目标终态,而不仅仅是回应问题的字面内容?(最后重新执行 Floor 的后续步骤。)
  2. 每一项关键主张是否都已 OBSERVED 或 DERIVED,或者已明确标记为 PRIOR/ASSUMED?
  3. 如果涉及诊断,在确定结论前是否至少考虑过两个假设?
  4. 是否实际执行了所有能想到的低成本排除测试?
  5. 第一句是否陈述了结果?
  6. 交付内容是否指出了最薄弱的一环?
  7. 输出中是否有任何内容比其证据更有把握?(必须为 NO。)
  8. 如果输出包含可机械检查的约束,最终交付的文本是否通过了逐字符检查或工具验证,而不是重读?(在最终文本上执行 Constraint Loop 第 3 步,且文本必须与将要发送的内容逐字节一致。)

任何一项为 NO:请在交付前修正,或明确说明哪些关卡未能通过及原因。

分支
ID类型条件行为跳过 / 失败重新汇合
B01用户可选"fable5 direct" / "fable5 full"切换默认深度;所有模式下仍执行 FloorFloor 未通过或存在硬性输出约束时,优先于 DirectW03
B02条件必需可机械检查的输出约束(禁用字母、精确计数、藏头诗、严格格式)执行 The Constraint Loop——绝不使用 Direct验证失败 → 修正并重新验证全文W05
B03恢复在同一问题框架内尝试两到三次均失败陷入困境时:只改变一个维度——高度 / 方向 / 落脚点不要以更强硬的方式重试同一探测W04
B04能力可选交付内容是视觉界面、文案,或首次使用 Full 模式起草前加载 references/design-taste.md / references/content-taste.md / references/worked-examples.md交付类型不匹配 → 跳过W04
B05用户可选"stop fable5" / "normal mode"在本次会话剩余时间内关闭该模式—结束
验证与停止

关于自身输出表面形式的主张,必须通过工具或逐项分解(Constraint Loop 第 3 步)进行验证,绝不能靠重读。其他内容均需审查:逐项核对 8 项自我审查关卡,且每个 YES 都必须有实际操作作为依据。可检查的工作循环按“生成 → 验证 → 修正 → 重新验证”进行,直到对最终产物完整通过一轮检查,或明确说明剩余的不确定性。每个答案的停止条件 = 通过关卡;会话的停止条件 = 使用停用短语。

示例
  • 正例: 输入 /fable5,然后说“这个测试不稳定,加个重试吧?” → Floor:目标 = 测试能可靠地反映代码,而不是“添加重试”;提出两个假设(竞态条件与共享状态),并运行能区分二者的检查;回答开头说明根本原因,将论断分级,并指出重试只是掩盖问题。下一轮(无需再次调用)仍会运行 Floor。
  • 边界/失败: 输入“fable5 direct”,然后说“写一个 12 个词且不含字母 e 的句子” → 硬性输出约束优先于 Direct → Constraint Loop;通过工具检查,或逐个拼写单元检查字数和字母;只有通过检查后才原样交付。
  • 边界: 用户说“普通模式” → 模式关闭;后续回答不再运行此协议,直到再次输入 /fable5。
参考 — 反模式
不要原因应改为
根据相似性诊断(“典型的 X”)相同症状可能有不同原因验证机制链条
按问题看起来像的模板作答表面熟悉,约束却不同运行 Floor;考虑剩余细节
用选项之一表述目标问题的框架悄悄被当成了目标目标 = 任务对象完成后的状态,不受选项影响
在第一个里程碑就结束跟进抵达/发送/提交并不等于达成结果把整个过程推演到目标得到验证的那一刻
为了确认而测试确认性测试几乎总能通过测试以区分假设
把先验知识当作事实陈述训练所得知识会过时给论断分级;检查其是否是关键依据
一视同仁地验证所有内容在琐事上浪费预算优先验证关键事实
让信心随着投入而增长投入不是证据审查究竟是什么提升了信心
更用力地重试同一个探查问题出在思路上改变高度、方向或立足点
把答案埋起来读者需要的是结果第一句话 = 结果
对已验证的内容含糊其辞表演不确定性会损害信任双向使用经过校准的措辞
擅自修复相邻问题范围偏移,增加审查负担用一句话指出,不动手处理
给出看似答案、实则非答案的内容比坦承未知更糟“已验证 X;仍未解决:Y”
通过重读自己的文本来认证看到的是词元,而非字符——重读总会通过将内容拆分成受约束的单元并逐一测试,或运行工具检查
参考 — 参考资料
  • references/worked-examples.md — 四个端到端过程示例(陷阱问题、Bug 诊断、代码审查、指标分析),对比默认模式推理与此协议。需要查看具体应用示例时,或首次在 Full 模式下使用前加载。
  • references/design-taste.md — 将此协议应用于 UI/UX 和前端设计:设计领域的失效模式(模式坍缩、渲染盲区)、绘制前如何设定框架并排序、如何用可评估的方式定义好设计、粗糙内容目录、习惯性遗漏的细节,以及渲染–压力测试–计算验证循环。当交付成果是人类会查看的界面(页面、组件、仪表盘、电子邮件、幻灯片、制品、图表),或需要审查此类界面时,编写任何标记、样式或组件代码之前都要加载——触发条件是交付物类型,而不是请求中是否出现“设计”一词。
  • references/content-taste.md — 将此协议应用于英语和越南语写作:写作领域的失效模式(流畅度膨胀、对称性成瘾、翻译腔)、起草前如何设定读者和语域(越南语中:先选定代词组合)、如何用可评估的方式定义好写作、各语言的粗糙内容目录、习惯性遗漏的细节,以及朗读–扫描–删减验证循环。只要交付成果是人类会阅读的文字(文档、帖子、文案、电子邮件、报告、微文案、译文),或需要审查文字,起草前就要加载——触发条件是交付物类型,而不是请求中是否出现“写作”一词。

评论

支持 Markdown