-- ADR-092 B4 — Playbook 學習閉環斷鏈修復(DB Schema) -- 根因:approval_records 缺 matched_playbook_id → 人工審核後 EWMA 無法更新 Playbook trust score -- timeline_events 缺 incident_id → pre_decision_investigator MCP 呼叫稽核每天+1 靜默錯誤 -- -- 執行方式(需人工執行一次): -- psql $DATABASE_URL -f apps/api/migrations/adr092_p1_learning_chain_fix.sql -- -- 2026-04-24 ogt + Claude Sonnet 4.6(亞太) BEGIN; -- ───────────────────────────────────────────────────────────────────────────── -- approval_records: 新增 matched_playbook_id 欄位(B2 fix) -- ───────────────────────────────────────────────────────────────────────────── ALTER TABLE approval_records ADD COLUMN IF NOT EXISTS matched_playbook_id VARCHAR(36) DEFAULT NULL; CREATE INDEX IF NOT EXISTS ix_approval_matched_playbook ON approval_records (matched_playbook_id) WHERE matched_playbook_id IS NOT NULL; COMMENT ON COLUMN approval_records.matched_playbook_id IS 'Playbook ID 命中時紀錄,學習服務讀取以更新 EWMA trust score'; -- ───────────────────────────────────────────────────────────────────────────── -- timeline_events: 新增 incident_id 欄位(P1.6 fix) -- ───────────────────────────────────────────────────────────────────────────── ALTER TABLE timeline_events ADD COLUMN IF NOT EXISTS incident_id VARCHAR(64) DEFAULT NULL; CREATE INDEX IF NOT EXISTS ix_timeline_incident_id ON timeline_events (incident_id) WHERE incident_id IS NOT NULL; COMMENT ON COLUMN timeline_events.incident_id IS 'MCP 工具呼叫稽核時關聯的 Incident ID'; COMMIT;