fe9fbe1dab409b3842c52ae2fb685359d43f66c6
首版只做路徑 A(3 張策展卡)。本版加: - 路徑 B:掃 journals/*.md、pages/*.md 原始筆記,Haiku 精耕(gloss)+萃三元組 → 對齊 design §1 路徑 B,這是「不再只 3 卡、整 vault 完整 ingest」所需的線。 - callHaiku() 抽象:有 ANTHROPIC_API_KEY 直打 Anthropic Messages API(正式型態, 不借 CC session);缺 key fallback `claude -p --model haiku` 並在 stderr 明確 警告非正式型態(誠實,不假裝正式)。 - 空 Logseq 筆記(僅「-」)自動跳過;彙總印 processed/skipped/ingested 統計。 實測(總管 2026-07-05,notes 全庫):3 卡冪等跳過 + 07_02 3 三元組入庫 + 07_01 11 三元組入庫(total 17→31)。撞牆記於 mira#1:07_01 的 node gloss 層因 「Too many subrequests by single Worker invocation」在 persistNodes 未寫入 (三元組層在該步之前已落地,未造假、未覆蓋)。
kbdb-ingest-plugin
KBDB 堆疊的餵食器——從 GitHub repo 拉知識庫,採取/萃取成三元組候選,餵給 kbdb-graph-plugin,織成跨 vault 的圖。
堆疊裡最薄的一層:
base KBDB(arcrun/kbdb) ← 儲存(D1 三表 + CRUD API)
↑ API
kbdb-graph-plugin ← 三元組領域 + 圖查詢
↑ API(ingest 餵候選)
kbdb-ingest-plugin(本 repo) ← 純餵食器:拉 + 採取/萃取 + 跨庫織網
它做什麼
- 採取(優先):拉本地 CC 已建好的三元組 + gloss(用了精耕模板的 repo)。
- 萃取(fallback):裸原文時自己萃成 (subject, predicate, object) + gloss;模型可選(預設 Haiku)。
- 跨 repo 織網:匯總多 repo 的三元組,織出單一 repo 看不到的跨庫橋與異見。
它不做什麼
- ❌ 不碰儲存(不直連 D1/Vectorize/表)——只 POST 候選給 graph 的寫入 API。
- ❌ 不算向量 normalize(歸 base embed 模組)。
- ❌ 不帶查詢 MCP(ambient 餵食器,只帶 ops CLI)。
命題
不是「更好的 notes RAG」(紅海),而是跨所有 vault 的圖——Obsidian/Logseq 結構上做不到的那層。護城河是你累積的圖,不是這份程式碼。
契約
contracts/ingest-candidate.json — ingest→graph 的凍結 envelope 契約(與 graph repo 同一份)。
InkStoneCo 子專案。開發規範見 CLAUDE.md,跨專案藍圖見 InkStoneCo docs/3-specs/mira-dissolve/。
Description
Languages
Shell
83.2%
JavaScript
16.8%