cleanup: update scoreboard — iter 5 (FFLAG-003, FFLAG-011 resolved; FFLAG-007 deferred)

This commit is contained in:
jgrusewski
2026-04-20 22:36:33 +02:00
parent 35ccc48c96
commit 6cece4c4e5

View File

@@ -1,7 +1,7 @@
---
iteration: 5
iteration: 6
last_scan: 2026-04-20T20:05:00Z
last_scoreboard_hash: iter4resolved-fflag002-fflag005
last_scoreboard_hash: iter5resolved-fflag003-fflag011
consecutive_stall_count: 0
status: active
---
@@ -14,15 +14,15 @@ Representative sampling from iteration-1 scan. Future iterations will expand thi
### FFLAG (severity 5 — `feedback_no_feature_flags.md`)
- [x] [FFLAG-001] `use_percentage_pnl` — RESOLVED iter 1 commit 3c6569679
- [x] [FFLAG-002] `use_spectral_norm` in RainbowNetworkConfig — RESOLVED iter 4 commit 39d18f582
- [ ] [FFLAG-003] `enable_q_value_clipping`: `crates/ml-dqn/src/dqn.rs:119` — S=5 B=3 E=3 score=5.0
- [x] [FFLAG-003] `enable_q_value_clipping` — RESOLVED iter 5 commit b78fd2f1f (collapsed to unconditional clipping + comment normalized b0c0f6c51)
- [ ] [FFLAG-004] `use_residual`+`use_layer_norm`: `crates/ml-dqn/src/attention.rs:53,57` — S=5 B=3 E=3 score=5.0
- [x] [FFLAG-005] `use_spectral_norm`+`use_residual` in QNetworkConfig — RESOLVED iter 4 commit 609041257 (use_gpu kept — has genuine sanity-check reader)
- [x] [FFLAG-006] `use_soft_updates` — RESOLVED iter 3 commit a05cae1e4
- [ ] [FFLAG-007] `use_count_bonus`: `crates/ml-dqn/src/dqn.rs:157` — S=5 B=3 E=3 score=5.0
- [?] [FFLAG-007] `use_count_bonus` — DEFERRED to Needs-human: not a dead flag. `services/trading_service/src/services/dqn_model.rs:59` explicitly sets it `false` at inference (no UCB bonus on live Q-values). Proper fix is to split action selection into `select_action_training()` (with UCB) vs `select_action_inference()` (without) — exceeds cross-cut ceiling.
- [ ] [FFLAG-008] `use_iqn`: `crates/ml-dqn/src/dqn.rs:168` — S=5 B=3 E=3 score=5.0
- [x] [FFLAG-009] `use_regime_conditioning` — RESOLVED iter 3 commit 9c9c7c6d8 (dead flag, zero readers)
- [ ] [FFLAG-010] `use_cvar_action_selection`: `crates/ml-dqn/src/dqn.rs:223` — S=5 B=3 E=3 score=5.0
- [ ] [FFLAG-011] `enable_causal_intervention`: `crates/ml/src/cuda_pipeline/gpu_dqn_trainer.rs:304` — S=5 B=5 E=5 score=5.0
- [x] [FFLAG-011] `enable_causal_intervention` — RESOLVED iter 5 commit 35ccc48c9 (dead-flag chain: DqnTrainerConfig → CausalInterventionConfig.enabled; zero readers)
- [ ] [FFLAG-012] `enable_gradient_vaccine`: `crates/ml/src/cuda_pipeline/gpu_dqn_trainer.rs:317,1149` — S=5 B=5 E=5 score=5.0
- [ ] [FFLAG-013] `use_noisy_nets`+`use_distributional`+`enable_action_masking`: `crates/ml/src/cuda_pipeline/gpu_experience_collector.rs:204,208,245` — S=5 B=5 E=5 score=5.0
- [ ] [FFLAG-014] `enable_backtest`: `crates/ml/src/hyperopt/adapters/dqn.rs:507` — S=5 B=3 E=3 score=5.0
@@ -73,13 +73,13 @@ Representative sampling from iteration-1 scan. Future iterations will expand thi
- [x] [FFLAG-006] `use_soft_updates` collapsed to unconditional EMA — iter 3 — commit a05cae1e4
- [x] [FFLAG-002] `use_spectral_norm` in RainbowNetworkConfig — iter 4 — commit 39d18f582
- [x] [FFLAG-005] `use_spectral_norm`+`use_residual` in QNetworkConfig — iter 4 — commit 609041257
- [x] [FFLAG-003] `enable_q_value_clipping` collapsed to unconditional clipping — iter 5 — commit b78fd2f1f
- [x] comment normalized (BUG #37 FIX tracker preamble → plain invariant comment) — iter 5 — commit b0c0f6c51
- [x] [FFLAG-011] `enable_causal_intervention` dead-flag chain removed — iter 5 — commit 35ccc48c9
## Known external state (NOT open findings)
The ml crate has a pre-existing compile error in the user's uncommitted WIP
(`set_meta_q_pred` missing method on `FusedTrainingCtx` at
`crates/ml/src/trainers/dqn/trainer/training_loop.rs:2096`). This blocks
`cargo check --workspace` and therefore the Step-4 completion gate. It
is NOT a cleanup finding — Ralph must not attempt to fix WIP code.
Prior WIP blocker (`set_meta_q_pred` missing method) was committed by
the user as 18261c85a between iterations — ml crate now compiles.
## Needs human review
- [?] [FALLBACK-001] `.unwrap_or_else(|| self.symbols[0].clone())`: `crates/ml-dqn/src/multi_asset.rs:322` — reason: false-positive — the whole `select_active_symbol` method is dead (zero callers workspace-wide). Reclassified as DEAD-002.