-- 清理重複的 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;
