# Candidates for scripts/champion_loop.py; re-read before each job batch.
# Objective (AGENTS.md 1-1, 2026-10-06): minimise Fail->Pass as far as possible and also Pass->Fail.
# So no 5% cap: fail_miss selection with the full validation Pareto frontier preserved; every
# frontier checkpoint is scored on the working test set and compared by Pareto dominance.
# minimum_pass_recall only filters degenerate near-all-Fail epochs; lowered to 0.40 on 2026-10-06
# (user: the 55% floor may go lower). Ultimate goal: Fail->Pass 0% and Pass recall 100%.
- name: k6_do30
  base_config: configs/research/raina_laya_hierarchical_v5_k6_do30.yaml
  overrides: {selection_priority: fail_miss, preserve_pareto: true, minimum_pass_recall: 0.40}
  active: false
- name: k8_do30
  base_config: configs/research/raina_laya_hierarchical_v5_k6_do30.yaml
  overrides: {selection_priority: fail_miss, preserve_pareto: true, minimum_pass_recall: 0.40, hierarchical_fail_weight: 8.0}
  active: true
- name: k10_do30
  base_config: configs/research/raina_laya_hierarchical_v5_k6_do30.yaml
  overrides: {selection_priority: fail_miss, preserve_pareto: true, minimum_pass_recall: 0.40, hierarchical_fail_weight: 10.0}
  active: false
- name: k12_do30
  base_config: configs/research/raina_laya_hierarchical_v5_k6_do30.yaml
  overrides: {selection_priority: fail_miss, preserve_pareto: true, minimum_pass_recall: 0.40, hierarchical_fail_weight: 12.0}
  active: false
- name: k8_do30_e24
  base_config: configs/research/raina_laya_hierarchical_v5_k6_do30.yaml
  overrides: {selection_priority: fail_miss, preserve_pareto: true, minimum_pass_recall: 0.40, hierarchical_fail_weight: 8.0, max_epochs: 24, patience: 24}
  active: false
- name: k8_do40_e24
  base_config: configs/research/raina_laya_hierarchical_v5_k6_do30.yaml
  overrides: {selection_priority: fail_miss, preserve_pareto: true, minimum_pass_recall: 0.40, hierarchical_fail_weight: 8.0, transformer_dropout: 0.4, max_epochs: 24, patience: 24}
  active: false
- name: k8_do30_e24_rdrop
  base_config: configs/research/raina_laya_hierarchical_v5_k6_do30.yaml
  overrides: {selection_priority: fail_miss, preserve_pareto: true, minimum_pass_recall: 0.40, hierarchical_fail_weight: 8.0, max_epochs: 24, patience: 24, stochastic_views: 2, gate_consistency_weight: 1.0}
  active: false
# 2026-10-06 15:35 KST: k8 + 24-epoch variants never reached the 0.55 recall floor (val F2P 3.0-4.6%,
# recall 49-54.6%), so the short-schedule ideas are retried at k=6 to test the curve, not the operating point.
- name: k6_do30_e24
  base_config: configs/research/raina_laya_hierarchical_v5_k6_do30.yaml
  overrides: {selection_priority: fail_miss, preserve_pareto: true, minimum_pass_recall: 0.40, max_epochs: 24, patience: 24}
  active: false
- name: k6_do40_e24
  base_config: configs/research/raina_laya_hierarchical_v5_k6_do30.yaml
  overrides: {selection_priority: fail_miss, preserve_pareto: true, minimum_pass_recall: 0.40, transformer_dropout: 0.4, max_epochs: 24, patience: 24}
  active: false
- name: k6_do30_e24_rdrop
  base_config: configs/research/raina_laya_hierarchical_v5_k6_do30.yaml
  overrides: {selection_priority: fail_miss, preserve_pareto: true, minimum_pass_recall: 0.40, max_epochs: 24, patience: 24, stochastic_views: 2, gate_consistency_weight: 1.0}
  active: false
# 2026-10-06 17:55 KST: k/dropout/schedule only move along one Fail->Pass vs Pass->Fail curve; these
# try to lower the curve itself (capacity, local temporal context, more updates, real weight decay).
- name: k8_depth3
  base_config: configs/research/raina_laya_hierarchical_v5_k6_do30.yaml
  overrides: {selection_priority: fail_miss, preserve_pareto: true, minimum_pass_recall: 0.40, hierarchical_fail_weight: 8.0, transformer_depth: 3}
  active: true
# 2026-10-07 22:19 KST: with the validation-chosen reject band and decided-count dominance, the operating point
# is no longer fixed at margin 0, so a lower Fail weight (k=4) may trade better on decided Pass->Fail;
# paired against k8_depth3 in the same rounds.
- name: k4_depth3
  base_config: configs/research/raina_laya_hierarchical_v5_k6_do30.yaml
  overrides: {selection_priority: fail_miss, preserve_pareto: true, minimum_pass_recall: 0.40, hierarchical_fail_weight: 4.0, transformer_depth: 3}
  # 2026-10-08 01:27 KST: 24 same-round pairs vs k8_depth3 (gens 11-14): gate AUC -0.0021 on average, 4/24 wins,
  # and never the best decided point. Retired.
  active: false
- name: k8_width384
  base_config: configs/research/raina_laya_hierarchical_v5_k6_do30.yaml
  overrides: {selection_priority: fail_miss, preserve_pareto: true, minimum_pass_recall: 0.40, hierarchical_fail_weight: 8.0, model_width: 384}
  active: false
- name: k8_localconv
  base_config: configs/research/raina_laya_hierarchical_v5_k6_do30.yaml
  overrides: {selection_priority: fail_miss, preserve_pareto: true, minimum_pass_recall: 0.40, hierarchical_fail_weight: 8.0, head_architecture: temporal_local_conv_v1}
  active: false
- name: k8_mb128
  base_config: configs/research/raina_laya_hierarchical_v5_k6_do30.yaml
  overrides: {selection_priority: fail_miss, preserve_pareto: true, minimum_pass_recall: 0.40, hierarchical_fail_weight: 8.0, micro_batch: 128}
  active: false
- name: k8_wd1
  base_config: configs/research/raina_laya_hierarchical_v5_k6_do30.yaml
  overrides: {selection_priority: fail_miss, preserve_pareto: true, minimum_pass_recall: 0.40, hierarchical_fail_weight: 8.0, weight_decay: 1.0}
  active: false
# 2026-10-06 20:45 KST: all 13 candidates had gate AUC 0.906-0.912 in generation 3 (noise ~0.006), so
# architecture/optimisation tweaks do not lower the curve; keep 7 representatives to spend fewer test evals.
# 2026-10-06 22:20 KST: gate consistency (two dropout views) had the highest generation-3 AUC medians
# (0.9123 k6, 0.9117 k8 vs 0.906-0.910 for the rest, 4 runs each); try stronger weights and width 384.
- name: k8_rdrop_w2
  base_config: configs/research/raina_laya_hierarchical_v5_k6_do30.yaml
  overrides: {selection_priority: fail_miss, preserve_pareto: true, minimum_pass_recall: 0.40, hierarchical_fail_weight: 8.0, max_epochs: 24, patience: 24, stochastic_views: 2, gate_consistency_weight: 2.0}
  active: false
- name: k8_rdrop_w4
  base_config: configs/research/raina_laya_hierarchical_v5_k6_do30.yaml
  overrides: {selection_priority: fail_miss, preserve_pareto: true, minimum_pass_recall: 0.40, hierarchical_fail_weight: 8.0, max_epochs: 24, patience: 24, stochastic_views: 2, gate_consistency_weight: 4.0}
  active: false
- name: k8_width384_rdrop
  base_config: configs/research/raina_laya_hierarchical_v5_k6_do30.yaml
  overrides: {selection_priority: fail_miss, preserve_pareto: true, minimum_pass_recall: 0.40, hierarchical_fail_weight: 8.0, max_epochs: 24, patience: 24, stochastic_views: 2, gate_consistency_weight: 1.0, model_width: 384}
  active: false
# 2026-10-07 02:35 KST: all-layer MuQ stores ready (30,179 songs x 13 layers verified; new layers 10+9
# bitwise equal to the legacy cache on 300 songs). Probe layer combinations with the k8_do30 recipe;
# l109 is the control that must match k8_do30.
- name: l109_k8
  base_config: configs/research/raina_laya_hierarchical_v5_k6_do30.yaml
  overrides: {selection_priority: fail_miss, preserve_pareto: true, minimum_pass_recall: 0.40, hierarchical_fail_weight: 8.0, embedding_layer_dir: artifacts/sqlite/muq-layers-20261007, embedding_layers: [10, 9]}
  active: false
- name: l89_k8
  base_config: configs/research/raina_laya_hierarchical_v5_k6_do30.yaml
  overrides: {selection_priority: fail_miss, preserve_pareto: true, minimum_pass_recall: 0.40, hierarchical_fail_weight: 8.0, embedding_layer_dir: artifacts/sqlite/muq-layers-20261007, embedding_layers: [8, 9]}
  active: true
- name: l8_k8
  base_config: configs/research/raina_laya_hierarchical_v5_k6_do30.yaml
  overrides: {selection_priority: fail_miss, preserve_pareto: true, minimum_pass_recall: 0.40, hierarchical_fail_weight: 8.0, embedding_layer_dir: artifacts/sqlite/muq-layers-20261007, embedding_layers: [8]}
  active: false
- name: l689_k8
  base_config: configs/research/raina_laya_hierarchical_v5_k6_do30.yaml
  overrides: {selection_priority: fail_miss, preserve_pareto: true, minimum_pass_recall: 0.40, hierarchical_fail_weight: 8.0, embedding_layer_dir: artifacts/sqlite/muq-layers-20261007, embedding_layers: [6, 8, 9]}
  active: false
- name: l8910_k8
  base_config: configs/research/raina_laya_hierarchical_v5_k6_do30.yaml
  overrides: {selection_priority: fail_miss, preserve_pareto: true, minimum_pass_recall: 0.40, hierarchical_fail_weight: 8.0, embedding_layer_dir: artifacts/sqlite/muq-layers-20261007, embedding_layers: [8, 9, 10]}
  active: false
# 2026-10-07 03:41 KST: round 1 of the layer probe: the l109 control reproduced k8_do30 exactly (all 50
# validation confusion matrices, NLL and test AUCs identical); every combination with layer 8 was lower
# (AUC 0.9076-0.9118 vs 0.9146). Probe single layers 4-12 with the same recipe, as the layer guide advises.
- name: l4_k8
  base_config: configs/research/raina_laya_hierarchical_v5_k6_do30.yaml
  overrides: {selection_priority: fail_miss, preserve_pareto: true, minimum_pass_recall: 0.40, hierarchical_fail_weight: 8.0, embedding_layer_dir: artifacts/sqlite/muq-layers-20261007, embedding_layers: [4]}
  active: false
- name: l5_k8
  base_config: configs/research/raina_laya_hierarchical_v5_k6_do30.yaml
  overrides: {selection_priority: fail_miss, preserve_pareto: true, minimum_pass_recall: 0.40, hierarchical_fail_weight: 8.0, embedding_layer_dir: artifacts/sqlite/muq-layers-20261007, embedding_layers: [5]}
  active: false
- name: l6_k8
  base_config: configs/research/raina_laya_hierarchical_v5_k6_do30.yaml
  overrides: {selection_priority: fail_miss, preserve_pareto: true, minimum_pass_recall: 0.40, hierarchical_fail_weight: 8.0, embedding_layer_dir: artifacts/sqlite/muq-layers-20261007, embedding_layers: [6]}
  active: false
- name: l7_k8
  base_config: configs/research/raina_laya_hierarchical_v5_k6_do30.yaml
  overrides: {selection_priority: fail_miss, preserve_pareto: true, minimum_pass_recall: 0.40, hierarchical_fail_weight: 8.0, embedding_layer_dir: artifacts/sqlite/muq-layers-20261007, embedding_layers: [7]}
  active: false
- name: l9_k8
  base_config: configs/research/raina_laya_hierarchical_v5_k6_do30.yaml
  overrides: {selection_priority: fail_miss, preserve_pareto: true, minimum_pass_recall: 0.40, hierarchical_fail_weight: 8.0, embedding_layer_dir: artifacts/sqlite/muq-layers-20261007, embedding_layers: [9]}
  active: true
- name: l10_k8
  base_config: configs/research/raina_laya_hierarchical_v5_k6_do30.yaml
  overrides: {selection_priority: fail_miss, preserve_pareto: true, minimum_pass_recall: 0.40, hierarchical_fail_weight: 8.0, embedding_layer_dir: artifacts/sqlite/muq-layers-20261007, embedding_layers: [10]}
  active: true
- name: l11_k8
  base_config: configs/research/raina_laya_hierarchical_v5_k6_do30.yaml
  overrides: {selection_priority: fail_miss, preserve_pareto: true, minimum_pass_recall: 0.40, hierarchical_fail_weight: 8.0, embedding_layer_dir: artifacts/sqlite/muq-layers-20261007, embedding_layers: [11]}
  active: true
- name: l12_k8
  base_config: configs/research/raina_laya_hierarchical_v5_k6_do30.yaml
  overrides: {selection_priority: fail_miss, preserve_pareto: true, minimum_pass_recall: 0.40, hierarchical_fail_weight: 8.0, embedding_layer_dir: artifacts/sqlite/muq-layers-20261007, embedding_layers: [12]}
  active: true
# 2026-10-07 05:05 KST: generation-5 round 1 single layers (same split and seed): gate AUC max
# L4 0.9061, L5 0.9069, L6 0.9103, L7 0.9092, L8 0.9121, L9 0.9173, L10 0.9151, L11 0.9145 vs [10,9]
# 0.9170. Layers 4-8 are clearly lower, so stop spending runs on them; keep 9-12 and [8,9] for a second seed.
# 2026-10-07 09:45 KST: generation-5 distillation A/B (outside the loop): students distilled from the
# in-sample ensemble teacher beat paired k8_do30 baselines by +0.005 to +0.007 gate AUC (mix 1.0 also cut
# Fail->Pass at margin 0 to 17-19/2016 vs 27-38). The loop builds that teacher after round 2
# (--teacher-after-round 2); students are skipped until the generation's teacher file exists.
- name: dst_a10
  base_config: configs/research/raina_laya_hierarchical_v5_k6_do30.yaml
  overrides: {selection_priority: fail_miss, preserve_pareto: true, minimum_pass_recall: 0.40, hierarchical_fail_weight: 8.0, gate_soft_targets: "artifacts/teachers/gen-{generation}/insample.jsonl", gate_soft_target_mix: 1.0}
  active: true
- name: dst_a05
  base_config: configs/research/raina_laya_hierarchical_v5_k6_do30.yaml
  overrides: {selection_priority: fail_miss, preserve_pareto: true, minimum_pass_recall: 0.40, hierarchical_fail_weight: 8.0, gate_soft_targets: "artifacts/teachers/gen-{generation}/insample.jsonl", gate_soft_target_mix: 0.5}
  active: true
