meta:
  version: "2026-05-28"
  owner: "engine_harness"
  purpose: "전략 실행락 임계값 단일 소스"

strategy_execution_lock_policy:
  outcome_quality_score_v1:
    weights:
      t20_pass_rate: 0.30
      trade_quality_score: 0.25
      rebound_efficiency_score: 0.25
      late_rebound_bucket_score: 0.20
    missing_eval_neutral_score: 50.0
    min_effective_eval_samples: 30
    sample_confidence_weight: 0.20
    pass_threshold: 85.0
    caution_threshold: 50.0
    # Phase-4~5: T5 운영 폴백 계층 (거짓 중립 50 제거)
    t20_fallback_policy:
      # 1순위: 운영 T+20 >= min_effective_eval_samples → 실측 T+20
      # 2순위: 운영 T+20 = 0 AND 운영 T+5 >= min_effective_eval_samples → T5 proxy
      # 3순위: 표본 부족 → neutral_score (명시적 INSUFFICIENT)
      t5_proxy_enabled: true
      t5_proxy_source_label: "t5_operational_proxy"
      neutral_label: "neutral_due_to_insufficient_operational_samples"
    trade_quality_basis_policy:
      # T5 거래품질 도구(TRADE_QUALITY_FROM_T5_V1) gate=PASS 이면 t5_operational 우선
      # 아니면 harness_context_tq, 없으면 NEUTRAL_MISSING
      t5_basis_preferred: true
      t5_basis_label: "t5_operational"
  data_integrity_score_v1:
    required_sheets:
      - data_feed
      - sector_flow
      - macro
      - event_risk
      - core_satellite
      - sell_priority
    data_feed_required_fields:
      - Ticker
      - Close
      - MA20
      - ATR20
      - Volume
    placeholder_tokens:
      - DATA_MISSING
      - ""
      - "-"
      - null
    weights:
      sheet_completeness_pct: 0.25
      cross_mismatch_safety_pct: 0.20
      timeliness_pct: 0.15
      type_presence_pct: 0.10
      required_field_completeness_pct: 0.20
      placeholder_safety_pct: 0.10
    pass_threshold: 90.0
    watch_threshold: 80.0
    captured_at_sla_hours: 30
    timeliness_penalty_if_sla_breached_pct: 30.0
  decision_evidence_score_v1:
    required_keys:
      - ticker
      - order_type
      - validation_status
      - rationale_code
    actionable_order_types:
      - BUY
      - SELL
      - STOP_LOSS
      - ADD_ON
      - STAGED_BUY
    # SELL_RULE: = GAS 매도규칙엔진(SELL_WATERFALL_ENGINE_V1 캐노니컬). DE[0-9]+_ = Direction 규칙(DE1_MANUAL_REVIEW=D2#1)
    rationale_formula_regex: "([A-Z][A-Z0-9_]*_V[0-9]+|NO_EXECUTION:[A-Z_]+|SELL_RULE:[A-Z0-9_]+|DE[0-9]+_[A-Z_]+)"
    weights:
      completeness_pct: 0.55
      conflict_safety_pct: 0.20
      rationale_quality_pct: 0.25
    pass_threshold: 92.0
    caution_threshold: 80.0
    no_actionable_orders_state: NO_ACTIONABLE_ORDERS
  strategy_execution_locks_v1:
    data_integrity_block_threshold: 90.0
    derivation_validity_block_threshold: 90.0
    decision_evidence_block_threshold: 85.0
    outcome_buy_block_threshold: 50.0
    outcome_sell_scale_threshold: 60.0
    outcome_sell_scale_ratio: 0.70
  outcome_eval_window_v1:
    t20_min_days_required: 28
  short_horizon_outcome_monitor_v1:
    min_samples_data_insufficient: 20
    low_conf_samples_threshold: 40
    pass_score_threshold: 60.0
