RCF-025 — Drive 目錄補完 + 整理知識庫 SKILL Step 4 掃描方法升規
類型:SKILL 日期:2026-04-28 觸發條件:條件 4 — 修改現有 SKILL(整理知識庫.md)核心執行步驟 相關文件:
.claude/skills/整理知識庫.md(Step 4 核心執行方法修改)knowledge/drive-inventory.md(新建)knowledge/gdrive-index.md(Drive 節移除,改 pointer)knowledge/CLAUDE.md(文件索引 +drive-inventory.md)
問題背景
整理知識庫 SKILL 首次執行(2026-04-28)時,Step 4 的執行方式為「呼叫 Drive MCP → 掃描根目錄 → 列出子資料夾」,但未指定具體掃描工具或方法。
執行時 Claude 選擇使用 list_recent_files,但此工具只回傳「最近被存取」的檔案,對於長時間未被修改的穩定資料夾(如 01_方法論、02_交付模板 等建立後未動的資料夾)完全不回傳,造成 12 個資料夾只掃到 5 個的系統性漏掃。
Tim 發現:本次稽核目標是確認「有沒有我自己放進去而不是透過你去放的」,但漏掃 7 個資料夾代表 Tim 自行放入的 06_電子書(7 個電子書文件,2026-04-26)、03_問卷(8 個捷徑,2026-04-24)等都沒被發現。
同時發現另一個架構問題:knowledge/gdrive-index.md 被腳本 scripts/index-gdrive-knowledge.py 管理,每次執行時完整覆寫,但 gdrive-index.md 裡有手動新增的「Google Drive 09_參考資料」節,下次腳本執行時會被刪除。
考慮過的方案
| 方案 | 描述 | 優點 | 缺點 | 採用? |
|---|---|---|---|---|
| 方案 A | 繼續用 list_recent_files,要求一次回傳更多結果 |
簡單 | 根本問題是 list_recent_files 按存取時間過濾,設計上就不回傳穩定資料夾 | ❌ |
| 方案 B | 用 get_file_metadata 逐一取得已知的 12 個 folder ID 的內容 |
精準 | folder ID 需要預先知道;不能自動偵測新增的資料夾 | ❌ |
| 方案 C | 用 search_files title= 搜尋固定的 12 個資料夾名稱 |
結構性、可重複;不依賴存取時間;新資料夾只要補入清單即可 | 需要預先知道資料夾名稱;但資料夾名稱固定(不常變動) | ✅ 採用 |
| 方案 D(Drive 節搬移) | 在 gdrive-index.md 保留 Drive 節,每次腳本執行後手動補回 | 不改架構 | 容易被忘記補回;高維護負擔 | ❌ |
| 方案 E(Drive 節搬移) | 新建 drive-inventory.md 專門記錄 Drive 內容,gdrive-index.md 只保本機 PDF |
職責清晰;腳本不會碰 drive-inventory.md | 需要建立新文件,多一個維護點 | ✅ 採用 |
最終決策
掃描方法:改為 search_files title= 逐一搜尋 12 個固定資料夾名稱(方案 C)。
- 為什麼選 C 不選 B:B 需要預先知道 folder ID,而 title= 搜尋不需要,且更易讀、更易維護
- 為什麼選 C 不選 A:A 的根本問題不是參數而是工具設計,
list_recent_files按 recency 排序,穩定資料夾永遠不會出現
Drive 目錄架構:建立獨立的 drive-inventory.md(方案 E)。
- 為什麼不選 D:維護負擔高,且每次腳本執行後需手動補回,容易遺漏
- drive-inventory.md 只有 Claude 手動維護(整理知識庫 SKILL Step 4 負責更新),腳本永遠不碰
影響範圍
| 影響類型 | 具體項目 |
|---|---|
| 新增文件 | knowledge/drive-inventory.md(12 資料夾完整目錄,2026-04-28 首次建立) |
| 修改文件 | .claude/skills/整理知識庫.md:Step 4 核心執行方法從「掃根目錄」改為「12 資料夾 title= 搜尋」;比對對象從 gdrive-index.md 改為 drive-inventory.md |
| 修改文件 | knowledge/gdrive-index.md:移除手動 Google Drive 09_參考資料節,改為指向 drive-inventory.md 的 pointer |
| 修改文件 | knowledge/CLAUDE.md:文件索引新增 drive-inventory.md 行;最近修改記錄新增 2026-04-28 條目 |
| 觸發部門同步 | 無(修改範圍在 knowledge/ 和 SKILL,未修改任何 HARD STOP) |
| 影響的 SKILL | 整理知識庫(整理知識庫.md) |
驗證方式
下次執行「整理知識庫」時,Step 4 應:
- 讀取
knowledge/drive-inventory.md作為比對基準 - 逐一呼叫
search_files title='01_方法論'、search_files title='02_交付模板'... 直到所有 12 個資料夾 - 若有「Drive 有但 drive-inventory.md 未記錄」的項目 → 標為⚠️ 未登記
- 確認 drive-inventory.md 內容未因腳本執行而被覆寫(腳本只寫 gdrive-index.md)