Files
kbdb-graph-plugin/docs/3-specs/kbdb-graph-extraction/tasks.md
T
Leo efe8e165cf feat: KBDB-graph 插件獨立 — 全面改寫成走基本盤 API(API-as-Wall)
按 leo 鐵律(2026-06-14)把插件從「直接 SQL 操作基本盤表」改寫成
「只透過基本盤 arcrun/kbdb HTTP API 讀寫」。零建表、零 migration、零 SQL。

- 新增 src/lib/kbdb-client.ts:唯一對外通道,封裝 entries/templates/records API
- 新增 src/lib/templates.ts:triplet/entity template 定義(替代建表)
- 改寫 21 個違規 action(triplet/graph/entity/search)→ 走 client,圖在插件層記憶體組裝
- 移除所有 migrations、D1/Vectorize/AI 綁定;embedding/語意搜尋歸基本盤 optional 模組
- index.ts 只掛 triplets/graph/entities/search 路由;基本盤路由歸 arcrun/kbdb
- 測試改走 mock client(純 node);裁剪 CLAUDE.md 只留 graph 插件 + 鐵律
- 修正 SDD design.md「讀現狀推翻鐵律」的錯誤判斷(共用 D1 → API-as-Wall)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-14 20:59:41 +08:00

4.4 KiB
Raw Blame History

KBDB-graph 抽出 — Tasks

唯一進度來源,不靠對話記憶。完成即時更新。 狀態:[ ] 未開始 [🔄] 進行中 [x] 完成 [⏸] 卡住/待確認


R-EXT-1 確認邊界

  • 1.1 inventory:列出現有 actions/routes/migrations/contracts2026-06-14 完成,見 design.md
  • 1.2 初步分類:插件 / 基本盤 / 灰色地帶(2026-06-14,見 design.md 邊界分類表)
  • 1.3 灰色地帶 grep 調查:證實插件 action 層零耦合、耦合只在 DB 層;逐檔附證據歸屬(2026-06-14,見 design.md 灰色地帶結論)。⚠️ 0005/0007 歸屬與 HANDOFF 有出入,仍需與 arcrun 對齊(屬 1.4)
  • 1.4a 讀 arcrun 端真身對齊(2026-06-14):發現 arcrun/kbdb 還是 v2entries,無 blocks/0005/0007/block-crud),且兩 repo 是不同 D1 庫。v3 基本盤真身其實在本目錄。見 design.md「全局核對發現」
  • 1.4b 前置議題總管已答覆leo 2026-06-14):→ InkStoneCo/docs/3-specs/matrix-rearrange/DECISION-kbdb-v3-baseplane.md。三問消解:基本盤已在 arcrun/kbdb 且設計正確、掛載走 API(非共用 D1)、插件零 migration。阻擋解除。
  • 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)

  • 3.1 確認基本盤 API 契約(讀 arcrun/kbdb src,見 design.md「基本盤 API 契約」表)
  • 3.2 掛載方式定案:API-as-WallHTTP API,非共用 D1、非 VIEW、非附加表)。圖在插件層記憶體組裝
  • 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 APIentries/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 刪違規 migrations0001/0002/0005/0007 等含 CREATE TABLE+ 清基本盤 action/routeblock-*/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 完成)

  • 2.1 GitHub 帳號 + repo 名:leo 拍板 = 新 repo uncle6me-web/kbdb-graph-plugin2026-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