code_path: tools/run_release_dag_v3.py dag: nodes: apply_strategy_execution_locks: artifact_policy: keep cache_key: apply_strategy_execution_locks_v1 command: - python - tools/apply_strategy_execution_locks.py depends_on: - inject_harness - build_late_chase_attribution id: apply_strategy_execution_locks inputs: - tools/apply_strategy_execution_locks.py - GatherTradingData.json - Temp/late_chase_attribution_v1.json - Temp/data_integrity_score_v1.json - Temp/derivation_validity_score_v1.json - Temp/decision_evidence_score_v1.json - Temp/outcome_quality_score_v1.json note: STRATEGY_EXECUTION_LOCKS_V1 필드를 GatherTradingData.json 하네스에 주입 outputs: [] strict: false timeout_sec: 30 audit_entropy: artifact_policy: keep cache_key: audit_entropy_v1 command: - python - tools/audit_repository_entropy_v2.py - --out - runtime/refactor_baseline_v1.yaml depends_on: [] id: audit_entropy inputs: - tools/audit_repository_entropy_v2.py outputs: - runtime/refactor_baseline_v1.yaml strict: true timeout_sec: 30 build_algorithm_guidance_proof: artifact_policy: keep cache_key: build_algorithm_guidance_proof_v1 command: - python - tools/build_algorithm_guidance_proof_v1.py depends_on: - build_report - build_ejce_view_renderer - build_ratchet_trailing_general - build_value_preservation_scorer - build_smart_cash_recovery_v3 - build_routing_execution_log - build_operational_outcome_lock id: build_algorithm_guidance_proof inputs: - tools/build_algorithm_guidance_proof_v1.py - GatherTradingData.json - Temp/operational_report.json - Temp/ejce_view_renderer_v1.json - Temp/ratchet_trailing_general_v1.json - Temp/value_preservation_scorer_v1.json - Temp/smart_cash_recovery_v3.json - Temp/routing_execution_log_v1.json - Temp/canonical_metrics_v1.json note: honest_proof_score + phase1_gate 7개 검증 — RELEASE_GATE_TRUTH 원천 outputs: - Temp/algorithm_guidance_proof_v1.json strict: false timeout_sec: 30 build_alpha_feedback_loop: artifact_policy: keep cache_key: build_alpha_feedback_loop_v2 command: - python - tools/build_alpha_feedback_loop_v2.py depends_on: - update_proposal_evaluation_history id: build_alpha_feedback_loop inputs: - tools/build_alpha_feedback_loop_v2.py - Temp/proposal_evaluation_history.json note: WBS-4.3 alpha feedback loop — non-blocking diagnostic outputs: - Temp/alpha_feedback_loop_v2.json strict: false timeout_sec: 30 build_anti_whipsaw_gate: artifact_policy: keep cache_key: build_anti_whipsaw_gate_v1 command: - python - tools/build_anti_whipsaw_gate_v1.py depends_on: - convert_xlsx id: build_anti_whipsaw_gate inputs: - tools/build_anti_whipsaw_gate_v1.py - GatherTradingData.json note: ANTI_WHIPSAW_GATE_V1 — anti_whipsaw_status 스칼라 추출 (anti_whipsaw_gate_json) outputs: - Temp/anti_whipsaw_gate_v1.json strict: false timeout_sec: 30 build_architecture_boundaries: artifact_policy: keep cache_key: build_architecture_boundaries_v2 command: - python - tools/build_architecture_boundaries_v2.py depends_on: - build_module_io_coverage - build_artifact_chain_hash id: build_architecture_boundaries inputs: - tools/build_architecture_boundaries_v2.py - Temp/module_io_coverage_v1.json - Temp/artifact_chain_hash_v4.json outputs: - Temp/architecture_boundaries_v2.json strict: true timeout_sec: 30 build_artifact_chain_hash: artifact_policy: keep cache_key: build_artifact_chain_hash_v4 command: - python - tools/build_artifact_chain_hash_v4.py depends_on: - build_provenance_ledger - build_report id: build_artifact_chain_hash inputs: - tools/build_artifact_chain_hash_v4.py outputs: - Temp/artifact_chain_hash_v4.json strict: true timeout_sec: 30 build_bundle: artifact_policy: keep cache_key: build_bundle_v1 command: - python - tools/build_bundle.py depends_on: [] id: build_bundle inputs: - tools/build_bundle.py outputs: - dist/retirement_portfolio_compact.yaml - dist/retirement_portfolio_ultra_compact.yaml strict: true timeout_sec: 30 build_calibration_approval_list: artifact_policy: keep cache_key: build_calibration_approval_list_v1 command: - python - tools/build_calibration_approval_list_v1.py depends_on: - build_calibration_review_report id: build_calibration_approval_list inputs: - tools/build_calibration_approval_list_v1.py - Temp/calibration_review_report_v1.json note: CALIBRATION_APPROVAL_LIST_V1 — PROVISIONAL 승인/검토 분리 outputs: - Temp/calibration_approval_list_v1.json - Temp/calibration_approval_list_v1.md strict: false timeout_sec: 30 build_calibration_change_ledger: artifact_policy: keep cache_key: build_calibration_change_ledger_v4 command: - python - tools/build_calibration_change_ledger_v4.py depends_on: - build_calibration_priority - build_realized_performance id: build_calibration_change_ledger inputs: - tools/build_calibration_change_ledger_v4.py - Temp/calibration_priority_v1.json - Temp/outcome_ledger_v1.json - Temp/calibration_registry_v1.json note: CALIBRATION_CHANGE_LEDGER_V4 — change ledger linkage 유지 outputs: - Temp/calibration_change_ledger_v4.json strict: false timeout_sec: 30 build_calibration_decision_draft: artifact_policy: keep cache_key: build_calibration_decision_draft_v1 command: - python - tools/build_calibration_decision_draft_v1.py depends_on: - build_calibration_approval_list id: build_calibration_decision_draft inputs: - tools/build_calibration_decision_draft_v1.py - Temp/calibration_review_report_v1.json - Temp/calibration_approval_list_v1.json note: CALIBRATION_DECISION_DRAFT_V1 — APPROVE/HOLD/REJECT 초안 outputs: - Temp/calibration_decision_draft_v1.json - Temp/calibration_decision_draft_v1.md strict: false timeout_sec: 30 build_calibration_priority: artifact_policy: keep cache_key: build_calibration_priority_v1 command: - python - tools/build_calibration_priority_v1.py depends_on: - build_alpha_feedback_loop id: build_calibration_priority inputs: - tools/build_calibration_priority_v1.py - Temp/alpha_feedback_loop_v2.json - spec/calibration_registry.yaml note: CALIBRATION_PRIORITY_V1 — registry warning fallback 포함 보정 우선순위 리포트 outputs: - Temp/calibration_priority_v1.json strict: false timeout_sec: 30 build_calibration_review_report: artifact_policy: keep cache_key: build_calibration_review_report_v1 command: - python - tools/build_calibration_review_report_v1.py depends_on: - build_calibration_change_ledger id: build_calibration_review_report inputs: - tools/build_calibration_review_report_v1.py - Temp/calibration_priority_v1.json - Temp/calibration_change_ledger_v4.json - spec/calibration_registry.yaml note: CALIBRATION_REVIEW_REPORT_V1 — 월간 운영용 읽기 쉬운 보정 리포트 outputs: - Temp/calibration_review_report_v1.json - Temp/calibration_review_report_v1.md strict: false timeout_sec: 30 build_data_gated_progress: artifact_policy: keep cache_key: build_data_gated_progress_v1 command: - python - tools/build_data_gated_progress_v1.py depends_on: - build_live_replay_separation id: build_data_gated_progress inputs: - tools/build_data_gated_progress_v1.py - GatherTradingData.json note: DATA_GATED 항목별 실측 진척도 — non-blocking diagnostic outputs: - Temp/data_gated_progress_v1.json strict: false timeout_sec: 30 build_ejce_view_renderer: artifact_policy: keep cache_key: build_ejce_view_renderer_v1 command: - python - tools/build_ejce_view_renderer_v1.py depends_on: - convert_xlsx id: build_ejce_view_renderer inputs: - tools/build_ejce_view_renderer_v1.py - GatherTradingData.json note: 'phase1_gate: blank_view_count=0 검증' outputs: - Temp/ejce_view_renderer_v1.json strict: false timeout_sec: 30 build_engine_health_card: artifact_policy: keep cache_key: build_engine_health_card_v1 command: - python - tools/build_engine_health_card_v1.py - --out - Temp/engine_health_card_v1.json depends_on: [] id: build_engine_health_card inputs: - tools/build_engine_health_card_v1.py outputs: - Temp/engine_health_card_v1.json strict: true timeout_sec: 30 build_etf_representative_monitor: artifact_policy: keep cache_key: build_etf_representative_monitor_v1 command: - python - tools/build_etf_representative_monitor_v1.py depends_on: - convert_xlsx id: build_etf_representative_monitor inputs: - tools/build_etf_representative_monitor_v1.py - GatherTradingData.json note: ETF_REPRESENTATIVE_MONITOR_V1 — ETF 대표 종목 추적 + 벤치마크 연동 outputs: - Temp/etf_representative_monitor_v1.json strict: false timeout_sec: 30 build_factor_shadow_eligibility: artifact_policy: keep cache_key: build_factor_shadow_eligibility_v1 command: - python - tools/build_factor_shadow_eligibility_v1.py depends_on: - convert_xlsx id: build_factor_shadow_eligibility inputs: - tools/build_factor_shadow_eligibility_v1.py - GatherTradingData.json - spec/factor_lifecycle_registry.yaml note: 149개 팩터 shadow 승격 자격 평가 — non-blocking diagnostic outputs: - Temp/factor_shadow_eligibility_v1.json strict: false timeout_sec: 30 build_final_context: artifact_policy: keep cache_key: build_final_context_v1 command: - python - tools/build_low_capability_context_pack_v5.py - --manifest - runtime/active_artifact_manifest.yaml - --packet - Temp/final_decision_packet_v4.json - --out - Temp/final_context_for_llm_v5.yaml depends_on: - build_final_decision id: build_final_context inputs: - tools/build_low_capability_context_pack_v5.py - runtime/active_artifact_manifest.yaml - Temp/final_decision_packet_v4.json outputs: - Temp/final_context_for_llm_v5.yaml strict: true timeout_sec: 30 build_final_decision: artifact_policy: keep cache_key: build_final_decision_v1 command: - python - tools/build_final_decision_packet_v4.py - --src - Temp/final_decision_packet_active.json - --out - Temp/final_decision_packet_v4.json depends_on: - finalize_packet id: build_final_decision inputs: - tools/build_final_decision_packet_v4.py - Temp/final_decision_packet_active.json outputs: - Temp/final_decision_packet_v4.json strict: true timeout_sec: 30 build_formula_outputs: artifact_policy: keep cache_key: build_formula_outputs_v1 command: - python - src/quant_engine/compute_formula_outputs.py - --output - Temp/computed_harness_v1.json depends_on: - convert_xlsx id: build_formula_outputs inputs: - src/quant_engine/compute_formula_outputs.py - GatherTradingData.json outputs: - Temp/computed_harness_v1.json strict: true timeout_sec: 30 build_gas_bundle: artifact_policy: keep cache_key: build_gas_bundle_v1 command: - python - tools/build_gas_bundle_v1.py depends_on: [] id: build_gas_bundle inputs: - tools/build_gas_bundle_v1.py - src/gas/core/gas_lib.gs - src/gas_adapter_parts/gdc_01_fetch_fundamentals.gs - src/gas_adapter_parts/gdc_02_account_satellite.gs - src/gas_adapter_parts/gdf_01_price_metrics.gs - src/gas_adapter_parts/gdf_02_harness_assembly.gs - src/gas_adapter_parts/gdf_03_portfolio_gates.gs - src/gas_adapter_parts/gdf_04_execution_quality.gs - src/gas_adapter_parts/gdf_05_alpha_engines.gs - src/gas_adapter_parts/gdf_06_rebalance.gs outputs: - gas_lib.gs - gas_data_collect.gs - gas_data_feed.gs strict: true timeout_sec: 30 build_honest_performance_guard: artifact_policy: keep cache_key: build_honest_performance_guard_v1 command: - python - tools/build_honest_performance_guard_v1.py depends_on: - build_report id: build_honest_performance_guard inputs: - tools/build_honest_performance_guard_v1.py - Temp/rebound_sell_efficiency_v1.json - Temp/late_chase_attribution_v1.json - Temp/operational_report.json outputs: - Temp/honest_performance_guard_v1.json strict: true timeout_sec: 30 build_honest_proof_gap_analyzer: artifact_policy: keep cache_key: build_honest_proof_gap_analyzer_v1 command: - python - tools/build_honest_proof_gap_analyzer_v1.py depends_on: - build_algorithm_guidance_proof id: build_honest_proof_gap_analyzer inputs: - tools/build_honest_proof_gap_analyzer_v1.py - Temp/algorithm_guidance_proof_v1.json - Temp/prediction_accuracy_harness_v2.json - Temp/imputed_data_exposure_gate_v2.json note: RELEASE_GATE_TRUTH 45.1→70 경로 분석 — non-blocking diagnostic outputs: - Temp/honest_proof_gap_analyzer_v1.json strict: false timeout_sec: 30 build_horizon_rebalance_plan: artifact_policy: keep cache_key: build_horizon_rebalance_plan_v1 command: - python - tools/build_horizon_rebalance_plan_v1.py depends_on: - build_strategy_routing_audit - finalize_packet id: build_horizon_rebalance_plan inputs: - tools/build_horizon_rebalance_plan_v1.py - GatherTradingData.json - Temp/strategy_routing_audit_v1.json - Temp/horizon_classification_v1.json note: routing_gate FAIL 시 리밸런싱 우선순위 플랜 산출 — non-blocking outputs: - Temp/horizon_rebalance_plan_v1.json strict: false timeout_sec: 30 build_late_chase_attribution: artifact_policy: keep cache_key: build_late_chase_attribution_v2 command: - python - tools/build_late_chase_attribution_v2.py - --json - GatherTradingData.json - --out - Temp/late_chase_attribution_v2.json depends_on: [] id: build_late_chase_attribution inputs: - tools/build_late_chase_attribution_v2.py - GatherTradingData.json outputs: - Temp/late_chase_attribution_v2.json strict: true timeout_sec: 30 build_live_replay_separation: artifact_policy: keep cache_key: build_live_replay_separation_v3 command: - python - tools/build_live_replay_separation_v3.py - --out - Temp/live_replay_separation_v3.json depends_on: [] id: build_live_replay_separation inputs: - tools/build_live_replay_separation_v3.py outputs: - Temp/live_replay_separation_v3.json strict: true timeout_sec: 30 build_macro_event_ticker_impact: artifact_policy: keep cache_key: build_macro_event_ticker_impact_v1 command: - python - tools/build_macro_event_ticker_impact_v1.py depends_on: [] id: build_macro_event_ticker_impact inputs: - tools/build_macro_event_ticker_impact_v1.py - GatherTradingData.json note: core_satellite 종목별 매크로 이벤트 임팩트 레지스터 — MACRO_EVENT_TICKER_IMPACT_V1 outputs: - Temp/macro_event_ticker_impact_v1.json strict: false timeout_sec: 30 build_missing_formula_bridge: artifact_policy: keep cache_key: build_missing_formula_bridge_v1 command: - python - tools/build_missing_formula_bridge_v1.py depends_on: [] id: build_missing_formula_bridge inputs: - tools/build_missing_formula_bridge_v1.py note: MISSING_FORMULA_BRIDGE_V1 — 10개 공식 커버리지 앵커 등록 (harness auditor PY_FILES) outputs: - Temp/missing_formula_bridge_v1.json strict: false timeout_sec: 30 build_module_io_coverage: artifact_policy: keep cache_key: build_module_io_coverage_v1 command: - python - tools/build_module_io_coverage_v1.py depends_on: [] id: build_module_io_coverage inputs: - tools/build_module_io_coverage_v1.py - spec/48_module_io_contract_registry.yaml outputs: - Temp/module_io_coverage_v1.json strict: true timeout_sec: 30 build_operating_cadence_signal: artifact_policy: keep cache_key: build_operating_cadence_signal_v1 command: - python - tools/build_operating_cadence_signal_v1.py - --timezone - Asia/Seoul - --out - Temp/operating_cadence_signal_v1.json depends_on: [] id: build_operating_cadence_signal inputs: - tools/build_operating_cadence_signal_v1.py outputs: - Temp/operating_cadence_signal_v1.json strict: true timeout_sec: 30 build_operational_alpha_calibration: artifact_policy: keep cache_key: build_operational_alpha_calibration_v2 command: - python - tools/build_operational_alpha_calibration_v2.py depends_on: - build_prediction_accuracy_harness - build_alpha_feedback_loop - build_realized_performance id: build_operational_alpha_calibration inputs: - tools/build_operational_alpha_calibration_v2.py - Temp/outcome_quality_score_v1.json - Temp/prediction_accuracy_harness_v2.json - Temp/trade_quality_from_t5_v1.json - Temp/smart_cash_recovery_v5.json note: WBS-4.3 operational alpha calibration — non-blocking diagnostic outputs: - Temp/operational_alpha_calibration_v2.json strict: false timeout_sec: 30 build_operational_eval_queue: artifact_policy: keep cache_key: build_operational_eval_queue_v1 command: - python - tools/build_operational_eval_queue_v1.py - --history - Temp/proposal_evaluation_history.json - --out - Temp/operational_eval_queue_v1.json depends_on: - update_proposal_evaluation_history id: build_operational_eval_queue inputs: - tools/build_operational_eval_queue_v1.py - Temp/proposal_evaluation_history.json note: OPERATIONAL_EVAL_QUEUE_V1 — T+20 평가 대기 큐 (due_date 초과 종목 목록) outputs: - Temp/operational_eval_queue_v1.json strict: false timeout_sec: 30 build_operational_outcome_lock: artifact_policy: keep cache_key: build_operational_outcome_lock_v1 command: - python - tools/build_operational_outcome_lock_v1.py - --history - Temp/proposal_evaluation_history.json - --out - Temp/operational_outcome_lock_v1.json depends_on: - update_proposal_evaluation_history id: build_operational_outcome_lock inputs: - tools/build_operational_outcome_lock_v1.py - Temp/proposal_evaluation_history.json note: OPERATIONAL_OUTCOME_LOCK_V1 — 실운영 T+20 성과 잠금 (30건 이상 누적 후 활성화) outputs: - Temp/operational_outcome_lock_v1.json strict: false timeout_sec: 30 build_prediction_accuracy_harness: artifact_policy: keep cache_key: build_prediction_accuracy_harness_v2 command: - python - tools/build_prediction_accuracy_harness_v2.py depends_on: - update_proposal_evaluation_history id: build_prediction_accuracy_harness inputs: - tools/build_prediction_accuracy_harness_v2.py - Temp/proposal_evaluation_history.json note: WBS-4.2 prediction accuracy harness — non-blocking diagnostic outputs: - Temp/prediction_accuracy_harness_v2.json strict: false timeout_sec: 30 build_profit_giveback_ratchet: artifact_policy: keep cache_key: build_profit_giveback_ratchet_v2 command: - python - tools/build_profit_giveback_ratchet_v2.py - --json - GatherTradingData.json - --out - Temp/profit_giveback_ratchet_v2.json depends_on: [] id: build_profit_giveback_ratchet inputs: - tools/build_profit_giveback_ratchet_v2.py - GatherTradingData.json outputs: - Temp/profit_giveback_ratchet_v2.json strict: true timeout_sec: 30 build_provenance_ledger: artifact_policy: keep cache_key: build_provenance_ledger_v1 command: - python - tools/build_number_provenance_ledger_v4.py - --packet - Temp/final_decision_packet_v4.json - --out - Temp/number_provenance_ledger_v4.json depends_on: - build_final_decision id: build_provenance_ledger inputs: - tools/build_number_provenance_ledger_v4.py - Temp/final_decision_packet_v4.json outputs: - Temp/number_provenance_ledger_v4.json strict: true timeout_sec: 30 build_qualitative_sell_inputs: artifact_policy: keep cache_key: build_qualitative_sell_inputs_v1 command: - python - tools/build_qualitative_sell_inputs_v1.py - --batch - --workbook - GatherTradingData.xlsx - --apply depends_on: [] id: build_qualitative_sell_inputs inputs: - tools/build_qualitative_sell_inputs_v1.py - tools/build_macro_context_from_workbook_v1.py - tools/fetch_naver_market_data_v1.py - src/quant_engine/kis_api_client_v1.py - GatherTradingData.xlsx note: Naver 시세/수급 실시간 스크래핑 의존(warn_only) — 보유종목별 비기계적 매도전략 confluence 판단. 공매도잔고율은 --short-csv 수동 주입 전까지 구조적으로 DATA_MISSING(추정 금지) — 정상 동작. 호가10단계·공매도거래비중은 --kis-account {real,mock} 옵션으로 KIS Open API(read-only) 조회 가능(2026-06-21 연동) — DAG 기본 실행에는 미포함(자격증명 의존, 수동 실행 시에만 부여). outputs: - outputs/qualitative_sell_strategy/*.json strict: false timeout_sec: 120 warn_only: true build_ratchet_trailing_general: artifact_policy: keep cache_key: build_ratchet_trailing_general_v1 command: - python - tools/build_ratchet_trailing_general_v1.py depends_on: - convert_xlsx id: build_ratchet_trailing_general inputs: - tools/build_ratchet_trailing_general_v1.py - GatherTradingData.json note: 'phase1_gate: profit ratchet coverage_pct >= 99 검증' outputs: - Temp/ratchet_trailing_general_v1.json strict: false timeout_sec: 30 build_realized_performance: artifact_policy: keep cache_key: build_realized_performance_v1 command: - python - tools/build_realized_performance_v1.py depends_on: - build_data_gated_progress id: build_realized_performance inputs: - tools/build_realized_performance_v1.py - GatherTradingData.json - Temp/proposal_evaluation_history.json note: WBS-4.1 realized performance replay summary — non-blocking diagnostic outputs: - Temp/realized_performance_v1.json strict: false timeout_sec: 30 build_rebalance_sheet: artifact_policy: keep cache_key: build_rebalance_engine_v1 command: - python - tools/build_rebalance_engine_v1.py - --json - GatherTradingData.json - --harness - Temp/computed_harness_v1.json depends_on: - convert_xlsx id: build_rebalance_sheet inputs: - tools/build_rebalance_engine_v1.py - GatherTradingData.json note: computed_harness_v1.json 없으면 regime=NEUTRAL fallback — WARN 허용 outputs: - Temp/rebalance_engine_v1.json strict: false timeout_sec: 30 build_regime_trim_guidance: artifact_policy: keep cache_key: build_regime_trim_guidance_v1 command: - python - tools/build_regime_trim_guidance_v1.py depends_on: - convert_xlsx id: build_regime_trim_guidance inputs: - tools/build_regime_trim_guidance_v1.py - GatherTradingData.json note: REGIME_TRIM_GUIDANCE_V1 — regime_trim_guidance 딕셔너리 추출 (regime_trim_guidance_json) outputs: - Temp/regime_trim_guidance_v1.json strict: false timeout_sec: 30 build_report: artifact_policy: keep cache_key: build_report_v1 command: - python - tools/render_operational_report.py - --json - GatherTradingData.json - --output - Temp/operational_report.md - --report-json-output - Temp/operational_report.json depends_on: - convert_xlsx - build_final_decision id: build_report inputs: - tools/render_operational_report.py - GatherTradingData.json - Temp/final_decision_packet_active.json outputs: - Temp/operational_report.md - Temp/operational_report.json strict: true timeout_sec: 60 build_routing_execution_log: artifact_policy: keep cache_key: build_routing_execution_log_v1 command: - python - tools/build_routing_execution_log_v1.py depends_on: - convert_xlsx id: build_routing_execution_log inputs: - tools/build_routing_execution_log_v1.py - GatherTradingData.json note: 'phase1_gate: routing decision path completeness + stage_coverage_pct/request_route' outputs: - Temp/routing_execution_log_v1.json - Temp/routing_execution_log_table_v1.json strict: false timeout_sec: 30 build_satellite_candidate_recommendations: artifact_policy: keep cache_key: build_satellite_candidate_recommendations_v1 command: - python - tools/build_satellite_candidate_recommendations_v1.py - --workbook - GatherTradingData.xlsx - --apply depends_on: [] id: build_satellite_candidate_recommendations inputs: - tools/build_satellite_candidate_recommendations_v1.py - tools/fetch_naver_market_data_v1.py - GatherTradingData.xlsx note: universe 시트 미보유 후보(60종) 전체 Naver 시세 조회 — warn_only. --trade-csv 없으면 sector_export_trend 전부 DATA_MISSING(정상, 추정 금지). outputs: - outputs/qualitative_sell_strategy/satellite_recommendations.json strict: false timeout_sec: 180 warn_only: true build_schema_models: artifact_policy: keep cache_key: build_schema_models_v1 command: - python - tools/generate_models_from_schema.py depends_on: [] id: build_schema_models inputs: - tools/generate_models_from_schema.py - schemas/generated outputs: - Temp/schema_model_generation_v1.json strict: true timeout_sec: 30 build_sector_flow_history_progress: artifact_policy: keep cache_key: build_sector_flow_history_progress_v1 command: - python - tools/build_sector_flow_history_progress_v1.py depends_on: - build_data_gated_progress id: build_sector_flow_history_progress inputs: - tools/build_sector_flow_history_progress_v1.py - GatherTradingData.json note: WBS-2.5 sector_flow_history 30일 누적 진척도 — non-blocking diagnostic outputs: - Temp/sector_flow_history_progress_v1.json strict: false timeout_sec: 30 build_sector_trend_analysis: artifact_policy: keep cache_key: build_sector_trend_analysis_v1 command: - python - tools/build_sector_trend_analysis_v1.py depends_on: - convert_xlsx id: build_sector_trend_analysis inputs: - tools/build_sector_trend_analysis_v1.py - GatherTradingData.json note: SECTOR_TREND_ANALYSIS_V1 — ETF proxy 기반 섹터 동향 + smart money 렌즈 집계 outputs: - Temp/sector_trend_analysis_v1.json strict: false timeout_sec: 30 build_shadow_ledger: artifact_policy: keep cache_key: build_shadow_ledger_v2 command: - python - tools/build_shadow_ledger_v2.py - --out - Temp/shadow_ledger_v2.json depends_on: [] id: build_shadow_ledger inputs: - tools/build_shadow_ledger_v2.py outputs: - Temp/shadow_ledger_v2.json strict: true timeout_sec: 30 build_shadow_promotion: artifact_policy: keep cache_key: build_shadow_promotion_v1 command: - python - tools/build_shadow_promotion_scorecard_v1.py - --shadow - Temp/shadow_ledger_v2.json - --live-replay - Temp/live_replay_separation_v3.json contract: spec/57_shadow_promotion_scorecard.yaml depends_on: - build_shadow_ledger - build_live_replay_separation id: build_shadow_promotion inputs: - tools/build_shadow_promotion_scorecard_v1.py - Temp/shadow_ledger_v2.json - Temp/live_replay_separation_v3.json outputs: - Temp/shadow_promotion_scorecard_v1.json strict: true timeout_sec: 30 build_smart_cash_recovery_v3: artifact_policy: keep cache_key: build_smart_cash_recovery_v3 command: - python - tools/build_smart_cash_recovery_v3.py depends_on: - build_value_preservation_scorer id: build_smart_cash_recovery_v3 inputs: - tools/build_smart_cash_recovery_v3.py - GatherTradingData.json - Temp/value_preservation_scorer_v1.json note: 'phase1_gate: smart cash recovery V3 gate=PASS/CAUTION' outputs: - Temp/smart_cash_recovery_v3.json strict: false timeout_sec: 30 build_strategy_routing_audit: artifact_policy: keep cache_key: build_strategy_routing_audit_v1 command: - python - tools/build_strategy_routing_audit_v1.py depends_on: - inject_harness id: build_strategy_routing_audit inputs: - tools/build_strategy_routing_audit_v1.py - GatherTradingData.json - Temp/horizon_classification_v1.json - Temp/capital_style_allocation_v1.json note: routing_gate 공식 산출 — MID/SHORT/LONG 호라이즌 상한 검증 outputs: - Temp/strategy_routing_audit_v1.json strict: false timeout_sec: 30 build_time_stop_forecast: artifact_policy: keep cache_key: build_time_stop_forecast_v1 command: - python - tools/build_time_stop_forecast_v1.py - --harness - Temp/computed_harness_v1.json depends_on: - build_formula_outputs id: build_time_stop_forecast inputs: - tools/build_time_stop_forecast_v1.py - Temp/computed_harness_v1.json note: WARN 허용 (발동 임박 = 경고, 미발동 = PASS) outputs: - Temp/time_stop_forecast_v1.json strict: false timeout_sec: 30 build_value_preservation_scorer: artifact_policy: keep cache_key: build_value_preservation_scorer_v1 command: - python - tools/build_value_preservation_scorer_v1.py depends_on: - convert_xlsx id: build_value_preservation_scorer inputs: - tools/build_value_preservation_scorer_v1.py - GatherTradingData.json note: 'phase1_gate: value preservation gate=PASS/CAUTION/WATCH_PENDING_SAMPLE' outputs: - Temp/value_preservation_scorer_v1.json strict: false timeout_sec: 30 build_velocity: artifact_policy: keep cache_key: build_velocity_v1 command: - python - tools/build_velocity_v1.py depends_on: - convert_xlsx id: build_velocity inputs: - tools/build_velocity_v1.py - GatherTradingData.json note: VELOCITY_V1 — velocity_1d/velocity_5d 포트폴리오 중앙값 집계 (anti_late_entry_json) outputs: - Temp/velocity_v1.json strict: false timeout_sec: 30 convert_xlsx: artifact_policy: keep cache_key: convert_xlsx_v1 command: - python - tools/convert_xlsx_to_json.py depends_on: [] id: convert_xlsx inputs: - GatherTradingData.xlsx outputs: - GatherTradingData.json strict: true timeout_sec: 30 finalize_packet: artifact_policy: keep cache_key: finalize_packet_v1 command: - python - tools/build_packet_from_context_v1.py depends_on: - inject_harness id: finalize_packet inputs: - tools/build_packet_from_context_v1.py - Temp/final_decision_packet_active.json outputs: - Temp/final_decision_packet_active.json strict: true timeout_sec: 30 inject_harness: artifact_policy: keep cache_key: inject_harness_v1 command: - python - src/quant_engine/inject_computed_harness.py - GatherTradingData.json - --output - Temp/final_decision_packet_active.json depends_on: - build_formula_outputs id: inject_harness inputs: - src/quant_engine/inject_computed_harness.py - GatherTradingData.json - Temp/computed_harness_v1.json outputs: - Temp/final_decision_packet_active.json strict: true timeout_sec: 30 prepare_zip: artifact_policy: keep cache_key: prepare_zip_v1 command: - python - tools/prepare_upload_zip.py - --skip-validate - --skip-convert - --validation-mode - package-only depends_on: - audit_entropy - validate_execution_precedence_lock_v2 - validate_order_grammar_v1 - validate_specs - validate_no_direct_api_trading - validate_active_manifest - validate_report_sync - validate_report_numeric_consistency - validate_field_dict - validate_provenance - validate_low_capability - validate_low_capability_pipeline_todo_v2 - validate_golden_coverage - validate_calibration - validate_schema_model - validate_gas_adapter - build_gas_bundle - validate_gas_adapter_contract - validate_gas_bundle_sync - validate_agents_shrink - validate_no_replay_live_mix - validate_prediction_accuracy_harness - validate_alpha_feedback_loop - validate_operational_alpha_calibration - validate_realized_performance - validate_data_gated_progress - validate_sector_flow_history_progress - validate_runtime_source_whitelist - validate_cash_ledger - validate_factor_lifecycle - validate_factor_lifecycle_registry_v1 - validate_factor_lifecycle_completeness - validate_metric_alias_collision - validate_architecture_boundaries - validate_module_io_coverage - validate_artifact_chain_hash - validate_artifact_sync - validate_renderer_no_calc - validate_packaged_refs - validate_property_invariants - validate_anti_late_entry - validate_rule_lifecycle - validate_change_requests - validate_completion_harness_instructions - validate_engine_health_card - validate_llm_regression - validate_llm_copy_only - build_final_decision - build_final_context - build_provenance_ledger - build_live_replay_separation - build_late_chase_attribution - build_profit_giveback_ratchet - build_shadow_ledger - build_operating_cadence_signal - build_engine_health_card - build_module_io_coverage - build_artifact_chain_hash - build_report - build_bundle - build_schema_models - build_architecture_boundaries - validate_decision_trace - validate_factor_conflicts - validate_no_lookahead - validate_execution_sim - validate_render_diff - build_shadow_promotion - validate_llm_determinism - build_time_stop_forecast - validate_live_activation - build_rebalance_sheet - build_prediction_accuracy_harness - build_alpha_feedback_loop - build_calibration_priority - build_calibration_change_ledger - build_calibration_review_report - build_calibration_approval_list - build_calibration_decision_draft - build_operational_alpha_calibration - build_sector_flow_history_progress id: prepare_zip inputs: - tools/prepare_upload_zip.py outputs: [] strict: true timeout_sec: 60 update_proposal_evaluation_history: artifact_policy: keep cache_key: update_proposal_evaluation_history_v2 command: - python - tools/update_proposal_evaluation_history.py - --json - GatherTradingData.json - --history - Temp/proposal_evaluation_history.json depends_on: - finalize_packet id: update_proposal_evaluation_history inputs: - tools/update_proposal_evaluation_history.py - GatherTradingData.json note: PROPOSAL_EVALUATION_HISTORY — T+1/T+5/T+20 운영 성과 누적 (core_satellite + order_blueprint 기반, 일간 idempotent) outputs: - Temp/proposal_evaluation_history.json strict: false timeout_sec: 30 validate_active_manifest: artifact_policy: keep cache_key: validate_active_manifest_v1 command: - python - tools/validate_active_manifest.py - --manifest - runtime/active_artifact_manifest.yaml - --strict depends_on: [] id: validate_active_manifest inputs: - tools/validate_active_manifest.py - runtime/active_artifact_manifest.yaml outputs: [] strict: true timeout_sec: 30 validate_agents_shrink: artifact_policy: keep cache_key: validate_agents_shrink_v1 command: - python - tools/validate_agents_shrink_v1.py depends_on: [] id: validate_agents_shrink inputs: - tools/validate_agents_shrink_v1.py - AGENTS.md outputs: [] strict: true timeout_sec: 30 validate_alpha_feedback_loop: artifact_policy: keep cache_key: validate_alpha_feedback_loop_v2 command: - python - tools/validate_alpha_feedback_loop_v2.py depends_on: - build_alpha_feedback_loop id: validate_alpha_feedback_loop inputs: - tools/validate_alpha_feedback_loop_v2.py - Temp/alpha_feedback_loop_v2.json outputs: - Temp/validate_alpha_feedback_loop_v2.json strict: true timeout_sec: 30 validate_anti_late_entry: artifact_policy: keep cache_key: validate_anti_late_entry_v1 command: - python - tools/validate_anti_late_entry_harness_v1.py - --json - Temp/late_chase_attribution_v2.json depends_on: - build_late_chase_attribution id: validate_anti_late_entry inputs: - tools/validate_anti_late_entry_harness_v1.py - Temp/late_chase_attribution_v2.json outputs: [] strict: true timeout_sec: 30 validate_anti_late_entry_gate_v5: artifact_policy: keep cache_key: validate_anti_late_entry_gate_v5 command: - python - tools/validate_anti_late_entry_gate_v5.py depends_on: [] id: validate_anti_late_entry_gate_v5 inputs: - tools/validate_anti_late_entry_gate_v5.py - GatherTradingData.json outputs: - Temp/anti_late_entry_gate_validation_v5.json strict: true timeout_sec: 30 validate_architecture_boundaries: artifact_policy: keep cache_key: validate_architecture_boundaries_v2 command: - python - tools/validate_architecture_boundaries_v2.py depends_on: - build_architecture_boundaries id: validate_architecture_boundaries inputs: - tools/validate_architecture_boundaries_v2.py - Temp/architecture_boundaries_v2.json outputs: [] strict: true timeout_sec: 30 validate_artifact_chain_hash: artifact_policy: keep cache_key: validate_artifact_chain_hash_v4 command: - python - tools/validate_artifact_chain_hash_v4.py depends_on: - build_artifact_chain_hash id: validate_artifact_chain_hash inputs: - tools/validate_artifact_chain_hash_v4.py - Temp/artifact_chain_hash_v4.json outputs: [] strict: true timeout_sec: 30 validate_artifact_sync: artifact_policy: keep cache_key: validate_artifact_sync_v1 command: - python - tools/validate_artifact_sync_v1.py - --engine-result - Temp/engine_harness_gate_result.json - --manifest - runtime/active_artifact_manifest.yaml - --registry - Temp/formula_runtime_registry_v1.json depends_on: - validate_engine_health_card id: validate_artifact_sync inputs: - tools/validate_artifact_sync_v1.py - Temp/engine_harness_gate_result.json - Temp/formula_runtime_registry_v1.json - runtime/active_artifact_manifest.yaml outputs: [] strict: false timeout_sec: 30 warn_only: true validate_calibration: artifact_policy: keep cache_key: validate_calibration_v1 command: - python - tools/validate_calibration_registry_v1.py depends_on: [] id: validate_calibration inputs: - tools/validate_calibration_registry_v1.py outputs: [] strict: true timeout_sec: 30 validate_cash_floor_policy_v1: artifact_policy: keep cache_key: validate_cash_floor_policy_v1 command: - python - tools/validate_cash_floor_policy_v1.py depends_on: - build_report id: validate_cash_floor_policy_v1 inputs: - tools/validate_cash_floor_policy_v1.py - GatherTradingData.json - Temp/operational_report.json outputs: - Temp/cash_floor_policy_validation_v1.json strict: true timeout_sec: 30 validate_cash_ledger: artifact_policy: keep cache_key: validate_cash_ledger_v2 command: - python - tools/validate_cash_ledger_v2.py - --snapshot - GatherTradingData.json - --contract - spec/15_account_snapshot_contract.yaml depends_on: [] id: validate_cash_ledger inputs: - tools/validate_cash_ledger_v2.py - GatherTradingData.json - spec/15_account_snapshot_contract.yaml outputs: [] strict: true timeout_sec: 30 validate_change_requests: artifact_policy: keep cache_key: validate_change_requests_v1 command: - python - tools/validate_change_requests_v1.py - --dir - governance/change_requests - --strict depends_on: [] id: validate_change_requests inputs: - tools/validate_change_requests_v1.py outputs: [] strict: true timeout_sec: 30 validate_completion_harness_instructions: artifact_policy: keep cache_key: validate_completion_harness_instructions_v1 command: - python - tools/validate_completion_harness_instructions_v1.py depends_on: [] id: validate_completion_harness_instructions inputs: - tools/validate_completion_harness_instructions_v1.py - AGENTS.md - REPORT_GUIDE.md - docs/runbook.md - docs/ROADMAP_WBS.md - docs/doctrine.md - prompts/analysis_prompt.md - prompts/review_prompt.md - prompts/capture_parse_prompt.md - prompts/engine_audit_master_prompt_v2.md - prompts/engine_audit_master_prompt_v3.md - prompts/engine_audit_prompt.md - prompts/low_capability_report_renderer.md - prompts/report_renderer_prompt.md - prompts/weekly_operational_report_master_prompt_v1.md outputs: - Temp/completion_harness_instructions_v1.json strict: true timeout_sec: 30 validate_data_gated_progress: artifact_policy: keep cache_key: validate_data_gated_progress_v1 command: - python - tools/validate_data_gated_progress_v1.py depends_on: - build_data_gated_progress id: validate_data_gated_progress inputs: - tools/validate_data_gated_progress_v1.py - Temp/data_gated_progress_v1.json note: WBS-4.x DATA_GATED 진척도 계약 검증 outputs: - Temp/validate_data_gated_progress_v1.json strict: true timeout_sec: 30 validate_decision_graph_precedence_v1: artifact_policy: keep cache_key: validate_decision_graph_precedence_v1 command: - python - tools/validate_decision_graph_precedence_v1.py depends_on: [] id: validate_decision_graph_precedence_v1 inputs: - tools/validate_decision_graph_precedence_v1.py - spec/routing/decision_graph.yaml outputs: - Temp/decision_graph_precedence_validation_v1.json strict: true timeout_sec: 30 validate_decision_trace: artifact_policy: keep cache_key: validate_decision_trace_v1 command: - python - tools/validate_decision_trace_replay_v1.py - --packet - Temp/final_decision_packet_active.json - --harness - Temp/computed_harness_v1.json contract: spec/52_decision_trace_replay_contract.yaml depends_on: - finalize_packet - build_formula_outputs id: validate_decision_trace inputs: - tools/validate_decision_trace_replay_v1.py - Temp/final_decision_packet_active.json - Temp/computed_harness_v1.json outputs: - Temp/decision_trace_replay_v1.json strict: true timeout_sec: 30 validate_docs_no_formula_duplication: artifact_policy: keep cache_key: validate_docs_no_formula_duplication_v1 command: - python - tools/validate_docs_no_formula_duplication_v1.py depends_on: [] id: validate_docs_no_formula_duplication inputs: - tools/validate_docs_no_formula_duplication_v1.py - AGENTS.md - docs/doctrine.md - docs/runbook.md outputs: - Temp/docs_no_formula_duplication_v1.json strict: true timeout_sec: 30 validate_engine_health_card: artifact_policy: keep cache_key: validate_engine_health_card_v1 command: - python - tools/validate_engine_health_card_v1.py - --json - Temp/engine_health_card_v1.json depends_on: - build_engine_health_card id: validate_engine_health_card inputs: - tools/validate_engine_health_card_v1.py - Temp/engine_health_card_v1.json outputs: [] strict: true timeout_sec: 30 validate_execution_precedence_lock_v2: artifact_policy: keep cache_key: validate_execution_precedence_lock_v2 command: - python - tools/validate_execution_precedence_lock_v2.py depends_on: - build_honest_performance_guard id: validate_execution_precedence_lock_v2 inputs: - tools/validate_execution_precedence_lock_v2.py - Temp/final_execution_decision_v4.json outputs: - Temp/execution_precedence_lock_v2.json strict: true timeout_sec: 30 validate_execution_sim: artifact_policy: keep cache_key: validate_execution_sim_v1 command: - python - tools/validate_execution_simulator_v1.py - --packet - Temp/final_decision_packet_active.json contract: spec/55_execution_simulator_contract.yaml depends_on: - finalize_packet id: validate_execution_sim inputs: - tools/validate_execution_simulator_v1.py - Temp/final_decision_packet_active.json outputs: - Temp/execution_simulator_v1.json strict: true timeout_sec: 30 validate_factor_conflict_precedence_v1: artifact_policy: keep cache_key: validate_factor_conflict_precedence_v1 command: - python - tools/validate_factor_conflict_precedence_v1.py depends_on: [] id: validate_factor_conflict_precedence_v1 inputs: - tools/validate_factor_conflict_precedence_v1.py - spec/strategy/pre_distribution_early_warning_v4.yaml - spec/strategy/smart_money_liquidity_gate_v1.yaml - spec/09_decision_flow.yaml - GatherTradingData.json outputs: - Temp/factor_conflict_precedence_validation_v1.json strict: true timeout_sec: 30 validate_factor_conflicts: artifact_policy: keep cache_key: validate_factor_conflicts_v1 command: - python - tools/validate_factor_conflict_matrix_v1.py - --taxonomy - spec/43_quant_factor_taxonomy.yaml - --packet - Temp/final_decision_packet_active.json contract: spec/53_factor_conflict_matrix.yaml depends_on: - finalize_packet id: validate_factor_conflicts inputs: - tools/validate_factor_conflict_matrix_v1.py - spec/43_quant_factor_taxonomy.yaml - Temp/final_decision_packet_active.json outputs: - Temp/factor_conflict_matrix_v1.json strict: true timeout_sec: 30 validate_factor_lifecycle: artifact_policy: keep cache_key: validate_factor_lifecycle_v1 command: - python - tools/validate_factor_lifecycle_v1.py - --taxonomy - spec/43_quant_factor_taxonomy.yaml depends_on: [] id: validate_factor_lifecycle inputs: - tools/validate_factor_lifecycle_v1.py - spec/43_quant_factor_taxonomy.yaml outputs: [] strict: true timeout_sec: 30 validate_factor_lifecycle_completeness: artifact_policy: keep cache_key: validate_factor_lifecycle_completeness_v1 command: - python - tools/validate_factor_lifecycle_completeness_v1.py depends_on: - build_factor_shadow_eligibility id: validate_factor_lifecycle_completeness inputs: - tools/validate_factor_lifecycle_completeness_v1.py - spec/factor_lifecycle_registry.yaml - Temp/factor_shadow_eligibility_v1.json outputs: - Temp/factor_lifecycle_completeness_v1.json strict: true timeout_sec: 30 validate_factor_lifecycle_registry_v1: artifact_policy: keep cache_key: validate_factor_lifecycle_registry_v1 command: - python - tools/validate_factor_lifecycle_registry_v1.py depends_on: [] id: validate_factor_lifecycle_registry_v1 inputs: - tools/validate_factor_lifecycle_registry_v1.py - spec/43_quant_factor_taxonomy.yaml - spec/factor_lifecycle_registry.yaml outputs: - Temp/factor_lifecycle_registry_validation_v1.json strict: true timeout_sec: 30 validate_field_dict: artifact_policy: keep cache_key: validate_field_dict_v1 command: - python - tools/validate_field_dictionary.py depends_on: [] id: validate_field_dict inputs: - tools/validate_field_dictionary.py - spec/12_field_dictionary.yaml outputs: [] strict: true timeout_sec: 30 validate_gas_adapter: artifact_policy: keep cache_key: validate_gas_adapter_v1 command: - python - tools/validate_gas_thin_adapter_v1.py depends_on: [] id: validate_gas_adapter inputs: - tools/validate_gas_thin_adapter_v1.py outputs: [] strict: true timeout_sec: 30 validate_gas_adapter_contract: artifact_policy: keep cache_key: validate_gas_adapter_contract_v1 command: - python - tools/validate_gas_adapter_contract_v1.py depends_on: [] id: validate_gas_adapter_contract inputs: - tools/validate_gas_adapter_contract_v1.py - spec/gas_adapter_contract.yaml - schemas/generated/gas_adapter_contract.schema.json - spec/14_raw_workbook_mapping.yaml - spec/15_account_snapshot_contract.yaml outputs: - Temp/gas_adapter_contract_validation_v1.json strict: true timeout_sec: 30 validate_gas_bundle_sync: artifact_policy: keep cache_key: validate_gas_bundle_sync_v1 command: - python - tools/validate_gas_bundle_sync_v1.py depends_on: - build_gas_bundle id: validate_gas_bundle_sync inputs: - tools/validate_gas_bundle_sync_v1.py - gas_lib.gs - gas_data_collect.gs - gas_data_feed.gs - src/gas/core/gas_lib.gs - src/gas_adapter_parts/gdc_01_fetch_fundamentals.gs - src/gas_adapter_parts/gdc_02_account_satellite.gs - src/gas_adapter_parts/gdf_01_price_metrics.gs - src/gas_adapter_parts/gdf_02_harness_assembly.gs - src/gas_adapter_parts/gdf_03_portfolio_gates.gs - src/gas_adapter_parts/gdf_04_execution_quality.gs - src/gas_adapter_parts/gdf_05_alpha_engines.gs - src/gas_adapter_parts/gdf_06_rebalance.gs outputs: - Temp/gas_bundle_validation_v1.json strict: true timeout_sec: 30 validate_golden_coverage: artifact_policy: keep cache_key: validate_golden_coverage_v1 command: - python - tools/validate_golden_coverage_100.py depends_on: [] id: validate_golden_coverage inputs: - tools/validate_golden_coverage_100.py outputs: [] strict: true timeout_sec: 30 validate_honest_performance_guard_v1: artifact_policy: keep cache_key: validate_honest_performance_guard_v1 command: - python - tools/validate_honest_performance_guard_v1.py depends_on: - build_honest_performance_guard id: validate_honest_performance_guard_v1 inputs: - tools/validate_honest_performance_guard_v1.py - Temp/prediction_accuracy_harness_v2.json - Temp/honest_performance_guard_v1.json outputs: - Temp/honest_performance_guard_validation_v1.json strict: true timeout_sec: 30 validate_json_generator_outputs: artifact_policy: keep cache_key: validate_json_generator_outputs_v1 command: - python - tools/validate_json_generator_outputs_v1.py depends_on: - inject_harness - finalize_packet - build_report id: validate_json_generator_outputs inputs: - tools/validate_json_generator_outputs_v1.py - Temp/computed_harness_v1.json - Temp/final_decision_packet_active.json - Temp/operational_report.json outputs: - Temp/json_generator_outputs_v1.json strict: true timeout_sec: 30 validate_live_activation: artifact_policy: keep cache_key: validate_live_activation_v1 command: - python - tools/validate_live_data_activation_gate_v1.py depends_on: [] id: validate_live_activation inputs: - tools/validate_live_data_activation_gate_v1.py - Temp/continuous_evaluation_dashboard_v1.json - Temp/prediction_accuracy_harness_v2.json - Temp/algorithm_guidance_proof_v1.json - Temp/pass_100_criteria_v3.json note: PENDING(live_t20<30) = 정상. FAIL = 전환 조건 미충족. 2026-07-15 자동 활성화 예정. outputs: - Temp/live_data_activation_gate_v1.json strict: false timeout_sec: 30 validate_llm_copy_only: artifact_policy: keep cache_key: validate_llm_copy_only_v1 command: - python - tools/validate_llm_copy_only_output_v1.py - --packet - Temp/final_decision_packet_active.json - --report - Temp/operational_report.json depends_on: - build_report - build_final_decision id: validate_llm_copy_only inputs: - tools/validate_llm_copy_only_output_v1.py - Temp/final_decision_packet_active.json - Temp/operational_report.json outputs: [] strict: true timeout_sec: 30 validate_llm_determinism: artifact_policy: keep cache_key: validate_llm_determinism_v1 command: - python - tools/validate_llm_determinism_pack_v1.py - --context - Temp/final_context_for_llm_v5.yaml contract: spec/58_llm_determinism_contract.yaml depends_on: - build_final_context id: validate_llm_determinism inputs: - tools/validate_llm_determinism_pack_v1.py - Temp/final_context_for_llm_v5.yaml outputs: - Temp/llm_determinism_pack_v1.json strict: true timeout_sec: 30 validate_llm_regression: artifact_policy: keep cache_key: validate_llm_regression_v1 command: - python - tools/run_low_capability_llm_regression_v1.py - --fixture - tests/llm_regression - --context - Temp/final_context_for_llm_v5.yaml depends_on: - build_final_context id: validate_llm_regression inputs: - tools/run_low_capability_llm_regression_v1.py - Temp/final_context_for_llm_v5.yaml outputs: [] strict: true timeout_sec: 30 validate_low_capability: artifact_policy: keep cache_key: validate_low_capability_v1 command: - python - tools/validate_low_capability_pack_v1.py - --context - Temp/final_context_for_llm_v5.yaml - --contract - spec/46_low_capability_execution_pack.yaml depends_on: - build_final_context id: validate_low_capability inputs: - tools/validate_low_capability_pack_v1.py - Temp/final_context_for_llm_v5.yaml - spec/46_low_capability_execution_pack.yaml outputs: [] strict: true timeout_sec: 30 validate_low_capability_pipeline_todo_v2: artifact_policy: keep cache_key: validate_low_capability_pipeline_todo_v2 command: - python - tools/validate_low_capability_pipeline_todo_v2.py depends_on: [] id: validate_low_capability_pipeline_todo_v2 inputs: - tools/validate_low_capability_pipeline_todo_v2.py - spec/23_low_capability_llm_pipeline_todo.yaml outputs: - Temp/low_capability_pipeline_todo_validation_v2.json strict: true timeout_sec: 30 validate_metric_alias_collision: artifact_policy: keep cache_key: validate_metric_alias_collision_v1 command: - python - tools/validate_metric_alias_collision_v1.py - --registry - spec/25_canonical_metrics_registry.yaml - --report - Temp/operational_report.json depends_on: [] id: validate_metric_alias_collision inputs: - tools/validate_metric_alias_collision_v1.py - spec/25_canonical_metrics_registry.yaml - Temp/operational_report.json outputs: [] strict: true timeout_sec: 30 validate_module_io_coverage: artifact_policy: keep cache_key: validate_module_io_coverage_v1 command: - python - tools/validate_module_io_coverage_v1.py depends_on: - build_module_io_coverage id: validate_module_io_coverage inputs: - tools/validate_module_io_coverage_v1.py - Temp/module_io_coverage_v1.json outputs: [] strict: true timeout_sec: 30 validate_no_direct_api_trading: artifact_policy: keep cache_key: validate_no_direct_api_trading_v1 command: - python - tools/validate_no_direct_api_trading_v1.py depends_on: [] id: validate_no_direct_api_trading inputs: - tools/validate_no_direct_api_trading_v1.py - src/quant_engine/kis_api_client_v1.py - governance/rules/06_no_direct_api_trading.yaml note: '[CRITICAL] 매수/매도 API 직접 실행 절대 금지 게이트 — warn_only 불가, 완화 대상 아님(사용자 직접 지시 2026-06-21). 순수 stdlib만 사용해 Synology ARMv7 CI에서도 항상 실행 가능.' outputs: [] strict: true timeout_sec: 30 validate_no_lookahead: artifact_policy: keep cache_key: validate_no_lookahead_v1 command: - python - tools/validate_no_lookahead_bias_v1.py - --harness - Temp/computed_harness_v1.json contract: spec/54_temporal_data_integrity.yaml depends_on: - build_formula_outputs id: validate_no_lookahead inputs: - tools/validate_no_lookahead_bias_v1.py - Temp/computed_harness_v1.json outputs: - Temp/no_lookahead_bias_v1.json strict: true timeout_sec: 30 validate_no_replay_live_mix: artifact_policy: keep cache_key: validate_no_replay_live_mix_v2 command: - python - tools/validate_no_replay_live_mix_v2.py - --json - Temp/live_replay_separation_v3.json - --strict depends_on: - build_live_replay_separation id: validate_no_replay_live_mix inputs: - tools/validate_no_replay_live_mix_v2.py - Temp/live_replay_separation_v3.json outputs: [] strict: true timeout_sec: 30 validate_operational_alpha_calibration: artifact_policy: keep cache_key: validate_operational_alpha_calibration_v2 command: - python - tools/validate_operational_alpha_calibration_v2.py depends_on: - build_operational_alpha_calibration id: validate_operational_alpha_calibration inputs: - tools/validate_operational_alpha_calibration_v2.py - Temp/operational_alpha_calibration_v2.json outputs: - Temp/validate_operational_alpha_calibration_v2.json strict: true timeout_sec: 30 validate_order_grammar_v1: artifact_policy: keep cache_key: validate_order_grammar_v1 command: - python - tools/validate_order_grammar_v1.py depends_on: - build_honest_performance_guard id: validate_order_grammar_v1 inputs: - tools/validate_order_grammar_v1.py - GatherTradingData.json outputs: - Temp/order_grammar_validation_v1.json strict: true timeout_sec: 30 validate_packaged_refs: artifact_policy: keep cache_key: validate_packaged_refs_v1 command: - python - tools/validate_packaged_artifact_references_v1.py - --strict depends_on: [] id: validate_packaged_refs inputs: - tools/validate_packaged_artifact_references_v1.py - runtime/active_artifact_manifest.yaml outputs: [] strict: true timeout_sec: 30 validate_position_sizing: artifact_policy: keep cache_key: validate_position_sizing command: - python - tools/validate_position_sizing.py depends_on: - build_report id: validate_position_sizing inputs: - tools/validate_position_sizing.py - spec/01_objective_profile.yaml - Temp/goal_risk_budget_harness_v3.json outputs: - Temp/position_sizing_validation_v1.json strict: true timeout_sec: 30 validate_prediction_accuracy_harness: artifact_policy: keep cache_key: validate_prediction_accuracy_harness_v2 command: - python - tools/validate_prediction_accuracy_harness_v2.py depends_on: - build_prediction_accuracy_harness id: validate_prediction_accuracy_harness inputs: - tools/validate_prediction_accuracy_harness_v2.py - Temp/prediction_accuracy_harness_v2.json outputs: - Temp/validate_prediction_accuracy_harness_v2.json strict: true timeout_sec: 30 validate_property_invariants: artifact_policy: keep cache_key: validate_property_invariants_v1 command: - python - tools/run_property_tests_v1.py depends_on: [] id: validate_property_invariants inputs: - tools/run_property_tests_v1.py - spec/property_invariants.yaml outputs: - Temp/property_test_result_v1.json strict: true timeout_sec: 30 validate_provenance: artifact_policy: keep cache_key: validate_provenance_v1 command: - python - tools/validate_number_provenance_strict_v3.py - --ledger - Temp/number_provenance_ledger_v4.json - --report - Temp/operational_report.md depends_on: - build_provenance_ledger - build_report id: validate_provenance inputs: - tools/validate_number_provenance_strict_v3.py - Temp/number_provenance_ledger_v4.json - Temp/operational_report.md outputs: [] strict: true timeout_sec: 30 validate_realized_performance: artifact_policy: keep cache_key: validate_realized_performance_v1 command: - python - tools/validate_realized_performance_v1.py depends_on: - build_realized_performance id: validate_realized_performance inputs: - tools/validate_realized_performance_v1.py - Temp/realized_performance_v1.json note: REALIZED_PERFORMANCE_V1 output schema and evidence validation outputs: - Temp/validate_realized_performance_v1.json strict: true timeout_sec: 30 validate_render_diff: artifact_policy: keep cache_key: validate_render_diff_v1 command: - python - tools/validate_report_render_diff_v1.py - --packet - Temp/final_decision_packet_active.json - --report - Temp/operational_report.json contract: spec/56_renderer_copy_only_contract.yaml depends_on: - build_report - finalize_packet id: validate_render_diff inputs: - tools/validate_report_render_diff_v1.py - Temp/final_decision_packet_active.json - Temp/operational_report.json outputs: - Temp/report_render_diff_v1.json strict: true timeout_sec: 30 validate_renderer_no_calc: artifact_policy: keep cache_key: validate_renderer_no_calc_v1 command: - python - tools/validate_renderer_no_calculation_v1.py depends_on: [] id: validate_renderer_no_calc inputs: - tools/validate_renderer_no_calculation_v1.py outputs: [] strict: true timeout_sec: 30 validate_report_numeric_consistency: artifact_policy: keep cache_key: validate_report_numeric_consistency_v1 command: - python - tools/validate_report_numeric_consistency_guard_v2.py - --packet - Temp/final_decision_packet_active.json - --report - Temp/operational_report.json depends_on: - build_report id: validate_report_numeric_consistency inputs: - tools/validate_report_numeric_consistency_guard_v2.py - Temp/final_decision_packet_active.json - Temp/operational_report.json outputs: [] strict: true timeout_sec: 30 validate_report_section_completeness: artifact_policy: keep cache_key: validate_report_section_completeness_v1 command: - python - tools/validate_report_section_completeness_v1.py - --report-json - Temp/operational_report.json depends_on: - build_report id: validate_report_section_completeness inputs: - tools/validate_report_section_completeness_v1.py - Temp/operational_report.json outputs: - Temp/report_section_completeness.json strict: true timeout_sec: 30 validate_report_sync: artifact_policy: keep cache_key: validate_report_sync_v1 command: - python - tools/validate_report_packet_sync_v1.py - --packet - Temp/final_decision_packet_active.json - --report - Temp/operational_report.json depends_on: - build_report id: validate_report_sync inputs: - tools/validate_report_packet_sync_v1.py - Temp/final_decision_packet_active.json - Temp/operational_report.json outputs: [] strict: true timeout_sec: 30 validate_rule_lifecycle: artifact_policy: keep cache_key: validate_rule_lifecycle_v2 command: - python - tools/validate_rule_lifecycle_v2.py - --strict depends_on: - build_shadow_ledger id: validate_rule_lifecycle inputs: - tools/validate_rule_lifecycle_v2.py - Temp/shadow_ledger_v2.json outputs: [] strict: true timeout_sec: 30 validate_runtime_source_whitelist: artifact_policy: keep cache_key: validate_runtime_source_whitelist_v1 command: - python - tools/validate_runtime_source_whitelist_v1.py - --manifest - runtime/active_artifact_manifest.yaml - --scan - src - gas_*.gs depends_on: [] id: validate_runtime_source_whitelist inputs: - tools/validate_runtime_source_whitelist_v1.py - runtime/active_artifact_manifest.yaml outputs: [] strict: true timeout_sec: 30 validate_schema_model: artifact_policy: keep cache_key: validate_schema_model_v1 command: - python - tools/validate_schema_model_generation_v1.py depends_on: - build_schema_models id: validate_schema_model inputs: - tools/validate_schema_model_generation_v1.py - Temp/schema_model_generation_v1.json outputs: [] strict: true timeout_sec: 30 validate_sector_flow_history_progress: artifact_policy: keep cache_key: validate_sector_flow_history_progress_v1 command: - python - tools/validate_sector_flow_history_progress_v1.py depends_on: - build_sector_flow_history_progress id: validate_sector_flow_history_progress inputs: - tools/validate_sector_flow_history_progress_v1.py - Temp/sector_flow_history_progress_v1.json outputs: - Temp/validate_sector_flow_history_progress_v1.json strict: true timeout_sec: 30 validate_sector_universe_monthly_refresh: artifact_policy: keep cache_key: validate_sector_universe_monthly_refresh_v1 command: - python - tools/validate_sector_universe_monthly_refresh_v1.py depends_on: [] id: validate_sector_universe_monthly_refresh inputs: - tools/validate_sector_universe_monthly_refresh_v1.py - GatherTradingData.xlsx note: 섹터 유니버스 월간 갱신 provenance 검증 (warn_only) — GAS 재다운로드 시 Source_URL 소실이 정상. 월간 --apply 실행 후 PASS/WARN 달성. FAIL=비차단 경고만. outputs: - Temp/sector_universe_refresh_validation.json strict: false timeout_sec: 60 warn_only: true validate_specs: artifact_policy: keep cache_key: validate_specs_v1 command: - python - tools/validate_specs.py depends_on: [] id: validate_specs inputs: - tools/validate_specs.py - spec/13_formula_registry.yaml outputs: [] strict: true timeout_sec: 60 execution_order: wave_0: - audit_entropy - build_bundle - build_gas_bundle - build_macro_event_ticker_impact - build_engine_health_card - build_late_chase_attribution - build_live_replay_separation - build_module_io_coverage - build_operating_cadence_signal - build_profit_giveback_ratchet - build_schema_models - build_shadow_ledger - convert_xlsx - validate_active_manifest - validate_agents_shrink - validate_docs_no_formula_duplication - validate_calibration - validate_cash_ledger - validate_change_requests - validate_completion_harness_instructions - validate_factor_lifecycle - validate_factor_lifecycle_registry_v1 - validate_factor_lifecycle_completeness - validate_field_dict - validate_gas_adapter - validate_gas_adapter_contract - validate_golden_coverage - validate_live_activation - validate_metric_alias_collision - validate_packaged_refs - validate_property_invariants - validate_renderer_no_calc - validate_runtime_source_whitelist - validate_sector_universe_monthly_refresh - validate_specs wave_1: - validate_gas_bundle_sync - build_anti_whipsaw_gate - build_data_gated_progress - build_ejce_view_renderer - build_etf_representative_monitor - build_factor_shadow_eligibility - build_formula_outputs - build_sector_flow_history_progress - build_realized_performance - build_missing_formula_bridge - build_ratchet_trailing_general - build_rebalance_sheet - build_regime_trim_guidance - build_routing_execution_log - build_sector_trend_analysis - build_shadow_promotion - build_value_preservation_scorer - build_velocity - validate_anti_late_entry - validate_engine_health_card - validate_module_io_coverage - validate_no_replay_live_mix - validate_realized_performance - validate_rule_lifecycle - validate_schema_model wave_2: - build_smart_cash_recovery_v3 - build_time_stop_forecast - inject_harness - validate_artifact_sync - validate_no_lookahead wave_3: - apply_strategy_execution_locks - build_strategy_routing_audit - finalize_packet wave_4: - build_final_decision - build_horizon_rebalance_plan - validate_decision_trace - validate_execution_sim - validate_factor_conflicts wave_5: - build_final_context - build_provenance_ledger - build_report - update_proposal_evaluation_history - build_operational_eval_queue - build_operational_outcome_lock wave_6: - build_algorithm_guidance_proof - build_artifact_chain_hash - build_calibration_priority - build_calibration_change_ledger - build_calibration_review_report - build_calibration_approval_list - build_calibration_decision_draft - build_alpha_feedback_loop - build_honest_proof_gap_analyzer - build_operational_alpha_calibration - build_prediction_accuracy_harness - validate_data_gated_progress - validate_sector_flow_history_progress - validate_json_generator_outputs - validate_alpha_feedback_loop - validate_llm_copy_only - validate_llm_determinism - validate_llm_regression - validate_low_capability - validate_low_capability_pipeline_todo_v2 - validate_execution_precedence_lock_v2 - validate_order_grammar_v1 - validate_provenance - validate_prediction_accuracy_harness - validate_operational_alpha_calibration - validate_render_diff - validate_report_numeric_consistency - validate_report_section_completeness - validate_report_sync wave_7: - build_architecture_boundaries - validate_artifact_chain_hash wave_8: - validate_architecture_boundaries wave_9: - prepare_zip goal: Linearize package.json scripts into a validated DAG execution graph. has_code_implementation: true meta: code_path: tools/run_release_dag_v3.py has_code_implementation: true schema_version: release_dag.v3 step_count: 104