# KBDB-graph 抽出 — Tasks > 唯一進度來源,不靠對話記憶。完成即時更新。 > 狀態:[ ] 未開始 [🔄] 進行中 [x] 完成 [⏸] 卡住/待確認 --- ## R-EXT-1 確認邊界 - [x] 1.1 inventory:列出現有 actions/routes/migrations/contracts(2026-06-14 完成,見 design.md) - [x] 1.2 初步分類:插件 / 基本盤 / 灰色地帶(2026-06-14,見 design.md 邊界分類表) - [x] 1.3 灰色地帶 grep 調查:證實插件 action 層零耦合、耦合只在 DB 層;逐檔附證據歸屬(2026-06-14,見 design.md 灰色地帶結論)。⚠️ 0005/0007 歸屬與 HANDOFF 有出入,仍需與 arcrun 對齊(屬 1.4) - [x] 1.4a 讀 arcrun 端真身對齊(2026-06-14):**發現 arcrun/kbdb 還是 v2(entries,無 blocks/0005/0007/block-crud),且兩 repo 是不同 D1 庫**。v3 基本盤真身其實在本目錄。見 design.md「全局核對發現」 - [x] 1.4b 前置議題**總管已答覆**(leo 2026-06-14):→ `InkStoneCo/docs/3-specs/matrix-rearrange/DECISION-kbdb-v3-baseplane.md`。三問消解:基本盤已在 arcrun/kbdb 且設計正確、掛載走 API(非共用 D1)、插件零 migration。**阻擋解除。** - [x] 1.4c 不需移交/升級 arcrun——基本盤已正確。插件改寫成走 API 即可(見 R-EXT-4) - [ ] 1.5 裁剪 CLAUDE.md:移除基本盤規範,只留 graph 插件相關 - [ ] 1.6 清掉殘留:`blocks.ts.bak`、誤入 repo 的 `ruvector.db`(根 + src/routes/ 各一份)、`finally.click` 空檔、`.swarm` ## R-EXT-3 定義掛載介面(已定案 2026-06-14) - [x] 3.1 確認基本盤 API 契約(讀 arcrun/kbdb src,見 design.md「基本盤 API 契約」表) - [x] 3.2 掛載方式定案:**API-as-Wall**(HTTP API,非共用 D1、非 VIEW、非附加表)。圖在插件層記憶體組裝 - [x] 3.3 寫進 design.md 定稿(「掛載介面 = 基本盤 API」節) ## R-EXT-4 改寫成走 API(核心,2026-06-14 新增) > 鐵律:插件零建表、零 migration、零 SQL,只用 API/CLI/MCP。 - [ ] 4.1 寫 `src/lib/kbdb-client.ts`:封裝基本盤 HTTP API(entries/templates/records),指向 `KBDB_BASE_URL` env var。零 `.prepare` - [ ] 4.2 wrangler.toml:移除 D1/Vectorize 綁定(插件不碰 DB),加 `KBDB_BASE_URL` var(先留空) - [ ] 4.3 改寫 `triplet-crud`(拆 < 100 行):create/query/get/update/delete/stats → API - [ ] 4.4 改寫 `triplet-extract`/`triplet-entities`/`triplet-stats`/`triplet-update` → API - [ ] 4.5 改寫 `graph-{nodes,path,traverse}`:取 triplet records → 插件層組圖 - [ ] 4.6 改寫 `entity-{crud,normalize,graph-embed}`:template='entity' + records API;無 vectorize 時降級 exact - [ ] 4.7 改寫 `search-query`/`search-*`:`GET /entries/search`(keyword);語意搜尋標記待 embed 模組 - [ ] 4.8 刪違規 migrations(0001/0002/0005/0007 等含 CREATE TABLE)+ 清基本盤 action/route(block-*/entry-crud/record-crud/tag/profile/admin/...) - [ ] 4.9 改測試走 mock client;標記 base 缺口(PUT/DELETE record、vectorize)為 `[→arcrun]` ## R-EXT-2 獨立成 repo(最後做,依賴 1.4/1.5 完成) - [x] 2.1 GitHub 帳號 + repo 名:**leo 拍板 = 新 repo `uncle6me-web/kbdb-graph-plugin`**(2026-06-14) - [ ] 2.2 `git init` + `.gitignore`(排除 ruvector.db、.env、node_modules、.wrangler、*.bak) - [ ] 2.3 設 remote、首次 commit、推 GitHub(本 CC 自己推,不經總管) - [ ] 2.4 部署驗證:wrangler 直推 CF,確認不開 Actions --- ## 阻擋項彙整(更新 2026-06-14) 1. ✅ repo 已定:`uncle6me-web/kbdb-graph-plugin`(解除 2.1) 2. ✅ 灰色地帶已 grep 調查完,附證據建議(解除 1.3) 3. ⏸ **前置議題(讀 arcrun 後升級為主阻擋)**:arcrun/kbdb 還是 v2、與插件不同 D1 庫。三問待 leo/arcrun 定案: - (1) v3 基本盤(blocks/0005/0007/block-crud)由誰、怎麼進 arcrun?(arcrun 升 v3 vs 本目錄整理好再交) - (2) 掛載形態:共用同一 D1(需合庫)還是插件透過基本盤 **API** 取 block(不共用 D1)? - (3) `0005_universal_table` 歸基本盤(它定義 entry_values)——與 HANDOFF 列為插件矛盾,需 arcrun 確認。 ## 注意 - arcrun 端對應交棒:`arcrun docs/HANDOFF-matrix-rearrange.md §2`,移交基本盤前先與其對齊。 - 在 2.2 git init 前,本目錄無版控 → 搬檔用 `mv` 不是 `git mv`。