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>
This commit is contained in:
2026-06-14 20:59:41 +08:00
commit efe8e165cf
62 changed files with 7671 additions and 0 deletions
+77
View File
@@ -0,0 +1,77 @@
# /wiki-init — 初始化或接入 LLM Wiki 系統
初始化這個專案的 LLM Wiki 記憶系統。
新專案建立空白結構,已有專案掃描現有文件並建立 wiki。
---
## 執行流程
### 第一步:偵測專案狀態
檢查以下項目,判斷是新專案還是已有專案:
- 根目錄有沒有 `.claude/wiki/`
- 根目錄有沒有 `docs/`
- 有沒有散落的 `.md` 檔案
**新專案**(幾乎空的)→ 直接建立結構,跳到第三步
**已有專案**(有文件)→ 執行第二步
### 第二步:已有專案的掃描(已有專案才執行)
1. 遞迴找出所有 `.md` 檔案
2. 對每個檔案標注建議位置和信心度
3. 列出清單給使用者確認,**停下來等確認**
分類規則:
```
有明確子系統 + 設計內容 → docs/3-specs/[子系統]/
解釋為什麼做某個決定 → docs/2-architecture/decisions/
說明怎麼操作 → docs/4-guides/
記錄發生過的事 → docs/5-records/
給外部使用者看的 → docs/6-user/
不確定 → 列為「待確認」,問使用者
```
### 第三步:建立缺少的結構
只建立不存在的目錄和檔案,**已有的一律不動**:
目錄:
```
docs/{1-vision,2-architecture/decisions,3-specs,4-guides,5-records/{incidents,test-reports},6-user}
.claude/wiki/
```
檔案(不存在才建):
- `.claude/wiki/INDEX.md`
- `.claude/wiki/status.md`
- `.claude/wiki/mistakes.md`
- `.claude/wiki/decisions-summary.md`
- `docs/README.md`
### 第四步:訪談(每次一個問題)
依序問:
1. 這個專案做什麼?(一句話)
2. 有哪些絕對不能違反的限制?(技術棧、架構原則等)
3. 現在進行到哪個階段?
4. 有沒有 CC 曾經犯過的錯要先記下來?
把答案填進 `CLAUDE.md`(如果存在)或建立新的。
### 第五步:已有專案的文件歸檔
(第二步確認後執行)
按照確認好的分類移動檔案,完成後更新 `CLAUDE.md` 的路徑引用。
### 第六步:完成報告
告知:
```
✅ wiki-init 完成
建立了:[列出新建的目錄和檔案]
跳過了:[列出已有因此不動的]
下一步:用 /wiki-capture 把重要決策存進 wiki
```