Claude Code 的行為底線
Fable Harness 是一套安裝到 Claude Code 全域設定的行為協議。README 將它描述為 hooks、skill 與子代理組成的小型 kit,會在每次 Claude Code session 中自動注入流程要求。
它不提供 sprint 管理或 CI pipeline。它要求 agent 在回答與改檔前執行 OODA:先觀察證據、定向假設、決定可驗證目標,再小步行動與驗證。
repo 的目的不是提升模型天生判斷力,而是把可重複執行的程序固定下來。重大結論須經三個反方子代理審查;改到功能邏輯時,報告需附自動化測試與 fail-then-pass 證據。
Observe
Orient
Decide
Act
Verify
Report
FABLE-PROTOCOL-V1-CANARY
先備份, 再增量合併
INSTALL.md 明確說明本 kit 不提供 one-click installer。先 clone repo,再讓 Claude Code 依照 INSTALL.md 安裝,因為安裝會修改全域 ~/.claude/settings.json 與全域 skill / agent 目錄。
git clone https://github.com/Miguok/fable-harness.git fable-harness
cd fable-harness
pwd交給 Claude Code 執行
在 clone 後的 repo 內開啟 Claude Code,輸入安裝指令。INSTALL.md 要求 Claude 先取得 repo absolute path、讀取並驗證全域 settings JSON、建立 timestamped backup,再用 temp file 與 atomic rename 寫入設定。
Install Fable Harness by following INSTALL.md.全域 hook 與檔案複製
安裝需把三個 hook command 指到 clone repo 內的腳本,並把 .claude/skills/adversarial-review/ 與三個 agents 複製到全域 ~/.claude。
SessionStart → /absolute/path/to/fable-harness/.claude/hooks/inject_protocol.sh
UserPromptSubmit → /absolute/path/to/fable-harness/.claude/hooks/prompt_nudge.sh
Stop → /absolute/path/to/fable-harness/.claude/hooks/verify_gate.py
Copy skill:
.claude/skills/adversarial-review/ → ~/.claude/skills/adversarial-review/
Copy agents:
.claude/agents/skeptic.md
.claude/agents/red-team.md
.claude/agents/simplifier.md安裝驗證
開啟全新的 Claude Code session,詢問 protocol codename。成功時,回覆應包含 FABLE-PROTOCOL-V1-CANARY。
Hooks、Skill 與三個反方
README 的 component table 將 Fable Harness 分成行為協議、每輪提醒、驗證 gate、多方抗辯 skill、三個 opposition agents、模型分工與治理文件。這些元件共同構成 Claude Code session 的流程約束。
Hook · 01
inject_protocol.sh
SessionStart 協議注入
SessionStart hook 讀取 fable_protocol.md,注入 FABLE-PROTOCOL,並寫入 marker 供 e2e 測試確認觸發。
Hook · 02
prompt_nudge.sh
每輪微提醒
UserPromptSubmit hook 注入一行提醒:先蒐證、亮假設、功能邏輯改動需 fail-then-pass 證據、重大結論先抗辯。
Hook · 03
verify_gate.py
Stop 驗證 gate
Stop hook 解析 transcript。若本輪改了程式碼檔卻未偵測到測試命令,輸出 block JSON 擋回一次;hook 自身故障時 fail-open。
Skill · 04
adversarial-review
多方抗辯
對架構決策、bug 根因、生產影響結論與安全判斷,平行派出 skeptic、red-team、simplifier 三個反方審查。
Agent · 05
skeptic.md
邏輯漏洞
抗辯流程中的反方鏡頭,專門尋找推理缺口、證據不足與結論跳躍。
Agent · 06
red-team.md
安全與失效風險
檢查安全風險、失效模式、生產事故與資料安全邊界。
Agent · 07
simplifier.md
過度工程刪減
尋找不必要抽象、可縮小範圍的實作與更簡單的決策路徑。
Routing · 08
CLAUDE.md
模型分工表
README 指出模型分工由 CLAUDE.md 管理:推理與裁決留給主迴圈,編碼與重構交給 Sonnet,搜尋與批次文字處理交給 Haiku。
Detector · 09
detect_harness.py
Harness 分流
只讀檢查專案是否已啟用 harnessmith、Superpowers 等專用開發 harness;若已啟用,Fable 退居流程底線。
Docs · 10
model_dispatch_rules.md
派工規則
定義 commander / worker 分工、派工包七欄、子代理回報格式、升級與降級規則。
Docs · 11
cognitive_rubrics.md
判斷力檢查表
用觸發條件規定何時放慢、何時問使用者、何時換方法與何時升級到更強推理。
Docs · 12
diagnostics / future_session_letter
故障模式與交接
README 將治理文件列為已知失效模式、子代理派工範本、降速規則與跨 session handoff notes。
元件與觸發對照
| 情境 | 觸發元件 | 可觀察結果 |
|---|---|---|
| 新 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 中何時蒐證、何時委派、何時抗辯、何時測試與何時停止。
OODA 每個任務必經
fable_protocol.md 要求 Observe、Orient、Decide、Act。回答前先搜尋或讀取實際檔案,明說假設,把任務改寫成可驗證目標,再小步修改與驗證。
來源 · .claude/hooks/fable_protocol.md
重大結論必跑三鏡頭抗辯
架構決策、bug 根因判定、生產影響結論與安全判斷,需平行派出 skeptic、red-team、simplifier。三鏡頭過半存活才可標示 confirmed。
來源 · adversarial-review/SKILL.md
每條獨立 finding 分開審
adversarial-review 規定多條 findings 不得打包成單一總結論。逐條各自抗辯,避免總結論稀釋單條 finding 的審查解析度。
來源 · adversarial-review/SKILL.md
派工包必有七欄
model_dispatch_rules.md 要求委派時包含 Goal、Scope、Non-goals、Allowed paths、Acceptance criteria、Report format、Stop conditions。缺任一欄為無效派工。
來源 · model_dispatch_rules.md
功能邏輯改動需要 fail-then-pass
Definition of Done 規定改到功能邏輯時,至少提供一個自動化測試與 fail-then-pass 證據。沒有證據時,只能回報「已修改、未驗證」。
來源 · .claude/hooks/fable_protocol.md
Verify gate 擋回後只有兩條路
cognitive_rubrics.md 規定被 verify gate 擋回時,補跑測試,或明確回報已修改未驗證。不得利用 gate 第二次放行的設計沉默結束。
來源 · cognitive_rubrics.md
第二次同方法失敗就換路
cognitive_rubrics.md 將同一方法連續失敗兩次列為換方法或升級的觸發條件。檔案不存在、API 簽名不同或結構不符時,回到 Observe 重蒐證。
來源 · cognitive_rubrics.md
已有專用 harness 時退居底線
protocol 規定若專案已明確啟用 harnessmith、Superpowers 等完整 SDLC harness,Fable 保留 OODA、範圍控制、安全、誠實回報、重大結論抗辯與證據要求,不重複接管主流程。
來源 · .claude/hooks/fable_protocol.md
安裝流程的安全檢查
以下例子示範一次合格的安裝對話。重點不是手動複製指令,而是讓 Claude Code 按照 INSTALL.md 的順序執行可驗證的檔案操作。
$ You ›
Install Fable Harness by following INSTALL.md.
claude: Claude ›
我會先讀 INSTALL.md,確認全域 settings 可解析,建立備份,再只做增量合併。
> pwd
> python3 -m json.tool ~/.claude/settings.json >/dev/null
ok: settings.json parsed
> cp ~/.claude/settings.json ~/.claude/backups/settings.json.bak_20260709-103000
ok: backup exists
claude: Claude ›
我會在 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: Claude ›
安裝後請開新 session 並詢問 protocol codename。
$ New session ›
What's your protocol codename?
ok: FABLE-PROTOCOL-V1-CANARY
Install Fable Harness by following INSTALL.md.
檢查點
通過狀態:settings JSON 可解析,backup 檔案存在,三個 hook 只增量加入,skill 與三個 agents 已複製,新 session 回覆 protocol codename。未通過狀態:settings 缺失或不可解析、backup 失敗、既有 hook 被改寫、目的地已存在但未詢問使用者。
此流程會修改全域 Claude Code 設定。遇到 symlink、junction、未知既有 hook 或 destination conflict 時,INSTALL.md 要求停止並回報。
全域 hook 的安全邊界
從安裝到協議維護
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:派工、降速與版本變更。
完成定義:改了功能邏輯,至少一個自動化測試與 fail-then-pass 證據。