From 1616517acec986be48636d1f497dea60020b845f Mon Sep 17 00:00:00 2001 From: uncle6me-web Date: Sat, 15 Aug 2026 11:00:54 +0800 Subject: [PATCH] =?UTF-8?q?rules:=20=E7=AC=AC=E4=B8=80=E9=90=B5=E5=BE=8B?= =?UTF-8?q?=E5=BE=9E=E3=80=8C=E7=94=A8=20grep=E3=80=8D=E6=94=B9=E6=88=90?= =?UTF-8?q?=E3=80=8C=E7=85=A7=E7=B4=A2=E5=BC=95=E8=B5=B0=EF=BC=8Cgrep=20?= =?UTF-8?q?=E6=98=AF=E7=95=B0=E5=B8=B8=E8=A8=8A=E8=99=9F=E3=80=8D=EF=BC=88?= =?UTF-8?q?leo=202026-08-15=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit leo 當面點破:規則寫的是平面搜尋,而設計寫的是索引鏈(INDEX → cards//00-INDEX → 卡),兩者矛盾,AI 服從了寫得比較具體的那一份。 實測本 repo:system-dev/wiki/cards/ 有 64 張卡,只有 1 張走得到索引—— 那 1 張是 leo 手寫的 decisions/,其餘 63 張機器產的從沒加入任何索引。 而沒有人發現,因為 grep 找得到 ⇒ 破損永遠不會浮現。 不全面禁止 grep(索引壞掉那天 AI 會瞎掉且沒人知道),改成: 先照索引走 → 走不到就先把缺陷講出來 → 才准 fallback。 每次 grep 都該留下一筆索引缺陷,而不是變成習慣。 Co-Authored-By: Claude Opus 5 --- CLAUDE.md | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 8cdcc38..03cadd8 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -65,15 +65,26 @@ ## 🔴 第一鐵律:wiki 是判準,不准跳過(2026-07-20/21 leo 兩度點破) -**要查任何東西之前,先搜尋 wiki——用 grep,不是只讀開頭幾行。** +**要查任何東西之前,先照索引走:`system-dev/wiki/INDEX.md` → 下層 `00-INDEX.md` → 卡片。** + +🔴 **2026-08-15 leo 糾正:本條原本寫的是「用 grep」,那是錯的。** +grep 是平面搜尋,它繞過索引,於是**索引永遠不會被驗證、也永遠不會變準**—— +而 AI 又用「索引可能不準」當理由繼續 grep。這是自我實現的。 +實測那天:`matrix/arcrun` 的 wiki 有 64 張卡,**只有 1 張走得到索引** +(唯一那張是 leo 手寫的;63 張機器產的卡從沒加入任何索引), +而 AI 從沒發現——**因為 grep 找得到,破損就永遠不會浮現。** + +**grep 不是禁令,是異常訊號**: +1. 先照索引走 +2. 索引走不到 → **那是索引壞了,先講出來**(哪一層缺、缺什麼) +3. 講完才准 fallback 用 `grep -rin "<關鍵字>" system-dev/wiki/` + +⇒ 每一次 grep 都該留下一筆「索引缺陷」,而不是變成習慣。 +(全面禁止 grep 也是錯的——索引壞掉那天 AI 會瞎掉,而且沒人知道。) > leo:「花很多力氣去產生 wiki,最重要的就是要可以查詢,**結果要查的時候就跳過,那就白寫了**。」 > 「重點是你自己的記憶對嗎?而你有按照規定去切實讀 wiki 嗎?」 -```bash -grep -rin "<本題關鍵字>" system-dev/wiki/ -``` - **三條硬規則**: 1. **wiki 與程式碼/歷史文件衝突 → 以 wiki 為準**。程式碼反映「還沒清乾淨」,不等於「還在用」。 2. wiki 寫「不可動/待廢除/進行中」→ **讀它的解除條件並逐條核對**。那是當時狀態,不是永久禁令。