{
  "status": "success",
  "provider": "codex",
  "model": "gpt-5.4",
  "priority_order": [
    "000660.KS",
    "012450.KS",
    "005930.KS",
    "064400.KS",
    "278470.KS"
  ],
  "portfolio_note": "All five candidates are bullish but explicitly WAIT/HOLD, so no immediate buy should be forced. The batch is wait-heavy, mixed by trade date, and strict cash available above the buffer is only about 298835 KRW; preserve the cash buffer, avoid chase entries, and use at most small triggered adds after fresh price-volume confirmation. Semiconductor exposure through 000660.KS and 005930.KS is acceptable but should not be expanded simultaneously without confirmation.",
  "reason_by_ticker": {
    "000660.KS": {
      "summary": "Highest-confidence thesis and strongest triggered score in the batch, supported by AI/HBM and memory-cycle fundamentals, but still a hold now because price is extended near the upper band and data quality is degraded. Add only after volume-backed breakout above 1162000 or confirmed support on pullback.",
      "reason_codes": [
        "highest_triggered_score",
        "bullish_medium_term_thesis",
        "wait_for_confirmation",
        "volume_confirmation_required",
        "near_upper_bollinger_band",
        "stale_or_degraded_data",
        "held_position_hold_now"
      ],
      "review_required": true
    },
    "012450.KS": {
      "summary": "Strong medium-term defense and aerospace setup with better disclosure support than most candidates, but price is extended and April volume has not confirmed a fresh entry. Keep high on the list, yet require breakout above 1559000 with volume and follow-through or a controlled pullback near 1485000.",
      "reason_codes": [
        "constructive_medium_term_thesis",
        "contract_momentum",
        "better_disclosure_coverage",
        "entry_action_wait",
        "breakout_requires_volume_confirmation",
        "extended_vs_moving_averages",
        "event_confirmation_pending"
      ],
      "review_required": true
    },
    "005930.KS": {
      "summary": "Quality large-cap semiconductor exposure with improving momentum, cash flow, and balance-sheet support, but lower confidence than the top names and still below the 218000-223000 resistance zone. Ranked ahead of smaller/degraded setups due to liquidity and resilience, while additions should wait for confirmed resistance absorption or a supported pullback.",
      "reason_codes": [
        "large_cap_quality_bias",
        "bullish_thesis_but_wait_entry",
        "resistance_breakout_not_confirmed",
        "volume_confirmation_missing",
        "labor_event_risk_pending",
        "sector_overlap_with_semiconductors",
        "held_position_hold_not_add"
      ],
      "review_required": true
    },
    "064400.KS": {
      "summary": "Constructive but less forceful setup: recovered key moving averages and reasonable valuation help, while legacy rating is only HOLD and intraday data is stale. Small existing weight can be held, but new capital should wait for 65500-66000 support confirmation or a volume-backed close above 67200.",
      "reason_codes": [
        "constructive_thesis_but_wait",
        "legacy_hold_rating",
        "support_or_breakout_confirmation_needed",
        "stale_intraday_data",
        "elevated_volatility_and_extension",
        "small_existing_weight",
        "held_position_hold_not_add_now"
      ],
      "review_required": true
    },
    "278470.KS": {
      "summary": "Growth and cash-flow quality are attractive, but this is demoted on conservatism because data quality is weaker, intraday snapshot is missing, disclosures are absent, volume has faded after the prior breakout, and price is extended near highs. Keep as a watch trigger only until 417000-418000 closes with renewed volume or a cleaner pullback support forms.",
      "reason_codes": [
        "constructive_medium_term_thesis",
        "degraded_or_stale_data",
        "intraday_snapshot_missing",
        "no_recent_disclosure_support",
        "volume_confirmation_missing",
        "near_high_extended_from_ema",
        "higher_growth_stock_volatility",
        "add_only_if_triggered"
      ],
      "review_required": true
    }
  }
}