Files
Arcrun/kbdb/migrations/0003_library_map.sql
T
Claude 15fe012006 feat(kbdb): 藏書地圖 M1+M2 — library_map template+/map 端點(聚合 SQL 住基本盤)(#39)
M1:library_map template(migration 0003 seed+runtime ensure,D6 零建表零 ALTER);
核實 triplet 按庫定位=不足(prod triplet template 無 library slot、entries
metadata.library 未標記)→ 走 SDD 預案:recompute 冪等補 optional library slot
(改 template 不動表),slot 值由 ingest 端(M3)補寫,核實結果記入 design §1。

M2:kbdb base 三端點(design §2 歸屬裁定:聚合 SQL 只准住基本盤):
- POST /map/recompute?library=X:degree top-N/predicate 分布/跨庫 bridges/
  triplet_count 一段 SQL 聚合;narrative 本輪收 body 傳入(wiki 抽取屬 M3);
  寫入順序安全(先建新 active map block 再標舊 superseded,讀端取最新 active 自癒);
  過渡 source_prefix fallback 讓無 library 值的舊 triplet 靠 source_uri 前綴歸庫。
- GET /map:全館地圖每庫一行(library+narrative+top 3 entities+triplet_count),
  MCP instructions/GUI 共用(數百 token 內)。
- GET /map/:library:該庫詳圖(完整 slots+可嵌人話 content,design §5 M6 直用)。

測試:node:sqlite(零新依賴)當真 SQLite 實跑 migrations+聚合 SQL,
Hono route 行為同款覆蓋;45/45 過、tsc --noEmit 乾淨。

關聯 #39

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JUmjwkHLVBHM3ydhT1WSW3
2026-07-19 08:40:22 +00:00

16 lines
947 B
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- library-map(藏書地圖)M1 — `library_map` template seed
-- SDD: system-dev/docs/3-specs/library-map/design.md §1(源頭 Arcrun#39 spec §3
--
-- D6 鐵律:零建表、零 ALTER——地圖=templates 表的一列 seed row(與 0001 的 recipe_stat 同模式),
-- 每庫一個 map blockrecord)+slots,全部住既有三表。
-- 冪等(INSERT OR IGNORE);runtime 端 actions/library-map.ts 的 ensureLibraryMapTemplate 是同一
-- 定義的第二道保險(已部署未跑 migration 的 D1 上,首次 recompute 會自建),兩邊 id/slots 必須一致。
INSERT OR IGNORE INTO templates (id, name, description, slots_json, created_by)
VALUES (
'tpl-library-map',
'library_map',
'per-library map block(藏書地圖:graph 機械導出,零 LLM 生成;Arcrun#39',
'["library","narrative","top_entities","relation_profile","bridges","triplet_count","commit_hash","status"]',
'system'
);