15fe012006
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
16 lines
947 B
SQL
16 lines
947 B
SQL
-- 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 block(record)+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'
|
||
);
|