feat: DATA_GATED 진척도 추적 + 팩터 shadow 자격 평가 + routing_gate 실측 보정

- tools/build_data_gated_progress_v1.py: WBS-2.5/4.1~4.3/RELEASE_GATE_TRUTH 실측 진척도
  (sector_flow 21/30일, T+20 0/30건, honest_proof 45.1/70.0)
- tools/build_factor_shadow_eligibility_v1.py: 149개 팩터 shadow 자격 평가
  (eligible=24, partial=37, blocked=38)
- spec/41: DAG step_count 63→67, 신규 4노드 추가
  (build_data_gated_progress, build_factor_shadow_eligibility,
   build_strategy_routing_audit, build_horizon_rebalance_plan)
- spec/30: routing_gate 실측 보정 — SHORT 71.4%는 오류,
  실제 원인은 MID 75.0% > 50% 상한 (2026-06-14 실측)
- spec/13: DATA_GATED_PROGRESS_V1, FACTOR_SHADOW_ELIGIBILITY_V1,
  STRATEGY_ROUTING_AUDIT_V1 formula 등록

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-14 12:39:34 +09:00
parent 8891978ed5
commit ac6437b840
5 changed files with 454 additions and 6 deletions
+55 -1
View File
@@ -1,5 +1,5 @@
schema_version: release_dag.v3
step_count: 63
step_count: 67
goal: Linearize package.json scripts into a validated DAG execution graph.
execution_order:
# 토폴로지 정렬 기준 병렬 실행 wave (의존성 없는 노드들을 동시에 실행 가능)
@@ -32,6 +32,8 @@ execution_order:
- validate_runtime_source_whitelist
- validate_specs
wave_1:
- build_data_gated_progress
- build_factor_shadow_eligibility
- build_formula_outputs
- build_rebalance_sheet
- build_shadow_promotion
@@ -47,9 +49,11 @@ execution_order:
- validate_artifact_sync
- validate_no_lookahead
wave_3:
- build_strategy_routing_audit
- finalize_packet
wave_4:
- build_final_decision
- build_horizon_rebalance_plan
- validate_decision_trace
- validate_execution_sim
- validate_factor_conflicts
@@ -100,6 +104,30 @@ dag:
strict: true
artifact_policy: "keep"
build_data_gated_progress:
id: build_data_gated_progress
command: ["python", "tools/build_data_gated_progress_v1.py"]
inputs: ["tools/build_data_gated_progress_v1.py", "GatherTradingData.json"]
outputs: ["Temp/data_gated_progress_v1.json"]
depends_on: ["build_live_replay_separation"]
timeout_sec: 30
cache_key: "build_data_gated_progress_v1"
strict: false
artifact_policy: "keep"
note: "DATA_GATED 항목별 실측 진척도 — non-blocking diagnostic"
build_factor_shadow_eligibility:
id: build_factor_shadow_eligibility
command: ["python", "tools/build_factor_shadow_eligibility_v1.py"]
inputs: ["tools/build_factor_shadow_eligibility_v1.py", "GatherTradingData.json", "spec/factor_lifecycle_registry.yaml"]
outputs: ["Temp/factor_shadow_eligibility_v1.json"]
depends_on: ["convert_xlsx"]
timeout_sec: 30
cache_key: "build_factor_shadow_eligibility_v1"
strict: false
artifact_policy: "keep"
note: "149개 팩터 shadow 승격 자격 평가 — non-blocking diagnostic"
build_rebalance_sheet:
id: build_rebalance_sheet
command: ["python", "tools/build_rebalance_engine_v1.py", "--json", "GatherTradingData.json", "--harness", "Temp/computed_harness_v1.json"]
@@ -134,6 +162,32 @@ dag:
strict: true
artifact_policy: "keep"
build_strategy_routing_audit:
id: build_strategy_routing_audit
command: ["python", "tools/build_strategy_routing_audit_v1.py"]
inputs: ["tools/build_strategy_routing_audit_v1.py", "GatherTradingData.json",
"Temp/horizon_classification_v1.json", "Temp/capital_style_allocation_v1.json"]
outputs: ["Temp/strategy_routing_audit_v1.json"]
depends_on: ["inject_harness"]
timeout_sec: 30
cache_key: "build_strategy_routing_audit_v1"
strict: false
artifact_policy: "keep"
note: "routing_gate 공식 산출 — MID/SHORT/LONG 호라이즌 상한 검증"
build_horizon_rebalance_plan:
id: build_horizon_rebalance_plan
command: ["python", "tools/build_horizon_rebalance_plan_v1.py"]
inputs: ["tools/build_horizon_rebalance_plan_v1.py", "GatherTradingData.json",
"Temp/strategy_routing_audit_v1.json", "Temp/horizon_classification_v1.json"]
outputs: ["Temp/horizon_rebalance_plan_v1.json"]
depends_on: ["build_strategy_routing_audit", "finalize_packet"]
timeout_sec: 30
cache_key: "build_horizon_rebalance_plan_v1"
strict: false
artifact_policy: "keep"
note: "routing_gate FAIL 시 리밸런싱 우선순위 플랜 산출 — non-blocking"
audit_entropy:
id: audit_entropy
command: ["python", "tools/audit_repository_entropy_v2.py", "--out", "runtime/refactor_baseline_v1.yaml"]