-- 清理重複的 deprecated yaml_rule Playbooks -- 根因:seeder 冪等 SQL 舊版排除 deprecated 記錄,導致每次啟動重建同名 Playbook -- C1 保護(evolver 不封存 yaml_rule)加入前已存在的 deprecated 歷史記錄 -- 觸發無限重建迴圈(294 deprecated,25 approved) -- 修法:每個 name 只保留最新的一筆 deprecated,其餘刪除 -- seeder 已同步修正(status 過濾移除),此腳本清理歷史垃圾 -- 2026-04-24 ogt + Claude Sonnet 4.6(亞太) BEGIN; -- 診斷:執行前統計(可選,確認規模) -- SELECT source, status, COUNT(*) FROM playbooks GROUP BY source, status ORDER BY source, status; -- 找出每個 yaml_rule deprecated name 的最新 created_at(保留基準) -- 刪除同名同 source=yaml_rule + status=deprecated 中非最新的記錄 DELETE FROM playbooks WHERE status = 'deprecated' AND source = 'yaml_rule' AND playbook_id NOT IN ( -- 每個 name 保留 created_at 最新的那一筆 SELECT DISTINCT ON (name) playbook_id FROM playbooks WHERE status = 'deprecated' AND source = 'yaml_rule' ORDER BY name, created_at DESC ); -- 執行後確認 -- SELECT source, status, COUNT(*) FROM playbooks GROUP BY source, status ORDER BY source, status; COMMIT;