## 2026-04-10
chinext50_recalibrate_guidance_for_codex_2026-04-09.md.backtest/frozen_walkforward.py, config/regime.yaml).pipelines/real_walkforward_report.py:
stitched_frozen_oos_ledger.csv.default_strategy_full_sample_metrics, stitched_frozen_oos_metrics, baseline_full_sample_metrics.stitched_oos_vs_baseline and default_vs_baseline.tests/test_frozen_walkforward.py now includes frontier fallback, non-binary stability score, mixed turnover override threshold, and bounded return-ratio tests.tests/test_real_walkforward_report_pipeline.py now validates stitched metrics fields, primary-window success semantics, partial-window exclusion, and stitched-first report comparison.11 passed.81 passed.outputs/real_walkforward_recalibrated_20260410_semantic_v1/ with new stitched/report semantics.execute-fullcode-guidance-20260410 for strict block order B1 -> B2 -> B3 -> H1 -> H2 -> H3.real_walkforward_report.py (baseline_stitched_oos_metrics, stitched comparison now aligned to stitched dates).3 passed).-0.0951 -> +0.0299.core_utility + turnover_penalty + net_utility in backtest/utility.py.backtest/frozen_walkforward.py.test_utility.py and test_frozen_walkforward.py.15 passed).-0.1012 -> +0.0257; return/drawdown unchanged.trend before repair) + overlap test.6 passed), but guardrail failed on stitched state mix: risk_off=0.3686 (required <=0.32).tests/test_policy.py back to 5 passed; B3_rolled_back metrics equal B2).chinext50_post_b3_next_steps_for_codex_2026-04-10.md.model/state_machine.py now uses config-driven state_machine.thresholds and trend/repair overlap exclusivity.config/regime.yaml now has explicit state_machine.thresholds keys.tests/test_policy.py.positive_window_ratio kept and marked diagnostic-only in frozen summary/report.primary_acceptance_metrics + report acceptance anchor text.config/regime.yaml.tests/test_policy.py.annual_return_delta below B3-0.01), so flow is blocked before H1b by document rule.deliverables/gpt_pro_post_b3_bundle_2026-04-10.zipgpt_pro_post_b3_issues_2026-04-10.md.deliverables/h1a_reframe_decision_2026-04-10.md).drawdown_ratio_vs_baseline=0.6624 > 0.64), so block was rolled back.fullcode_seq_20260410_H1b1_rolled_back equals R1 metrics).H1b1_retry1) from R1 baseline:
drawdown_ratio_vs_baseline=0.6579 > 0.64).deliverables/gpt_pro_fullcode_post_b3_detailed_2026-04-10.zipdeliverables/gpt_pro_handoff_post_b3_detailed_2026-04-10.mdchinext50_post_b3_feedback_response_for_codex_2026-04-10.md sequence in strict order: D0 -> preparatory repair-threshold code change -> H1b.1-L1 -> H1b.1-L2 -> H1b.1-L3 -> H1b.2-direct-from-R1.stitched_diagnostics fields + markdown section), with zero drift vs R1 stitched metrics/state mix/exposure means.repair_breadth_min and repair_d_trend_min (default -1.0) in state machine/config; added policy tests; verified zero drift vs R1.drawdown_ratio_vs_baseline=0.6539, repair=0.1154, mean_target_exposure breach); rolled back current block.drawdown_ratio_vs_baseline=0.6607, annual_return_delta<0, repair=0.1135, mean_target_exposure breach); rolled back current block.drawdown_ratio_vs_baseline=0.6579, annual_return_delta<0, repair=0.1096, mean_target_exposure breach); rolled back current block.build-regime-lite-mvp.pipelines/regime_lite_run.py (3 states: risk_off/chop/trend; base exposures 0.0/0.35/0.80; max daily step 0.20).tests/test_regime_lite_pipeline.py (2 passed).outputs/regime_lite_20260410/ with artifacts:
regime_lite_daily_ledger.csvregime_lite_summary.jsonregime_lite_report.mdopenspec/changes/archive/2026-04-10-build-regime-lite-mvp/.31 passed.