Fable Harness 是 Miguok 維護的 Claude Code 行為協議套件。它透過 hooks、adversarial-review skill、三個反方子代理與治理文件,要求 agent 先蒐證、明說假設、重大結論先抗辯、改功能邏輯時提出 fail-then-pass 測試證據。
Fable Harness 是一套安裝到 Claude Code 全域設定的行為協議。README 將它描述為 hooks、skill 與子代理組成的小型 kit,會在每次 Claude Code session 中自動注入流程要求。
它不提供 sprint 管理或 CI pipeline。它要求 agent 在回答與改檔前執行 OODA:先觀察證據、定向假設、決定可驗證目標,再小步行動與驗證。
repo 的目的不是提升模型天生判斷力,而是把可重複執行的程序固定下來。重大結論須經三個反方子代理審查;改到功能邏輯時,報告需附自動化測試與 fail-then-pass 證據。
INSTALL.md 明確說明本 kit 不提供 one-click installer。先 clone repo,再讓 Claude Code 依照 INSTALL.md 安裝,因為安裝會修改全域 ~/.claude/settings.json 與全域 skill / agent 目錄。
在 clone 後的 repo 內開啟 Claude Code,輸入安裝指令。INSTALL.md 要求 Claude 先取得 repo absolute path、讀取並驗證全域 settings JSON、建立 timestamped backup,再用 temp file 與 atomic rename 寫入設定。
安裝需把三個 hook command 指到 clone repo 內的腳本,並把 .claude/skills/adversarial-review/ 與三個 agents 複製到全域 ~/.claude。
開啟全新的 Claude Code session,詢問 protocol codename。成功時,回覆應包含 FABLE-PROTOCOL-V1-CANARY。
README 的 component table 將 Fable Harness 分成行為協議、每輪提醒、驗證 gate、多方抗辯 skill、三個 opposition agents、模型分工與治理文件。這些元件共同構成 Claude Code session 的流程約束。
fable_protocol.md,注入 FABLE-PROTOCOL,並寫入 marker 供 e2e 測試確認觸發。CLAUDE.md 管理:推理與裁決留給主迴圈,編碼與重構交給 Sonnet,搜尋與批次文字處理交給 Haiku。| 情境 | 觸發元件 | 可觀察結果 |
|---|---|---|
| 新 Claude Code session 啟動 | SessionStart → inject_protocol.sh |
session 內可回報 FABLE-PROTOCOL-V1-CANARY |
| 使用者送出每則 prompt | UserPromptSubmit → prompt_nudge.sh |
注入一行 OODA / DoD / 抗辯提醒 |
| 本輪改了程式碼但未跑測試 | Stop → verify_gate.py |
第一次結束時輸出 block JSON |
| 架構、根因、生產或安全結論 | adversarial-review |
三鏡頭 verdict 表與 confirmed / 擋回裁決 |
以下規則來自 repo 內的 protocol、skill 與 governance docs。它們定義 Claude Code session 中何時蒐證、何時委派、何時抗辯、何時測試與何時停止。
fable_protocol.md 要求 Observe、Orient、Decide、Act。回答前先搜尋或讀取實際檔案,明說假設,把任務改寫成可驗證目標,再小步修改與驗證。
架構決策、bug 根因判定、生產影響結論與安全判斷,需平行派出 skeptic、red-team、simplifier。三鏡頭過半存活才可標示 confirmed。
adversarial-review 規定多條 findings 不得打包成單一總結論。逐條各自抗辯,避免總結論稀釋單條 finding 的審查解析度。
來源 · adversarial-review/SKILL.mdmodel_dispatch_rules.md 要求委派時包含 Goal、Scope、Non-goals、Allowed paths、Acceptance criteria、Report format、Stop conditions。缺任一欄為無效派工。
Definition of Done 規定改到功能邏輯時,至少提供一個自動化測試與 fail-then-pass 證據。沒有證據時,只能回報「已修改、未驗證」。
來源 · .claude/hooks/fable_protocol.mdcognitive_rubrics.md 規定被 verify gate 擋回時,補跑測試,或明確回報已修改未驗證。不得利用 gate 第二次放行的設計沉默結束。
cognitive_rubrics.md 將同一方法連續失敗兩次列為換方法或升級的觸發條件。檔案不存在、API 簽名不同或結構不符時,回到 Observe 重蒐證。
protocol 規定若專案已明確啟用 harnessmith、Superpowers 等完整 SDLC harness,Fable 保留 OODA、範圍控制、安全、誠實回報、重大結論抗辯與證據要求,不重複接管主流程。
來源 · .claude/hooks/fable_protocol.md以下例子示範一次合格的安裝對話。重點不是手動複製指令,而是讓 Claude Code 按照 INSTALL.md 的順序執行可驗證的檔案操作。
hooks section append 三個 entries。既有 top-level keys 與既有 hooks 不會被刪除、重排或改寫。
$ rsync -a .claude/skills/adversarial-review/ ~/.claude/skills/adversarial-review/
$ cp .claude/agents/skeptic.md ~/.claude/agents/
$ cp .claude/agents/red-team.md ~/.claude/agents/
$ cp .claude/agents/simplifier.md ~/.claude/agents/
Claude ›
安裝後請開新 session 並詢問 protocol codename。
New session ›
What's your protocol codename?
FABLE-PROTOCOL-V1-CANARY
通過狀態:settings JSON 可解析,backup 檔案存在,三個 hook 只增量加入,skill 與三個 agents 已複製,新 session 回覆 protocol codename。未通過狀態:settings 缺失或不可解析、backup 失敗、既有 hook 被改寫、目的地已存在但未詢問使用者。
此流程會修改全域 Claude Code 設定。遇到 symlink、junction、未知既有 hook 或 destination conflict 時,INSTALL.md 要求停止並回報。
~/.claude/settings.json,且不可在設定缺失、空白或 JSON 解析失敗時自動建立新檔。
~/.claude/hooks、skills、agents 或 CLAUDE.md 指向外部 dotfiles repo,不得默默寫入。
verify_gate.py 第一次偵測到改 code 但未跑測試時會 block;第二次結束會放行,用途是避免 session 卡死,不是跳過驗證。
Fable Harness 的維護重點是保持全域 hook、skill、agents 與治理文件一致。變更 protocol contract 時,依 repo 的 semantic versioning 規則判斷 MAJOR、MINOR 或 PATCH。
1. 先跑安裝驗證。新 session 詢問 protocol codename,確認 FABLE-PROTOCOL-V1-CANARY 已注入。
2. 用 adversarial-review 校準重大結論。對架構、根因、生產與安全判斷,按 skill 要求整理待審包並同一則訊息平行派出三個反方。
3. 檢查 verify gate 測試契約。CHANGELOG 顯示 v1.0.1 修正了 --test 自測入口辨識。修改 gate 前先讀 tests/test_verify_gate.py。
4. 用 dispatch packet 限制子代理範圍。每次委派補齊七欄,尤其是 Allowed paths、Acceptance criteria 與 Stop conditions。
5. 遇到既有 harness 時改成底線模式。若專案已有 harnessmith 或 Superpowers 類流程,Fable 只保留 OODA、證據、範圍控制與重大結論抗辯。
① README.zh-TW.md:繁體中文概念、元件表與版本規則。
② INSTALL.md:全域設定備份、hook 合併、skill / agent 複製與 uninstall。
③ fable_protocol.md:OODA、多方抗辯、回報紀律、DoD、模型分工與 harness 分流。
④ adversarial-review/SKILL.md:三鏡頭抗辯流程與裁決規則。
⑤ model_dispatch_rules.md、cognitive_rubrics.md、CHANGELOG.md:派工、降速與版本變更。