dragon_v2_rc1_restructuring_proposal_cn.md after user asked to continue.dragon_strategy.py:reason_layer/reason_family/reason_code to eventsbuy_reason_* / sell_reason_* metadata to trades while preserving legacy reason strings.py -3 -m py_compile dragon_strategy.py dragon_rc1_golden_baseline.py dragon_rule_catalog.py tests/test_rc1_golden_regression.py tests/test_reason_catalog_mapping.pypy -3 dragon_rc1_golden_baseline.pydragon_rc1_golden_manifest.json with new generated_at (2026-04-09T00:57:54) and core hashes:8965d1b539a998d7d0aff04432aa2a47cf30ee40df013b9d8b7eb66a3d50a3311298be56b0898266b0b854d62a979c00c20b01629393c82bb8c804faf852cb9791, event_count 272, win_rate 52.75%, avg_return 3.42%.py -3 dragon_rule_layer_attribution.pydragon_rule_layer_attribution.md still reports no unknown reason mapping.py -3 -m unittest discover -s tests -v3 tests passed (OK), covering golden regression and reason catalog mapping.py -3 dragon_daily_signal_pipeline.py --as-of 2026-04-08tests/test_reason_catalog_mapping.py no longer depends on local dragon_historical_trade_details.csv._load_indicator_snapshot(...) + DragonRuleEngine.run(...) to derive release-window reasons directly from strategy output.3 tests still pass.dragon_v2_rc1_optimization_proposal_cn.mdcore/secondary/bridge execution split, reason-string decoupling, weak-family optimization in new branch, and stronger regression/reporting acceptance gates.openspec/ structure for dragon/v2:openspec/config.yamlopenspec/changes/rc1-layered-governed-optimization/ with:.openspec.yamlproposal.mddesign.mdtasks.mdspecs/layered-rule-engine/spec.mdspecs/structured-decision-state/spec.mdspecs/weak-family-research-governance/spec.mdspecs/golden-regression-governance/spec.mdUSER.md to persist preference: future optimization/governance推进 should use OpenSpec workflow.rc1-layered-governed-optimization:dragon_rule_engine_v2.py, dragon_rules_core.py, dragon_rules_secondary.py, dragon_rules_bridge.py.dragon_strategy.py kept as compatibility facade and migrated high-risk control paths to structured fields:entry_reason_layer/family/code, last_real_sell_reason_layer/family/codetests/test_no_silent_path_change.pytests/test_bridge_chain_regression.pytests/test_deep_oversold_pending_paths.py8 tests passed.dragon_layered_pnl_attribution.pydragon_layered_pnl_attribution.csvdragon_layered_family_pnl_attribution.csvdragon_layered_entry_pnl_attribution.csvdragon_layered_exit_pnl_attribution.csvdragon_layered_pnl_attribution.mddragon_migration_audit.mdalpha_next_weak_family_cleanupdragon_weak_family_experiments.pydragon_weak_family_experiment_summary.csvdragon_weak_family_trade_diff.csvdragon_weak_family_execution_stress.csvdragon_weak_family_experiment_config_snapshot.jsondragon_weak_family_experiment.mdopenspec/changes/rc1-layered-governed-optimization/acceptance-summary.mdopenspec/changes/rc1-layered-governed-optimization/tasks.mdopenspec/changes/predictive-deepoversold-physical-isolation/dragon_bridge_predictive_break.pydragon_deep_oversold_classifier.pydragon_deep_oversold_confirmation.pydragon_strategy.py with module calls (compatibility path preserved).tests/test_predictive_bridge_module.pytests/test_deep_oversold_modules.py91 trades, core hashes unchanged),no unknown reason mapping,14 tests passed,--as-of 2026-04-08) passed.openspec/changes/execution-decoupling-rollout-governance/dragon_execution_runtime.pydragon_strategy.py now delegates run(...) compatibility loop to the runtime module.dragon_rollout_governance.pydragon_rollout_governance_check.pydragon_forward_observation_pipeline.py calls rollout checker before HTML refresh.dragon_rollout_state.jsondragon_rollout_governance_snapshot.csvdragon_rollout_governance_report.mddragon_rollout_rollback_runbook.mdtests/test_rollout_governance.pypy -3 -m unittest discover -s tests -v -> 17 tests passed.py -3 dragon_rc1_golden_baseline.py -> core hashes unchanged.py -3 dragon_daily_signal_pipeline.py -> passed.py -3 dragon_forward_observation_pipeline.py -> passed.FORWARD_OKalpha_first_glued_refined_hot_capalpha_first_selective_vetoupdate_dragon_reports.ps1 to print latest bar date, rollout decision, active/fallback branch, and gate counts after each run.-StrictGate (non-FORWARD_OK exits with code 2)-OpenReport (opens dragon_reports_index.html after run).dragon/data_fetcher_v2.py for T-day freshness + cache writeback behavior:fetch_index_data_v2(...) now forces refresh when end_date covers today (T日) instead of reusing stale in-memory cache.fetch_index_data_with_latest_snapshot_v2(...) now writes merged latest-snapshot data back only if the matching cache key already exists.有则回写,无则跳过).tests/test_data_fetcher_tday_cache.pypy -3 -m unittest discover -s tests -v passed (20 tests).py -3 dragon_daily_signal_pipeline.py smoke run passed.