開場注入補一段:藏書地圖顯示 0 不等於庫是空的(2026-08-13) 由 subagent 產生、**待總管代套**(`.claude/` 是受保護目錄,子 session 動不了)。 套用: git apply scripts/patches/session-start-recall--map-zero-is-a-lie.patch 驗證(要看到那段文字): bash .claude/hooks/session-start-recall.sh | sed -n '/查不到就換一種查法/,/追蹤:/p' 已驗:`git apply --check` 通過、`bash -n` 通過、實跑印得出來(輸出見 Leo/mira#6)。 --- 為什麼要這段(2026-08-13 對 leo21c 唯讀實測)----------------------------- leo 原話:「現在你的 MCP 搜不到東西,這就是我急着要完成它的原因。沒有它你是瞎的。」 實測結果不是「搜尋壞了」,是**地圖說謊,而 AI 信了它就不再往下查**: kbdb_get_map() → 8 個庫,7 個 triplet_count = 0 kbdb_search(q="cypher-executor", mode="keyword") → 42 筆,來源正是那 7 個庫 (gitea:Leo/Arcrun@…、gitea:Leo/mira@… 等,library 全都標對了) 地圖數的是**三元組**;那 7 個庫有 entries 但沒有三元組 (`kbdb_query(template='triplet')` 抽樣 100 筆,source_uri 全部是 kb://,沒有一筆來自 gitea)。 ⇒ 開場注入把「七個庫是空的」推到每個 session 眼前,AI 於是不查了—— 而答案 keyword 一查就有。**這一段就是為了擋掉那個誤判。** 一併寫進注入文字的另外兩件實測(省得每個 session 自己撞): · 語意搜尋對超過一半的 repo wiki 內容是瞎的(那 42 筆裡 23 筆 is_embedded=0)。 問「Arcrun 是什麼 工作流引擎 Cloudflare」回 0 筆;同題 keyword 回 29 筆真答案。 · kbdb_graph_neighbors(subject="Arcrun") 回 0 個鄰居, 但 kbdb_get_map(library="kb") 列著 Arcrun degree 40 ⇒ 圖查詢是斷的。 🔴 這段是**暫時的路標,不是修法**。真修法在 Leo/Arcrun#87(三元組沒從 repo wiki 產生)、 Leo/Arcrun#85(embed 補算)、Leo/mira#6(Mira 主線)。 **那三張修好之後這段要拿掉**,否則它會變成下一個「看起來像現況的舊東西」。 --- a/.claude/hooks/session-start-recall.sh +++ b/.claude/hooks/session-start-recall.sh @@ -83,6 +83,31 @@ echo "════════════════════════════════════════════════" echo "" +# ── push 1.5/5:藏書地圖顯示 0 ≠ 庫是空的(2026-08-13 實測,暫時路標)──────── +# 修好 Leo/Arcrun#87(三元組沒從 repo wiki 產生)與 #85(一半沒 embed)之後, +# 這整段要拿掉。留著會變成下一個「看起來像現況的舊東西」。 +echo "────────────────────────────────────────────────" +echo "🔴 查不到就換一種查法——**藏書地圖顯示 0,不代表那個庫是空的**(2026-08-13 實測)" +echo "" +echo " 地圖數的是「三元組」。各 repo 的 wiki 有 entries、但**沒有三元組**," +echo " 所以 arcrun/mira/arcrun-rag/arcrun-harness/inkstoneco 等庫會顯示 0——**那是假的**。" +echo " 實測:kbdb_search(q=\"cypher-executor\", mode=\"keyword\") 回 42 筆,正是那些庫的卡片。" +echo "" +echo " ⇒ 三種查法現在的實際狀態:" +echo " · kbdb_search(mode=\"keyword\") ✅ 可用——**目前唯一可靠的一種,優先用它**" +echo " · kbdb_search(mode=\"semantic\") ◐ 對超過一半的 repo wiki 是瞎的(沒 embed)" +echo " 回 0 筆**不代表庫裡沒有**,改用 keyword 再問一次" +echo " · kbdb_graph_neighbors() ❌ 目前回 0 個鄰居,先別依賴它" +echo "" +echo " 🔴 **不要因為地圖是 0、或語意回 0,就下結論說「庫裡沒有這個」。**" +echo " 2026-08-13 就是這樣把 Arcrun 的定位講錯的——查得到,只是被告知不用查。" +echo "" +echo " 在修好之前,問「X 是什麼」的正確姿勢:" +echo " kbdb_search(q=\"X\", mode=\"keyword\") → 沒有再試 semantic → 都沒有才說沒有" +echo " 追蹤:Leo/Arcrun#87(地圖)|Leo/Arcrun#85(embed)|Leo/mira#6(Mira 主線)" +echo "────────────────────────────────────────────────" +echo "" + # ── push 2/5:各 repo 的 wiki 全景(leo 2026-08-12「一次看到全景」的另一半)── # 上面那段是**票**(雲端現算)+ KBDB 藏書地圖;這段是**各 repo 真正的 wiki**。 # 為什麼不塞進雲端那支工作流:工作流跑在 Cloudflare 上,要拿 repo 樹只有