Leo e7a681a989 fix(ingest): receiver Zod 追上 contract — 補向量化打標欄位 (issue #1 補對齊)
契約漂移修補:T3 的 strict Zod 鏡射舊 contract,ingest 照新 contract(ingest#1
升格)送向量化打標欄位會被 .strict() 擋成 422。方向 A:顯式加合法新欄位、保留
strict。

- 同步 contracts/ingest-candidate.json 副本到頂層單一真相源(mira-dissolve)。
- NodeSchema 加 id?/aliases?/embed?;EdgeSchema 加 predicate_embed?。strict() 保留
  → bridge_score/clusters 等 graph 領域禁送欄位仍 422。
- 落地:predicate_embed 透傳進 triplet slot;node 打標(embed/gloss/aliases)存進
  entity slot,供 base/KBDB embed 模組讀標執行(graph 不算向量,鐵律一致)。
- id 作 node 去重鍵:同卡多邊指到只存一筆 entity。
- persistNodes 拆成獨立 action(triplet-ingest.ts 回到 95 行,守樂高 100 行限制)。
- 測試 +4:帶向量化欄位通過、bridge_score/clusters 仍 422、同 id 去重。
  vitest 23 passed。零 SQL / 無 D1·Vectorize·AI 綁定 / dry-run 乾淨。

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

文件分類索引

CC 整理文件時的分類依據。找不到分類就問,不要猜。


分類規則

目錄 放什麼 判斷標準
1-vision/ 為什麼做這個 產品願景、北極星、設計哲學
2-architecture/ 系統怎麼設計的 架構圖、技術棧、元件關係
2-architecture/decisions/ 為什麼這樣設計 ADR,選A不選B的原因
3-specs/ 要做什麼 SDD,每個子系統一個目錄
4-guides/ 怎麼做 部署、開發流程、CLI 用法
5-records/ 發生過什麼 歷史記錄,不修改只增加
5-records/incidents/ 生產問題復盤 故障原因、時間線、改進方案
5-records/test-reports/ 測試結果 壓測報告、驗收記錄
6-user/ 給使用者看的 README、安裝教學、FAQ

CC 整理文件時的判斷流程

這個文件是...
├── 有明確子系統 + 設計內容? → docs/3-specs/[子系統]/
├── 解釋為什麼做某個決定?   → docs/2-architecture/decisions/
├── 說明怎麼操作?           → docs/4-guides/
├── 記錄發生過的事?         → docs/5-records/
├── 給外部使用者看的?       → docs/6-user/
└── 以上都不確定?          → 列為「待確認」,問負責人

SDD 結構(docs/3-specs/ 下每個子系統)

docs/3-specs/[子系統名]/
├── design.md    ← 設計文件(要做什麼、怎麼做、邊界在哪)
└── tasks.md     ← 任務清單([ ] 未開始 [🔄] 進行中 [x] 完成)

CC 動手前必須有這兩個檔案。找不到就停手。


.claude/wiki/ — CC 的記憶空間(CC 維護,人不手動編輯)

檔案 用途 更新時機
INDEX.md wiki 導引 新增 wiki 檔案時
mistakes.md CC 已知誤解 + 避坑 每次被糾正後
status.md 當前進度 + 下一步 每次 session 結束
decisions-summary.md 架構決策摘要 重大決策後
S
Description
No description provided
Readme 240 KiB
Languages
TypeScript 58.7%
Shell 41.3%