rules: 第一鐵律從「用 grep」改成「照索引走,grep 是異常訊號」(leo 2026-08-15)

leo 當面點破:規則寫的是平面搜尋,而設計寫的是索引鏈(INDEX → cards/<bucket>/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 <noreply@anthropic.com>
This commit is contained in:
uncle6me-web
2026-08-15 11:00:54 +08:00
parent 7dc3e615e9
commit 1616517ace
+16 -5
View File
@@ -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 寫「不可動/待廢除/進行中」→ **讀它的解除條件並逐條核對**。那是當時狀態,不是永久禁令。