Commit Graph

4 Commits

Author SHA1 Message Date
jgrusewski
baf971ba54 diag(rl): emit v9 eval_warmup state to JSONL + cleanup lints
Diag: surfaces `risk_stack.eval_warmup.{remaining,active,blend,
floor_*,target_*}` so the v9 defensive-warmup window is observable
in diag.jsonl. `remaining` is the counter; `blend` is the
defensive-vs-normal mix coefficient (1.0 = full defensive, 0.0 =
normal); `floor_*` reflect the LIVE override values (read AFTER the
warmup kernel ran). Pre-warmup the kernel is a no-op (remaining=-1),
so v9 train-phase diag is bit-identical to v8.

Cleanup: tightens unreachable_pub items in tests/behavioral/* and
tests/sp5_producer_unit_tests.rs (pub → pub(crate)), removes
unused_mut on 6 sp5 scratch buffers, renames unused `step` loop
counter in alpha_baseline example, and explicitly discards an
intentionally-no-op `Command::assert` in cli_integration_test.
Reduces lint count by ~25; remaining 3 dead_code warnings flag
SP15 Phase 2A behavioral scaffolding (Phase 2B never landed —
deliberate signal, not noise).

Pre-existing pearl per feedback_no_hiding: do NOT suppress these
with #[allow]; the warnings ARE the design call surface.
2026-05-31 02:12:04 +02:00
jgrusewski
7e63f83bf0 test(sp15-p2b): 17 behavioral tests (Group 1 + Group 2) as #[ignore] contracts
Per spec §7.3 + plan v2 Phase 2B differential table. Each test documents
its behavioral contract and its enabling phase. Tests are #[ignore]'d
so the pre-commit-hook-gated suite does not fail; per-test #[ignore] is
removed by the commit that lands its enabling phase.

Group 1 trading behavior (7 tests): 2.1 flat_holds, 2.2 trend_directional,
2.3 mean_revert_reverses, 2.4 cost_sensitivity, 2.6 regime_silences,
2.7 stop_discipline, 2.18 action_latency.

Group 2 state/arch grounding (10 tests): 2.8 hold_vs_flat_semantics,
2.9 eval_fold_isolation, 2.13 eval_train_consistency, 2.14 magnitude_uses_
all_buckets, 2.15 fold_transition_stability, 2.16 q_value_bounded,
2.17 gradient_flow_to_all_heads, 2.19 kelly_calibration, 2.20 state_input_
grounding, 2.21 egf_gate_opens (re-export hook for sp14_oracle_tests.rs).

Group 3 (Phase 2C — 5 tests) lands paired with Phase 3.5 commits.

Harness invocations use trainer = () placeholder; Phase 2B.b extends
BehavioralResult/harness with per-bar actions, position-state inspection,
forced-action stepping, and per-head grad-norm snapshots. Each test's
ignore reason references which Phase X enabling work + harness extension
makes it green.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 15:05:34 +02:00
jgrusewski
dff6e666ee feat(sp15-p2a.2): oracle policies + evaluator harness + pre-commit hook
Phase 2A scaffolding complete (per spec §7.2):
- oracle.rs: OracleAction enum + 3 oracle policies (flat, drift, OU)
- harness.rs: BehavioralResult + evaluate_policy_on_market stub.
   Trainer-side methods (eval_actions_on_features, read_isv_for_test)
   are documented gap #7; Phase 2B tests add them per-test as needed.
- pre-commit hook: cargo test -p ml --test behavioral_suite gates
   argo-train.sh per spec §4.5 discipline rule.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 11:29:22 +02:00
jgrusewski
7d0a29dced feat(sp15-p2a.1): LobBar canonical ABI + 4 synthetic market generators
Phase 2A scaffolding lands FIRST per spec §4.4 ABI contract. Phase 1.2
cost kernel reads LobBar; both dev synthetic and prod fxcache produce
LobBar — dev/prod parity per Q3.

Generators: flat_market, drift_market, ou_market, regime_switch_market
(seeded RNG for reproducible tests). Regime-switch test uses sticky
0.99/0.01 transitions (true regime persistence; spec's 50/50 was a
random walk, not a regime switch — corrected with code comment).

behavioral_suite test target wired into Cargo.toml; will run all
22 Phase 2 tests once they land in Phase 2B/2C.

Audit doc: SP15 Phase 2A.1 entry appended to docs/dqn-wire-up-audit.md
per Invariant 7 (component changes require audit-doc update).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 10:57:51 +02:00