{
  "snapshot_id": "20260415T143522_kis_68944660-01",
  "report_date": "2026-04-15",
  "account_value_krw": 6283110,
  "recommended_cash_after_now_krw": 10,
  "recommended_cash_after_triggered_krw": 10,
  "market_regime": "constructive_but_selective",
  "actions": [
    {
      "canonical_ticker": "000660.KS",
      "display_name": "SK하이닉스",
      "priority": 1,
      "confidence": 0.72,
      "action_now": "HOLD",
      "delta_krw_now": 0,
      "target_weight_now": 0.1829,
      "action_if_triggered": "WATCH_TRIGGER",
      "delta_krw_if_triggered": 0,
      "target_weight_if_triggered": 0.1829,
      "trigger_conditions": [
        "강세: 000660.KS가 1128000 위에서 종가를 형성하고 거래량이 2026-04-14의 4754545주를 초과하면 starter 진입 또는 보유분 증액을 검토한다",
        "강세: 조정 시 1033000-1000000을 방어하고 10일 EMA 부근 993000 위에서 모멘텀이 안정되면 pullback starter를 검토한다",
        "강세 확인 보강: 돌파 또는 지지 확인이 반도체 업종 전반의 양호한 폭과 함께 나타나면 setup_quality를 COMPELLING으로 상향할 수 있다",
        "약세: 993000을 거래량 증가와 약한 업종 폭 속에 이탈하면 전술 노출을 줄인다",
        "약세: 50일 SMA 부근 934700이 무너지면 중기 OVERWEIGHT 근거를 재검토한다",
        "기본적 확인: 다음 실적 또는 가이던스에서 정상화 이익, 보고이익, 자유현금흐름, 재고, 매출채권이 함께 개선되는지 확인한다",
        "공격적 분석가가 강조한 AI 인프라 투자와 HBM 수요 지속이 000660.KS의 가격, 제품 믹스, 마진을 지지하는 경우",
        "DRAM과 NAND 가격 회복이 HBM 단일 서사를 넘어 이익 사이클을 넓히는 경우",
        "Korea Investment & Securities의 28% 이익 추정 상향 이후 추가 추정치 상향이 이어지는 경우",
        "2026-04-15 장중 신고가 이후에도 외국인과 기관 매수가 지속되고 1128000 위 돌파가 거래량으로 확인되는 경우",
        "2026-04-09 투자자관계 공시와 후속 회사 가이던스가 HBM, DRAM, NAND, 현금흐름에 대해 긍정적으로 유지되는 경우",
        "HBM 고객 수요, 가격, 공급 능력이 높아진 기대에 미달하는 경우",
        "DRAM 또는 NAND 가격 회복이 실적 추정치 실현 전에 멈추거나 반전되는 경우",
        "재고, 매출채권, 운전자본 유출이 악화되어 보고이익과 현금흐름의 정합성이 약해지는 경우",
        "capex 확대가 향후 공급과잉이나 마진 압박으로 해석되기 시작하는 경우",
        "미국 ITC 특허 조사, 수출통제, 중국 노출, FX, 인플레이션 충격이 AI 메모리 펀더멘털보다 더 큰 주가 결정 요인이 되는 경우"
      ],
      "rationale": "Highest priority to monitor because the medium-term AI/HBM and memory-cycle thesis is strongest in the batch and the current score is highest, but no add is justified now: entry remains WAIT, price is near reported highs after a vertical rebound, and high fallback count requires review before any trigger-based action.",
      "data_health": {
        "coverage_score": 0.72,
        "vendor_calls": {
          "yfinance": 15,
          "naver": 3,
          "ecos": 1,
          "opendart": 1,
          "alpha_vantage": 2
        },
        "fallback_count": 4,
        "quality_flags": [
          "token_usage_unavailable"
        ],
        "legacy_rating": "OVERWEIGHT",
        "trigger_quality": 0.78,
        "decision_source": "RULE+DEEP",
        "timing_readiness": 0.38,
        "thesis_multiplier": 1.144,
        "timing_now": 0.152,
        "timing_triggered": 0.38,
        "score_now": 0.0621,
        "score_triggered": 0.1803
      },
      "decision_source": "RULE+DEEP+CODEX",
      "timing_readiness": 0.38,
      "reason_codes": [
        "bullish_medium_term_thesis",
        "entry_action_wait",
        "breakout_needs_volume_confirmation",
        "pullback_support_alternative",
        "recent_vertical_rebound",
        "near_reported_all_time_high",
        "fundamental_quality_needs_confirmation",
        "defined_downside_invalidators",
        "highest_current_score",
        "high_fallback_count",
        "review_required_before_add"
      ],
      "review_required": true,
      "trigger_type": "breakout_confirmation",
      "gate_reasons": [
        "high_fallback_count"
      ],
      "sector": null
    },
    {
      "canonical_ticker": "012450.KS",
      "display_name": "한화에어로스페이스",
      "priority": 2,
      "confidence": 0.72,
      "action_now": "HOLD",
      "delta_krw_now": 0,
      "target_weight_now": 0.2403,
      "action_if_triggered": "WATCH_TRIGGER",
      "delta_krw_if_triggered": 0,
      "target_weight_if_triggered": 0.2403,
      "trigger_conditions": [
        "KRW 1,450,000-1,470,000 지지권 테스트에서 매도 거래량이 둔화되고 RSI가 50 위를 유지하는지 확인",
        "KRW 1,559,000 위 거래량 동반 일봉 종가 돌파 여부 확인",
        "KRW 1,559,000 부근 거절과 매도 거래량 증가가 동시에 나타나는지 확인",
        "2026-04-01 및 2026-04-10 공급계약의 규모, 일정, 마진, 환율 조건 추가 공시 확인",
        "다음 실적 또는 IR에서 영업마진, 수주잔고, 재고, 운전자본, 유럽 파이프라인 전환에 대한 해설 확인",
        "KRW 1,655,000 재시험 시 돌파 지속성 또는 공급 출회 여부 확인",
        "012450.KS IR 및 실적 발표에서 방산 마진, 수주잔고 질, 현금전환이 확인되는 경우",
        "2026-04-01 및 2026-04-10 공급계약 공시의 규모, 납기, 마진, 환율 조건이 우호적으로 구체화되는 경우",
        "30개국 NATO 대사 전략 대화 이후 유럽 방산 조달 또는 NATO 관련 수주 전환이 진전되는 경우",
        "KRW 1,559,000을 확대 거래량으로 종가 돌파해 KRW 1,655,000 재시험 가능성이 높아지는 경우",
        "정책금융 또는 은행권 지원이 수출 실행력, 생산능력 확장, 운전자본 부담 완화로 연결되는 경우",
        "KRW 1,451,000 아래 종가 이후 KRW 1,470,000 회복 실패",
        "KRW 1,331,000-1,337,000 중기 지지권 및 50일선 구간 이탈",
        "IR 또는 실적에서 마진 압박, 현금전환 약화, 시장 기대에 못 미치는 계약 조건이 확인되는 경우",
        "최근 KRW 3.20조 자유현금흐름 개선이 약 KRW 3.06조의 운전자본 변동에 주로 의존했고 반복성이 낮다는 증거",
        "지정학적 긴장 완화 또는 방산주 순환매 이탈로 KOSPI 강세에도 상대 약세가 지속되는 경우"
      ],
      "rationale": "Second priority due to strong existing thesis, large held weight, trend support, and defense order catalysts, but near-resistance positioning and high ATR argue against chasing. Maintain hold bias only while support holds; any add requires volume-confirmed breakout or supported pullback plus contract and margin confirmation.",
      "data_health": {
        "coverage_score": 0.72,
        "vendor_calls": {
          "yfinance": 15,
          "naver": 3,
          "ecos": 1,
          "opendart": 1,
          "alpha_vantage": 2
        },
        "fallback_count": 4,
        "quality_flags": [
          "token_usage_unavailable"
        ],
        "legacy_rating": "OVERWEIGHT",
        "trigger_quality": 0.78,
        "decision_source": "RULE+DEEP",
        "timing_readiness": 0.38,
        "thesis_multiplier": 1.132,
        "timing_now": 0.152,
        "timing_triggered": 0.38,
        "score_now": 0.0614,
        "score_triggered": 0.1784
      },
      "decision_source": "RULE+DEEP+CODEX",
      "timing_readiness": 0.38,
      "reason_codes": [
        "bullish_medium_term_thesis",
        "entry_action_wait",
        "near_resistance",
        "high_atr_volatility",
        "breakout_not_confirmed",
        "fundamental_confirmation_pending",
        "existing_holder_hold",
        "clear_risk_invalidators",
        "large_existing_position",
        "high_fallback_count"
      ],
      "review_required": true,
      "trigger_type": "breakout_confirmation",
      "gate_reasons": [
        "high_fallback_count"
      ],
      "sector": null
    },
    {
      "canonical_ticker": "042700.KS",
      "display_name": "한미반도체",
      "priority": 3,
      "confidence": 0.64,
      "action_now": "HOLD",
      "delta_krw_now": 0,
      "target_weight_now": 0.0467,
      "action_if_triggered": "WATCH_TRIGGER",
      "delta_krw_if_triggered": 0,
      "target_weight_if_triggered": 0.0467,
      "trigger_conditions": [
        "286000 돌파의 종가 품질과 거래량이 단순 558026주 상회에 그치는지, 의미 있는 거래대금 증가를 동반하는지 확인한다.",
        "290000-300000 구간에서 안착하는지 또는 박스 상단 실패 돌파로 되밀리는지 관찰한다.",
        "276000-280000 지지 테스트에서 10일 EMA 276423과 볼린저 중심선 279825 부근 매수세가 유지되는지 본다.",
        "거래량이 최근 387276-558026주 수준에 머무는지, 2월 말 급등기 600만-670만주와는 차이가 크다는 점을 감안해 돌파 신뢰도를 조정한다.",
        "2026-04-10 IR 관련 후속 발언, 다음 실적, HBM 장비 주문·출하·고객 수요·재고 전환 데이터를 확인한다.",
        "공매도 잔고가 숏커버로 줄어드는지, 아니면 고평가와 실적 둔화 우려에 따른 추가 압력으로 남는지 추적한다.",
        "042700.KS가 276000-280000을 방어한 뒤 286000 위로 종가 돌파하고 거래량이 최근 387276-558026주 범위를 의미 있게 상회한다.",
        "290000-300000 구간에서 되밀림이 제한되고 가격 수용이 확인되어 2026-03~2026-04 박스권 조정이 상방으로 해소된다.",
        "IR 또는 다음 실적에서 HBM 장비 수요, 주문 가시성, 출하 일정, 고객 수요, 재고와 재공품의 매출 전환이 확인된다.",
        "AI/HBM 가치사슬과 글로벌 반도체 위험 선호가 유지되어 고마진 장비주에 대한 프리미엄 밸류에이션이 지속된다.",
        "회사별 긍정 뉴스나 수주 가시성이 공매도 잔고 1조7973억원의 일부 숏커버를 유발한다.",
        "042700.KS가 276000을 종가 기준으로 이탈해 10일 EMA와 볼린저 중심선 회복 논리가 약화된다.",
        "270000을 거래량 증가와 함께 이탈해 VWMA 부근 전술 지지선이 훼손된다.",
        "252000을 재시험하거나 이탈해 3월 말 이후의 post-correction base가 무너진다.",
        "다음 실적에서 매출과 영업이익 둔화가 이어지고 주문 회복, 출하 타이밍, 재고의 매출 전환 설명이 부족하다.",
        "HBM/AI 반도체 심리가 반전되거나 고객 집중, 주문 지연, 높은 밸류에이션 부담이 주된 내러티브가 된다."
      ],
      "rationale": "Third priority because the HBM equipment thesis is constructive and timing readiness is slightly better than most peers, but position size is already small and risk is elevated from valuation, beta, and unconfirmed breakout quality. Adds should wait for 286000-plus close with meaningful volume or a clean 276000-280000 support hold.",
      "data_health": {
        "coverage_score": 0.72,
        "vendor_calls": {
          "yfinance": 15,
          "naver": 3,
          "ecos": 1,
          "opendart": 1,
          "alpha_vantage": 2
        },
        "fallback_count": 4,
        "quality_flags": [
          "token_usage_unavailable"
        ],
        "legacy_rating": "OVERWEIGHT",
        "trigger_quality": 0.62,
        "decision_source": "RULE+DEEP",
        "timing_readiness": 0.42,
        "thesis_multiplier": 1.102,
        "timing_now": 0.168,
        "timing_triggered": 0.42,
        "score_now": 0.0582,
        "score_triggered": 0.1706
      },
      "decision_source": "RULE+DEEP+CODEX",
      "timing_readiness": 0.42,
      "reason_codes": [
        "bullish_medium_term_thesis",
        "entry_action_wait",
        "breakout_not_confirmed",
        "support_confirmation_pending",
        "volume_confirmation_required",
        "high_valuation_risk",
        "high_beta_volatility",
        "held_position_manage_risk",
        "constructive_hbm_equipment_exposure",
        "high_fallback_count"
      ],
      "review_required": true,
      "trigger_type": "breakout_confirmation",
      "gate_reasons": [
        "high_fallback_count"
      ],
      "sector": null
    },
    {
      "canonical_ticker": "034020.KS",
      "display_name": "두산에너빌리티",
      "priority": 4,
      "confidence": 0.66,
      "action_now": "HOLD",
      "delta_krw_now": 0,
      "target_weight_now": 0.1162,
      "action_if_triggered": "WATCH_TRIGGER",
      "delta_krw_if_triggered": 0,
      "target_weight_if_triggered": 0.1162,
      "trigger_conditions": [
        "034020.KS가 101700 KRW 위에서 종가를 형성하고 거래량이 최근 170만-190만 주 범위를 크게 초과",
        "98200-98900 KRW 조정 구간에서 종가 기준 지지 후 거래량이 개선되며 반등",
        "97500 KRW 종가 이탈 시 WAIT와 보유 편향에서 위험 축소로 전환",
        "OpenDART의 자사주 실행 조건 또는 수주잔고 관련 신규 공시",
        "4Q 현금흐름 강세가 영업이익 개선을 통해 반복되는지 확인되는 분기 지표",
        "101200-101700 KRW 접근 시 거래량이 여전히 부진하면 추가 매수 보류 또는 일부 위험 축소 검토",
        "034020.KS의 미국 대형 원전 수주 진행 또는 계약 가시성에 대한 신뢰도 높은 확인",
        "SMR 또는 가스터빈 수주 확대가 이익 추정치 상향으로 연결되는 증거",
        "자사주 취득 정정 공시에서 의미 있는 규모, 일정, 실행 방식이 확인되는 경우",
        "101700 KRW 상향 종가 돌파와 최근 170만-190만 주 범위를 뚜렷하게 넘는 거래량 확대",
        "103000-106000 KRW 재시험 성공과 기관 또는 외국인 수급 개선",
        "4Q 자유현금흐름 개선이 운전자본 요인이 아니라 영업이익 기반으로 반복되는 증거",
        "034020.KS가 97500 KRW를 종가 기준으로 이탈",
        "미국 원전, SMR, 가스터빈 수주 기대가 지연, 취소, 또는 저마진 수주로 확인",
        "자사주 취득 정정 내용이 기대보다 작은 규모, 느린 일정, 약한 실행 구조로 확인",
        "2026년 실적에서 낮은 마진, 분기 손실 재발, 운전자본 정상화 이후 현금흐름 반전이 나타남",
        "101700 KRW 돌파 후 거래량이 붙지 않고 빠르게 재이탈하는 허위 돌파",
        "KOSPI 위험선호가 약화되어 고베타 정책·에너지 인프라 종목 수급이 악화"
      ],
      "rationale": "Fourth priority: recovery thesis is constructive on earnings, cash flow, debt reduction, and price above key averages, but current action is still HOLD/WAIT. Nearby resistance, weak relative volume, high valuation and margin risk, and explicit 97500 downside invalidator keep it below the semiconductor leaders.",
      "data_health": {
        "coverage_score": 0.72,
        "vendor_calls": {
          "yfinance": 15,
          "naver": 3,
          "ecos": 1,
          "opendart": 1,
          "alpha_vantage": 2
        },
        "fallback_count": 4,
        "quality_flags": [
          "token_usage_unavailable"
        ],
        "legacy_rating": "OVERWEIGHT",
        "trigger_quality": 0.74,
        "decision_source": "RULE+DEEP",
        "timing_readiness": 0.38,
        "thesis_multiplier": 1.108,
        "timing_now": 0.152,
        "timing_triggered": 0.38,
        "score_now": 0.054,
        "score_triggered": 0.1601
      },
      "decision_source": "RULE+DEEP+CODEX",
      "timing_readiness": 0.38,
      "reason_codes": [
        "bullish_medium_term_thesis",
        "entry_wait_state",
        "breakout_requires_close_and_volume",
        "support_retest_alternative_trigger",
        "held_position_hold_bias",
        "explicit_downside_invalidator",
        "resistance_nearby",
        "volume_confirmation_missing",
        "valuation_and_margin_risk",
        "high_beta_high_atr",
        "constructive_recovery_thesis"
      ],
      "review_required": true,
      "trigger_type": "breakout_confirmation",
      "gate_reasons": [
        "high_fallback_count"
      ],
      "sector": null
    },
    {
      "canonical_ticker": "278470.KS",
      "display_name": "에이피알",
      "priority": 5,
      "confidence": 0.64,
      "action_now": "HOLD",
      "delta_krw_now": 0,
      "target_weight_now": 0.0653,
      "action_if_triggered": "WATCH_TRIGGER",
      "delta_krw_if_triggered": 0,
      "target_weight_if_triggered": 0.0653,
      "trigger_conditions": [
        "눌림목 매수 후보: 362000-351500원 구간 지지, 거래량 감소, RSI 50 이상 유지",
        "모멘텀 후보: 399500원 종가 돌파, 거래량 286905주를 뚜렷하게 상회, 다음 거래일 매물 소화",
        "위험 축소: 362000원 종가 이탈과 거래량 증가",
        "리스크 재평가: 351500원 VWMA 이탈 후 추가 약세",
        "기본적 확인: 다음 분기 해외 매출 성장, 영업이익률, 재고와 매출채권 질이 프리미엄 밸류에이션을 지지",
        "278470.KS의 다음 실적에서 미국과 유럽 중심 해외 매출 성장이 지속되는 것",
        "코첼라, medicube 글로벌 노출, BLACKPINK 리사 방문 효과가 실제 판매, 반복 구매, 플랫폼 순위 개선으로 전환되는 증거",
        "DB Securities 목표주가 500000원 상향처럼 해외 성장률 재평가와 이익 추정 상향을 뒷받침하는 추가 증권사 업데이트",
        "외국인과 기관 수요가 이어지며 고점권 거래량을 소화하는 흐름",
        "399500원 종가 돌파와 286905주를 뚜렷하게 넘는 거래량이 동반되는 모멘텀 확인",
        "362000원 부근 10일 EMA를 거래량 증가와 함께 종가 이탈",
        "351500원 부근 VWMA 실패 후 분산성 매도가 이어지는 흐름",
        "다음 실적에서 마케팅 비용이 매출보다 빠르게 증가해 영업이익률이 압박되는 경우",
        "재고와 매출채권 증가가 해외 sell-through 둔화 또는 채널 재고 부담으로 해석되는 경우",
        "news_derived 감성에 집중된 브랜드 이벤트가 미국·유럽 매출 성장이나 아마존 성과로 연결되지 않는 경우"
      ],
      "rationale": "Lowest priority despite a constructive growth thesis because the stock is extended, volatile, and recently showed high-volume weakness near highs. Existing holding can be maintained, but new exposure should wait for either low-volume support at 362000-351500 or a 399500 breakout with strong follow-through.",
      "data_health": {
        "coverage_score": 0.72,
        "vendor_calls": {
          "yfinance": 15,
          "naver": 3,
          "ecos": 1,
          "opendart": 1,
          "alpha_vantage": 2
        },
        "fallback_count": 4,
        "quality_flags": [
          "token_usage_unavailable"
        ],
        "legacy_rating": "OVERWEIGHT",
        "trigger_quality": 0.74,
        "decision_source": "RULE+DEEP",
        "timing_readiness": 0.38,
        "thesis_multiplier": 1.108,
        "timing_now": 0.152,
        "timing_triggered": 0.38,
        "score_now": 0.0521,
        "score_triggered": 0.1552
      },
      "decision_source": "RULE+DEEP+CODEX",
      "timing_readiness": 0.38,
      "reason_codes": [
        "constructive_medium_term_thesis",
        "entry_wait_explicit",
        "technical_confirmation_required",
        "extended_above_moving_average",
        "high_atr_entry_risk",
        "high_volume_pullback_near_highs",
        "precise_price_volume_triggers",
        "held_position_hold_not_add",
        "high_fallback_count"
      ],
      "review_required": true,
      "trigger_type": "breakout_confirmation",
      "gate_reasons": [
        "high_fallback_count"
      ],
      "sector": null
    },
    {
      "canonical_ticker": "010950.KS",
      "display_name": "S-Oil",
      "priority": 6,
      "confidence": 0.64,
      "action_now": "HOLD",
      "delta_krw_now": 0,
      "target_weight_now": 0.0371,
      "action_if_triggered": "WATCH_TRIGGER",
      "delta_krw_if_triggered": 0,
      "target_weight_if_triggered": 0.0371,
      "trigger_conditions": [
        "010950.KS가 122000 위에서 평균 이상 거래량으로 종가 마감하면 entry_action을 STARTER 또는 ADD로 상향 검토",
        "114000-116000 조정 구간을 지키고 반등 거래량 또는 장중 수급이 개선되면 소규모 STARTER 검토",
        "111500 아래 종가 이탈 시 뉴스와 마진 환경에 따라 portfolio_stance를 NEUTRAL 또는 BEARISH로 하향",
        "Q1 실적 발표 때 영업이익을 재고 이익과 핵심 정제마진 기여로 분리해 판단",
        "WTI, 중동 협상 뉴스, KRW/USD, 기준 정제마진을 추적해 상승 논리 확인 또는 훼손 여부 점검",
        "010950.KS Q1 실적이 재고 이익이 아니라 핵심 정제마진 개선으로 예상치를 상회",
        "122000 위 평균 이상 거래량 동반 종가 돌파로 3월 공급 부담 흡수 확인",
        "원유 변동성에도 기준 정제마진과 제품 수요가 견조하게 유지",
        "영업현금흐름과 잉여현금흐름 개선, 순차입금 감소 지속",
        "국민연금 또는 기관 보유 공시에서 안정적이거나 증가한 노출 확인",
        "111500-112000 지지 구간을 거래량 증가와 함께 종가 이탈",
        "RSI가 50 아래로 내려가고 MACD가 꺾이며 4월 반등 실패 신호 발생",
        "Q1 호실적이 일시적 재고 이익이나 래그 효과 중심이고 향후 정제마진 가이던스가 약함",
        "WTI 또는 지정학 프리미엄 반전으로 제품 스프레드 보강 없이 섹터 재평가 하락 반복",
        "설비투자와 운전자본 부담이 최근 잉여현금흐름 개선을 되돌림"
      ],
      "rationale": "S-Oil has a constructive medium-term bullish thesis and existing core holding can be maintained, but the action timing is not confirmed for immediate add-on exposure. The key actionable trigger is a close above 122000 with above-average volume, or secondarily a defended 114000-116000 pullback with improving rebound volume. Until then, resistance from the 119000-122000 supply zone, oil/geopolitical sensitivity, and pending earnings-quality confirmation argue for HOLD rather than ADD now.",
      "data_health": {
        "coverage_score": 0.72,
        "vendor_calls": {
          "yfinance": 15,
          "naver": 3,
          "ecos": 1,
          "opendart": 1,
          "alpha_vantage": 2
        },
        "fallback_count": 4,
        "quality_flags": [
          "token_usage_unavailable"
        ],
        "legacy_rating": "OVERWEIGHT",
        "trigger_quality": 0.7,
        "decision_source": "RULE+DEEP",
        "timing_readiness": 0.38,
        "thesis_multiplier": 1.084,
        "timing_now": 0.152,
        "timing_triggered": 0.38,
        "score_now": 0.0507,
        "score_triggered": 0.1519
      },
      "decision_source": "RULE+DEEP",
      "timing_readiness": 0.38,
      "reason_codes": [
        "bullish_thesis_but_wait",
        "breakout_required_above_122000",
        "resistance_supply_overhang",
        "oil_headline_sensitivity",
        "earnings_quality_pending",
        "clear_downside_invalidation"
      ],
      "review_required": true,
      "trigger_type": "breakout_confirmation",
      "gate_reasons": [
        "high_fallback_count"
      ],
      "sector": null
    },
    {
      "canonical_ticker": "005930.KS",
      "display_name": "삼성전자",
      "priority": 7,
      "confidence": 0.68,
      "action_now": "HOLD",
      "delta_krw_now": 0,
      "target_weight_now": 0.0676,
      "action_if_triggered": "WATCH_TRIGGER",
      "delta_krw_if_triggered": 0,
      "target_weight_if_triggered": 0.0676,
      "trigger_conditions": [
        "005930.KS 일간 종가가 210500을 넘고 거래량이 최근 반등 평균을 상회하는지 확인한다.",
        "216500-218000 재시험 시 RSI가 상승하되 소진형 과열 신호를 보이지 않는지 확인한다.",
        "조정 시 198640-190762 지지대를 방어한 뒤 206500을 재회복하는지 확인한다.",
        "198640 하향 이탈 후 190762와 185969 테스트로 이어지는지 감시한다.",
        "IR에서 HBM qualification, 메모리 ASP 흐름, foundry 손실, CAPEX, buyback, dividend policy 관련 설명을 확인한다.",
        "MACD 히스토그램이 양의 영역을 유지하는지, 또는 다시 음전환하는지 추적한다.",
        "005930.KS가 210500을 거래량 증가와 함께 종가 돌파해 216500-218000 재시험 가능성을 여는 경우.",
        "2026 Q1 세부 실적 또는 IR에서 메모리 가격, HBM 수요, 영업이익률 지속성이 확인되는 경우.",
        "AI 메모리 수요가 업종 전반의 기대가 아니라 Samsung Electronics의 HBM 또는 advanced memory 점유율 개선으로 연결된다는 증거가 나오는 경우.",
        "높은 CAPEX에도 free cash flow와 주주환원 여력이 유지된다는 신호가 확인되는 경우.",
        "AI 기반 모바일 및 TV 라인업이 ASP 또는 마진 방어에 기여한다는 추가 근거가 나오는 경우.",
        "190762 아래 종가 이탈 후 VWMA 지지권을 회복하지 못하는 경우.",
        "50일 SMA 185969를 지속적으로 하회하는 경우.",
        "HBM 또는 foundry 관련 코멘터리가 SK Hynix나 TSMC 대비 점유율 열위를 확인하는 경우.",
        "메모리 가격 또는 수요가 반전돼 forward PER 7.48의 저평가 논리가 약해지는 경우.",
        "재고, 매출채권, 부채, CAPEX 부담이 증가하는데 마진과 free cash flow 개선이 동반되지 않는 경우.",
        "210500 돌파 시도가 거래량 없이 실패하고 206500 아래에서 모멘텀이 약화되는 경우."
      ],
      "rationale": "Medium-term thesis is constructive for 005930.KS with bullish stance, improving trend and momentum, acceptable valuation, strong cash position, and existing holding support. However, execution timing is explicitly incomplete: entry_action is WAIT, setup is DEVELOPING, price has not confirmed above 210500 or reclaimed the 216500-218000 prior high zone, rebound volume has faded, and ATR implies elevated execution risk. Hold existing exposure, but add only after a confirmed breakout with volume or a controlled support defense and reclaim.",
      "data_health": {
        "coverage_score": 0.72,
        "vendor_calls": {
          "yfinance": 15,
          "naver": 3,
          "ecos": 1,
          "opendart": 1,
          "alpha_vantage": 2
        },
        "fallback_count": 4,
        "quality_flags": [
          "token_usage_unavailable"
        ],
        "legacy_rating": "OVERWEIGHT",
        "trigger_quality": 0.74,
        "decision_source": "RULE+DEEP",
        "timing_readiness": 0.34,
        "thesis_multiplier": 1.108,
        "timing_now": 0.136,
        "timing_triggered": 0.34,
        "score_now": 0.049,
        "score_triggered": 0.1476
      },
      "decision_source": "RULE+DEEP",
      "timing_readiness": 0.34,
      "reason_codes": [
        "bullish_medium_term_thesis",
        "entry_action_wait",
        "developing_setup",
        "breakout_not_confirmed",
        "volume_confirmation_required",
        "support_reclaim_alternative",
        "high_atr_execution_risk",
        "existing_position_hold",
        "specific_price_triggers_defined",
        "limited_data_coverage"
      ],
      "review_required": true,
      "trigger_type": "breakout_confirmation",
      "gate_reasons": [
        "high_fallback_count"
      ],
      "sector": null
    },
    {
      "canonical_ticker": "058470.KQ",
      "display_name": "리노공업",
      "priority": 8,
      "confidence": 0.66,
      "action_now": "HOLD",
      "delta_krw_now": 0,
      "target_weight_now": 0.0357,
      "action_if_triggered": "WATCH_TRIGGER",
      "delta_krw_if_triggered": 0,
      "target_weight_if_triggered": 0.0357,
      "trigger_conditions": [
        "117300원 위 종가와 최근 4월 13-14일 거래량 578766-591983주를 웃도는 거래량 동반",
        "107600-110300원 구간 눌림 이후 10일 EMA 110323.89원과 VWMA 107649.78원 재상회",
        "RSI 60 상향 돌파와 MACD 히스토그램 재확대",
        "110000원 종가 이탈 시 단기 모멘텀 약화 경고",
        "105000-106000원 접근 시 기존 보유 위험 축소 여부 점검",
        "공식 공시 또는 실적 발표에서 주문, 마진 방어, 설비 가동률, 매출 재가속 확인",
        "외국인 순매도 둔화 또는 순매수 전환 확인",
        "058470.KQ가 116800-117300원 저항을 거래량 확대와 함께 종가 기준 돌파",
        "4월 13-14일 거래량 578766주와 591983주를 뚜렷하게 넘는 수급 회복",
        "RSI가 60 위로 회복하고 MACD 히스토그램이 409.42에서 재확대",
        "반도체 업종 심리 개선 지속과 AI 메모리·테스트 부품 수요 기대 강화",
        "다음 분기 실적에서 2025년 6월 이후 둔화된 매출과 영업이익의 재가속 확인",
        "건설중인자산 792.9억원에서 1295.0억원 증가와 순유형자산 확대가 수익성 있는 증설로 연결된다는 증거",
        "외국인 734억원 순매도 이후 매도 둔화 또는 순매수 전환",
        "105000-106000원 종가 이탈로 50일 SMA 부근 지지와 4월 반등 구조 훼손",
        "110000원 종가 이탈 뒤 10일 EMA 회복 실패",
        "RSI가 50 아래로 하락하고 MACD 히스토그램이 음전환",
        "116800-117300원에서 반복적으로 거절되고 거래량이 계속 감소",
        "다음 실적에서 매출과 영업이익 둔화가 이어져 선행 P/E 약 36배 부담이 커지는 경우",
        "외국인 매도가 지속되는 가운데 반도체 동종주 대비 상대 성과가 약화",
        "개별 공시나 수주·마진·가동률 개선 신호 없이 거시 위험선호만으로 상승한 뒤 되돌림 발생"
      ],
      "rationale": "Constructive medium-term hold/overweight thesis for 058470.KQ, supported by price above key moving averages, improving MACD, neutral RSI, high margins, net cash and positive free cash flow. Timing is not yet actionable for adding because the stock remains below the 116800-117300 resistance zone and the plan explicitly requires either a volume-backed close above 117300 or a validated pullback support recovery before new capital is justified.",
      "data_health": {
        "coverage_score": 0.67,
        "vendor_calls": {
          "yfinance": 15,
          "naver": 3,
          "ecos": 1,
          "opendart": 1,
          "alpha_vantage": 2
        },
        "fallback_count": 5,
        "quality_flags": [
          "token_usage_unavailable"
        ],
        "legacy_rating": "OVERWEIGHT",
        "trigger_quality": 0.74,
        "decision_source": "RULE+DEEP",
        "timing_readiness": 0.38,
        "thesis_multiplier": 1.096,
        "timing_now": 0.152,
        "timing_triggered": 0.38,
        "score_now": 0.0489,
        "score_triggered": 0.1473
      },
      "decision_source": "RULE+DEEP",
      "timing_readiness": 0.38,
      "reason_codes": [
        "constructive_medium_term_thesis",
        "entry_wait_not_actionable",
        "breakout_trigger_required",
        "volume_confirmation_required",
        "pullback_support_alternative",
        "valuation_risk_elevated",
        "foreign_selling_overhang",
        "held_position_hold_only"
      ],
      "review_required": true,
      "trigger_type": "breakout_confirmation",
      "gate_reasons": [
        "high_fallback_count"
      ],
      "sector": null
    },
    {
      "canonical_ticker": "005380.KS",
      "display_name": "현대차",
      "priority": 9,
      "confidence": 0.62,
      "action_now": "HOLD",
      "delta_krw_now": 0,
      "target_weight_now": 0.0809,
      "action_if_triggered": "WATCH_TRIGGER",
      "delta_krw_if_triggered": 0,
      "target_weight_if_triggered": 0.0809,
      "trigger_conditions": [
        "510000 KRW 위 일봉 종가와 1000000주 초과 거래량: entry_action을 STARTER 또는 기존 보유자 ADD로 상향 검토한다.",
        "481000-485000 KRW 지지 유지, RSI 50 상회, MACD 히스토그램 개선 지속: 작은 starter를 검토한다.",
        "481000-485000 KRW 종가 이탈: 신규 진입 대기 유지 및 트레이딩 노출 축소를 검토한다.",
        "463000 KRW 아래 종가: 전술적 entry_action을 NONE 또는 EXIT로 전환한다.",
        "다음 실적 발표: 영업마진, 총마진, 영업현금흐름, 자유현금흐름, 운전자본, 재고, 매출채권, 자동차 금융 신용비용을 확인한다.",
        "임원 또는 주요주주 증권 보고 후속 공시: 행정적 신고인지 의미 있는 매도인지 구분한다.",
        "중동 해상 운송 차질, 운임, 미국 판매, KRW, 관세, 보조금, 하이브리드·EV 수요 믹스 변화가 수출 마진에 미치는 영향을 점검한다.",
        "005380.KS가 510000 KRW 위에서 일봉 종가를 형성하고 거래량이 1000000주를 넘기면 50일선 및 508000-510000 KRW 저항 돌파로 해석한다.",
        "481000-485000 KRW 지지대가 유지되고 RSI가 50 위로 회복하며 MACD 히스토그램 개선이 이어지면 지지 매수 셋업이 성립한다.",
        "Waymo/IONIQ 5 로보택시, Motional, 피지컬 AI, 로보틱스, SDV, 온디바이스 AI 칩 관련 상업화 이정표가 확인되면 공격적 분석가가 제시한 재평가 서사가 강화된다.",
        "다음 실적에서 2025년 12월 분기보다 영업마진과 총마진이 회복되면 보수적 분석가가 지적한 핵심 할인 요인이 완화된다.",
        "영업현금흐름과 자유현금흐름이 개선되고 운전자본 유출이 정상화되면 현금흐름 리스크가 줄어든다.",
        "협력사 차질에도 생산 안정이 유지되고 물류비, 운임, FX, 관세, 보조금, 하이브리드·EV 수요 믹스가 우호적으로 확인되면 중기 상승 논리가 강화된다.",
        "005380.KS가 508000-510000 KRW에서 재차 실패한 뒤 481000-485000 KRW 아래로 종가 이탈한다.",
        "463000 KRW 아래 일봉 종가가 발생해 최근 반등 구조와 전술적 진입 논리가 무효화된다.",
        "다음 실적에서 매출은 유지되지만 영업이익, 총마진, 영업마진이 추가로 악화된다.",
        "최근 12개월 자유현금흐름 -7.2조 KRW와 2025년 12월 분기 영업현금흐름 -2.09조 KRW 같은 현금흐름 부진이 정상화되지 않는다.",
        "운전자본 유출, 재고, 매출채권, 자동차 금융 신용비용, 차입 및 조달비용이 악화되어 주주환원이나 투자 여력을 압박한다.",
        "로보택시, AI, 로보틱스, EV·하이브리드, SDV 뉴스가 상업적 이정표 없이 서사에만 머물러 뉴스 소진과 밸류에이션 되돌림이 발생한다."
      ],
      "rationale": "Constructive medium-term OVERWEIGHT thesis for Hyundai Motor is supported by long-term trend, neutralized RSI, improving short-term momentum, and robotaxi/AI/SDV optionality, but execution is explicitly WAIT. Add/start timing requires confirmation via a daily close above 510000 KRW with volume above 1000000 shares, or a successful 481000-485000 KRW support retest with RSI above 50 and improving MACD histogram. Current setup remains below key 508000-510000 KRW resistance and 50-day average, so timing is not yet actionable.",
      "data_health": {
        "coverage_score": 0.72,
        "vendor_calls": {
          "yfinance": 15,
          "naver": 3,
          "ecos": 1,
          "opendart": 1,
          "alpha_vantage": 2
        },
        "fallback_count": 4,
        "quality_flags": [
          "token_usage_unavailable"
        ],
        "legacy_rating": "OVERWEIGHT",
        "trigger_quality": 0.72,
        "decision_source": "RULE+DEEP",
        "timing_readiness": 0.38,
        "thesis_multiplier": 1.072,
        "timing_now": 0.152,
        "timing_triggered": 0.38,
        "score_now": 0.0482,
        "score_triggered": 0.1455
      },
      "decision_source": "RULE+DEEP",
      "timing_readiness": 0.38,
      "reason_codes": [
        "constructive_medium_term_thesis",
        "entry_action_wait",
        "breakout_trigger_defined",
        "support_retest_trigger_defined",
        "resistance_not_cleared",
        "momentum_confirmation_incomplete",
        "cash_flow_risk",
        "high_volatility_requires_staging"
      ],
      "review_required": true,
      "trigger_type": "breakout_confirmation",
      "gate_reasons": [
        "high_fallback_count"
      ],
      "sector": null
    },
    {
      "canonical_ticker": "064400.KS",
      "display_name": "LG CNS",
      "priority": 10,
      "confidence": 0.64,
      "action_now": "HOLD",
      "delta_krw_now": 0,
      "target_weight_now": 0.0207,
      "action_if_triggered": "WATCH_TRIGGER",
      "delta_krw_if_triggered": 0,
      "target_weight_if_triggered": 0.0207,
      "trigger_conditions": [
        "KRW 63,300 종가 돌파와 최근 평균 이상 거래량 동반.",
        "KRW 64,700 위 일봉 종가 후 성공적인 눌림 지지 확인.",
        "KRW 65,800 돌파와 거래량 확장으로 200일선 회복 확인.",
        "RSI가 55~60 구간으로 확장되고 MACD가 양수권 전환에 접근.",
        "상승일 거래량이 2026-04-14의 279,402주를 넘고, 가능하면 2026-04-09의 748,764주에 근접 또는 초과.",
        "KRW 60,800~60,000 재테스트에서 KRW 59,500 종가 이탈 없이 지지 확인.",
        "2026-04-01 공급계약 2건과 Paris Baguette 미국 공장 자동화 프로젝트의 정량 정보 공개.",
        "064400.KS가 KRW 63,300을 종가 기준 돌파하고 거래량이 최근 평균을 웃돈 뒤 눌림에서 지지 확인.",
        "KRW 64,700과 KRW 65,800을 거래량 증가와 함께 회복해 50일선·200일선 저항대를 지지대로 전환.",
        "Paris Baguette 미국 공장 계약의 규모, 마진, 구축 일정, 유지보수 또는 소프트웨어 반복 매출 구조 공개.",
        "모바일 셔틀 또는 콜드체인 물류 자동화에서 비LG·북미 고객 추가 수주 확인.",
        "다음 분기 실적에서 매출 성장, 영업이익률 안정, 영업현금흐름 회복이 함께 확인.",
        "2026-04-03 최대주주·임원·주요주주 지분 공시가 의미 있는 오버행이나 매물 압박이 아님이 확인.",
        "종가 기준 KRW 59,500 이탈 또는 KRW 60,800~60,000 지지대 재테스트 실패.",
        "상승 시 거래량이 계속 약하고 KRW 63,300~64,700 구간에서 반복적으로 거절.",
        "MACD 개선이 멈추고 RSI가 55~60 구간으로 확장되지 못한 채 재하락.",
        "공급계약과 Paris Baguette 미국 공장 프로젝트가 소규모, 저마진, 긴 회수 기간, 2026년 실적 기여 제한으로 확인.",
        "매출채권 증가와 운전자본 부담으로 영업현금흐름이 이익을 따라가지 못함.",
        "주요주주, 보호예수, 기관 물량 또는 지분 공시 관련 공급이 지속적인 매도 압력으로 확인."
      ],
      "rationale": "Medium-term thesis is constructive for held LG CNS exposure, supported by fundamentals, liquidity, valuation, dividend yield, and logistics automation catalysts. Timing is not yet actionable because price remains below KRW 63,300 breakout level and below the 50-day/200-day moving-average resistance band, MACD is still negative, and rebound volume has faded. Current action is HOLD/WAIT, with add-on only after price and volume confirmation or a defended support retest.",
      "data_health": {
        "coverage_score": 0.72,
        "vendor_calls": {
          "yfinance": 15,
          "naver": 3,
          "ecos": 1,
          "opendart": 1,
          "alpha_vantage": 2
        },
        "fallback_count": 4,
        "quality_flags": [
          "token_usage_unavailable"
        ],
        "legacy_rating": "OVERWEIGHT",
        "trigger_quality": 0.74,
        "decision_source": "RULE+DEEP",
        "timing_readiness": 0.34,
        "thesis_multiplier": 1.084,
        "timing_now": 0.136,
        "timing_triggered": 0.34,
        "score_now": 0.0443,
        "score_triggered": 0.1359
      },
      "decision_source": "RULE+DEEP",
      "timing_readiness": 0.34,
      "reason_codes": [
        "constructive_medium_term_thesis",
        "entry_action_wait",
        "breakout_not_confirmed",
        "below_key_moving_averages",
        "weak_rebound_volume",
        "negative_macd",
        "specific_price_volume_triggers",
        "held_position_core_hold",
        "risk_defined_below_support",
        "contract_economics_unconfirmed"
      ],
      "review_required": true,
      "trigger_type": "breakout_confirmation",
      "gate_reasons": [
        "high_fallback_count"
      ],
      "sector": null
    },
    {
      "canonical_ticker": "095340.KS",
      "display_name": "ISC",
      "priority": 11,
      "confidence": 0.64,
      "action_now": "HOLD",
      "delta_krw_now": 0,
      "target_weight_now": 0.1067,
      "action_if_triggered": "WATCH_TRIGGER",
      "delta_krw_if_triggered": 0,
      "target_weight_if_triggered": 0.1067,
      "trigger_conditions": [
        "KRW 239,800-240,000 위 종가 회복, RSI 50 상회, MACD 히스토그램 0을 향한 축소",
        "2026-04-10 거래량 2,081,327주보다 낮고 안정된 거래량으로 KRW 216,600 부근 볼린저 하단 회복",
        "KRW 203,000 지지 재시험 시 장중 흐름 개선, 변동성 축소, 외국인 매도 완화 확인",
        "KRW 257,000-271,000 재진입 시 거래량이 패닉성 추격이 아니라 건전한 누적 매수로 확인",
        "AI 반도체, HBM, CPO, 테스트 소켓 고객 수요를 확인하는 신규 공시 또는 실적 가이던스",
        "AI 서버, HBM, 첨단 패키징, CPO 테스트 소켓 수요가 095340.KS의 매출 성장과 높은 이익률 지속으로 연결되는 경우",
        "SOL AI Semiconductor TOP2 Plus ETF 편입에 따른 테마 및 수급성 매수 유입",
        "다음 실적에서 2025-12-31 분기 강세가 일회성이 아니고 매출채권 및 재고가 건전하다는 확인",
        "KRW 239,800-240,000 회복과 함께 공매도 포지션이 되돌려지며 단기 숏커버링이 발생하는 경우",
        "095340.KS가 KRW 203,000 부근 50일 단순이동평균 지지권을 종가 기준으로 이탈하고 빠르게 회복하지 못하는 경우",
        "긍정적인 반도체 섹터 흐름에도 외국인 매도와 공매도 압력이 지속되는 경우",
        "매출 성장이 둔화되는 동시에 매출채권 또는 재고가 계속 증가해 현금전환 우려가 커지는 경우",
        "AI, HBM, CPO 기대가 이미 주가에 반영된 상태에서 회사별 공시나 실적 확인이 나오지 않는 경우"
      ],
      "rationale": "Medium-term thesis is constructive for ISC based on earnings recovery, high margins, net cash, positive free cash flow, and AI/HBM/CPO test-socket exposure, but current action is HOLD/WAIT. Add timing is not confirmed until price reclaims KRW 239,800-240,000 with RSI above 50, MACD histogram improving, and volume quality stabilizing; downside risk management centers on a decisive close below KRW 203,000.",
      "data_health": {
        "coverage_score": 0.67,
        "vendor_calls": {
          "yfinance": 15,
          "naver": 3,
          "ecos": 1,
          "opendart": 1,
          "alpha_vantage": 2
        },
        "fallback_count": 5,
        "quality_flags": [
          "token_usage_unavailable"
        ],
        "legacy_rating": "OVERWEIGHT",
        "trigger_quality": 0.74,
        "decision_source": "RULE+DEEP",
        "timing_readiness": 0.34,
        "thesis_multiplier": 1.108,
        "timing_now": 0.136,
        "timing_triggered": 0.34,
        "score_now": 0.0417,
        "score_triggered": 0.1292
      },
      "decision_source": "RULE+DEEP",
      "timing_readiness": 0.34,
      "reason_codes": [
        "constructive_medium_term_thesis",
        "entry_action_wait",
        "technical_confirmation_missing",
        "specific_breakout_trigger_defined",
        "negative_momentum_indicators",
        "foreign_selling_and_short_pressure",
        "support_break_risk_defined",
        "limited_disclosure_coverage"
      ],
      "review_required": true,
      "trigger_type": "breakout_confirmation",
      "gate_reasons": [
        "high_fallback_count"
      ],
      "sector": null
    }
  ],
  "portfolio_risks": [
    "Wait-heavy constructive batch: WAIT 11/11 with BULLISH 11/11; review entry-action calibration.",
    "Account snapshot has insufficient deployable cash for the configured minimum trade.",
    "구성적이지만 즉시 실행 가능한 후보가 적음"
  ],
  "data_health_summary": {
    "decision_distribution": {
      "OVERWEIGHT": 11
    },
    "stance_distribution": {
      "BULLISH": 11
    },
    "entry_action_distribution": {
      "WAIT": 11
    },
    "avg_confidence": 0.66,
    "company_news_zero_ratio": 0.0,
    "snapshot_health": "CAPITAL_CONSTRAINED",
    "warning_flags": [
      "Wait-heavy constructive batch: WAIT 11/11 with BULLISH 11/11; review entry-action calibration.",
      "Account snapshot has insufficient deployable cash for the configured minimum trade."
    ],
    "actionable_now_count": 0,
    "triggerable_candidates_count": 0,
    "watch_candidates_count": 0,
    "held_watch_count": 0,
    "review_required_count": 11,
    "rule_only_fallback_count": 0
  }
}