資料夾導覽 · 三層記憶 × 四層防線

一個人 × AI:
一套會自己擋下錯誤的專案管理系統

分工不是「AI負責寫、我負責看」,是AI產出、我設閘門與決策,閘門的正確歸宿不是文件裡的一條規則 —— 是一支會擋下來的機器檢查。

7 章正文13 份 templates6 段 prompts 單人開發無框架・無 build step

01 — 全景

兩個部分:AI 讀到什麼,以及誰來證明它是對的

上半是三層記憶(解決「agent 每次開新對話就失憶」), 下半是三個迴圈與四層防線(解決「它產出之後,誰來證明那是對的」)。 兩者由第三個迴圈接起來:每一次事故的產出,是記憶層裡多出來的一條規則、或多出來的一支機器檢查。

三層記憶 — AI 每次開新對話讀到的東西 規則層 判準・規則・索引 每次對話全文載入 ⇒ 最貴 記憶層 我是誰・拍板・否決 跟著人走,跨專案 任務層 排程・日誌・證據・手冊 一檔只答一個問題 ① 決策 我定義問題、選路、 承擔後果 ② 實作 AI 產出, 我設閘門 ③ 教訓 把一次痛, 變成永久攔截 定案 出事 產出=新規則/新守衛 L1 hook — 指令送出前就擋 L2 守衛 — 提交前,附覆蓋率 L3 演練 — 證明守衛真的會紅 L4 端到端 — 打真的環境 任一格紅 ⇒ 退回②,不算做完
四道閘門掛在②底下,任何一道紅燈都把工作推回②。 ③不是事後檢討會 —— 它的產出是三層記憶裡多出來的一條規則、或多出來的一支機器檢查, 所以同一型錯誤只會花你一次。

02 — 這個資料夾長什麼樣

28 個檔,分三組

正文回答「為什麼這樣設計」,templates/ 給你可直接複製的骨架, prompts/ 給你可直接貼的指令。只有 30 分鐘的話:讀 README 的〈三個核心概念〉→ 跳到 07 的「第 1 天」。

正文 · 7

依序讀。每一章都可以單獨讀懂,但 01 先讀比較省力。

  • README.md入口:它在解決什麼問題、三個核心概念、誠實邊界
  • 01-overview.md全貌:三層記憶 × 四層防線怎麼咬合,一次完整循環的細節圖
  • 02-rules-file.md規則層:規則檔怎麼寫、什麼該進什麼不該進、怎麼瘦身
  • 03-memory.md記憶層:五分類,與為什麼一定要有「作廢紀錄」
  • 04-task-files.md任務層:一檔只答一個問題,與「交付當下就登記」
  • 05-guards.md四層防線:含〈綠燈的可信度〉十條判準(價值密度最高的一章)
  • 06-daily-loop.md日常循環:從一句需求到交付登記,每步標出誰做、產出落在哪
  • 07-adopt.md怎麼採用:第 1 天 30 分鐘 / 第 1 週 / 第 1 個月,含常見問題
templates · 13

精簡到能立刻用的版本。角括號 <...> 是要你填的地方。

  • CLAUDE.md規則檔骨架,含體例說明與分流表
  • MEMORY.md記憶索引 + 五類記憶各一則範例(含 obsolete 作廢紀錄)
  • work.txt排程表:兩張索引 + 技術債 + 決策紀錄,一列一行
  • journal.txt日誌(append-only,按季凍結),附一則真實形狀的範例
  • evidence.txt證據帳本:每列都要有實測數字,附三個不合格的反例
  • POSTMORTEMS.md事故記錄,含三則完整範例(機器接住的/接不住的/規則失效的)
  • settings.jsonhook 掛載設定(三個事件),含 timeout 與路徑注意事項
  • hook_pre_bash.py指令送出前攔截,五條真實規則 + 每條都附反向案例
  • hook_post_edit.py檔案寫入後檢查,含 block 與 note 的分界
  • guard_example.py守衛骨架,PASS 必須印覆蓋率數字;前置條件不滿足=FAIL
  • guard_drill_example.py故障演練:注入 → 確認會紅 → try/finally 還原 → 逐位元組比對
  • SKILL.md把交付閘門包成一個可呼叫的 skill
  • README.md建議的落地順序(不要一天裝完)
prompts · 6

整段複製就能用。只做得了一件的話,做 03。

03 — 為什麼規則要往下推

整套系統唯一真正反直覺的地方

直覺會說「規則寫清楚一點就好了」。但規則正文是每一次對話都要付的成本, 而且它擋不住復發。

結論:貴的是正文,不是守衛。 在那個專案裡,規則正文從 555 行降到 341 行 —— 降下來的那 214 行不是被刪掉,是被推去 hook 和守衛了。
層誰執行每次對話的成本忘得掉嗎所以它該放什麼
hook執行環境 0(不觸發等於不存在) 不會 指令樣式、檔案事件、時間
守衛腳本我,提交前 1 行(原始碼不進上下文) 會忘記跑 「做完了也不會知道出錯」的事
規則正文AI,每次被動載入 行數 × 每一次對話 非常容易 只有機器接不住、必須靠判斷的
事故記錄需要時才讀 0— 症狀、結構性根因、現在誰接住它

可指認的反證:某條規則白紙黑字寫在規則檔裡,還是連續發作三次。 三次都不是不知道規則 —— 自動載入 ≠ 自動遵守。一條規則躺在 700 行裡,注意力份額趨近於零。 ⇒ 判準:同一條規則被違反第二次,就不要再改規則的寫法了,去問「機器怎麼接住它」。

04 — 踩到之後怎麼辦

事故的第一句,不可以是「我下次會小心」

那句話不可證偽,所以它擋不住第二次。要問的是結構原因: 為什麼這個系統讓人容易犯這個錯。然後由上往下分流,接不住才往下掉一層。

接得住 · 第一順位

指令樣式/檔案事件/時間

變成一條 hook。由執行環境跑,你想忘也忘不掉,不觸發時零成本。

必附反向案例

接得住 · 第二順位

「做完了也不會知道出錯」

變成一支 守衛。它的 PASS 必須附覆蓋率數字 —— 沒有數字的 PASS 只是「沒去看」。

必配一支故障演練

接不住

只能靠判斷的

才留在 規則正文裡。壓縮成「判準句 + 一行指標」,全文放別的地方。

最貴,所以最後才考慮

誠實記著

沒有人接得住

例如「需求本身就錯」。照實寫「沒有人」,不要硬塞一個接不住的守衛進去。

假的答案=下一次事故的形狀

誤報比漏報更危險。誤報會讓人乾脆把守衛關掉,然後你連漏報都不會知道。 真實案例:一條規則的正則寫得太粗,連續誤報六次 —— 它擋掉了偵測器自己的程式碼,也擋掉了正在解釋這條規則的文件。 ⇒ 判準:偵測「值」,不要偵測「描述值的樣式」。

05 — 怎麼開始

不要照抄這整套

它長成現在這樣,是因為那個專案踩了 17 次特定的坑。你的坑不一樣, 所以你的 hook 和守衛也應該不一樣。可以直接拿走的是三個結構: 三層記憶的分工、四層成本結構、教訓迴圈。

第 1 天 · 30 分鐘
建規則檔(只填專案概觀/常用指令/慣例,這時候不要寫規則 —— 你還不知道自己會踩什麼坑,現在寫的九成是猜的)、建任務檔、 裝第一個 hook(挑你這週已經犯過的那個錯)。
第 1 週
讓循環開始轉:動手前用 要計畫不要 code、 踩坑後用 事故轉守衛、 交付後用 交付登記。
第 2 週
寫第一支守衛。挑一件「做完了也不會知道出錯」的事 —— 文件宣稱的數字 vs 現算、某規則的覆蓋率、一份索引有沒有說謊、兩份必須一致的東西。
第 3 週
寫第一支演練,對守衛注入一次假故障。 很有可能第一次就會發現它根本沒在驗 —— 那正是這一層存在的理由。記得加反向案例。
第 4 週
第一次瘦身。逐段問:這是敘事嗎/進度嗎/操作步驟嗎/機器接得住嗎? 都不是才留下,而且壓縮成判準句。順手設一個行數上限,並讓守衛檢查它 —— 否則它一定會長回去。

06 — 誠實邊界

這套系統做不到的事

先講,比被發現好。