{
  "verdicts": [
    {
      "canonical_ticker": "AAPL",
      "display_name": "AAPL",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.68,
      "timing_readiness": 0.38,
      "trigger_type": "breakout_confirmation",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.56,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "AAPL has a constructive medium-term overweight thesis based on strong profitability, free cash flow, buybacks, improving momentum, and potential China/services confirmation, but the table explicitly says to wait rather than chase. Actionability depends on either a controlled 260-261 support test with easing selling pressure or a confirmed close above 266.56 with volume; current execution is further weakened by degraded/stale intraday data.",
      "counter_evidence": [
        "Entry action is WAIT and setup quality is only DEVELOPING, so timing is not complete for immediate add.",
        "Execution feasibility is blocked_stale_or_degraded_data and same-day intraday confirmation was not successfully used.",
        "Valuation is demanding with trailing P/E around 33.3, forward P/E around 28.3, and PEG around 2.37.",
        "Nearby 270-275 resistance and ATR around 5.90 imply elevated short-term risk after the rebound.",
        "Failure to hold 260-261, loss of 256.48 VWMA, or decisive break of the 251.51-251.83 200-day SMA zone would weaken or invalidate the recovery thesis."
      ],
      "reason_codes": [
        "constructive_medium_term_thesis",
        "entry_action_wait",
        "setup_developing",
        "breakout_or_support_confirmation_required",
        "degraded_intraday_data",
        "valuation_risk_high",
        "nearby_resistance",
        "held_position_hold_now"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "COST",
      "display_name": "COST",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.67,
      "timing_readiness": 0.34,
      "trigger_type": "watch_only",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.62,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "COST has a constructive medium-term quality thesis supported by fundamentals, cash flow, ROE, and dividend growth, but the timing setup is not confirmed. Price remains below the 994-1000 resistance cluster and key short/intermediate moving averages, momentum is still negative, and the plan explicitly calls for waiting for either a volume-backed close above 1000 or a confirmed 974-980 support rebound before only a small starter position is justified.",
      "counter_evidence": [
        "Current price is below the 10-day EMA, 50-day SMA, and VWMA, so the near-term trend has not reclaimed confirmation levels.",
        "MACD histogram remains negative and RSI is neutral rather than a clear oversold reversal signal.",
        "Entry action is WAIT and execution feasibility now is not actionable, with relative volume not confirmed.",
        "Valuation is elevated around 51x trailing earnings and 44x forward earnings, making failed confirmation or weak operating updates more costly.",
        "A close below 968 or break of the 947 area would shift the setup toward tactical or structural risk."
      ],
      "reason_codes": [
        "constructive_fundamental_thesis",
        "entry_wait_required",
        "breakout_not_confirmed",
        "below_key_moving_averages",
        "negative_momentum",
        "small_starter_only_if_triggered",
        "valuation_risk_elevated",
        "risk_levels_defined"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "ETHU",
      "display_name": "ETHU",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.0,
      "timing_readiness": 0.0,
      "trigger_type": "watch_only",
      "trigger_horizon": "unknown",
      "trigger_quality": 0.0,
      "thesis_state": "neutral_watch",
      "semantic_summary": "Held ETHU position has no current analysis, no trigger conditions, no event or breakout confirmation, and rule-only context supports only maintaining a neutral watch/hold stance rather than taking action.",
      "counter_evidence": [
        "No company news, disclosures, social, macro, structured decision, investment plan, or portfolio manager decision were available.",
        "Quality flag indicates missing analysis for a held position.",
        "Suggested action if triggered is NONE and trigger conditions are empty.",
        "Execution feasibility is not actionable now and setup quality is weak."
      ],
      "reason_codes": [
        "missing_analysis_for_held_position",
        "no_trigger_conditions",
        "rule_only_decision",
        "not_actionable_now",
        "weak_setup",
        "neutral_hold_watch"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "ETN",
      "display_name": "ETN",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.72,
      "timing_readiness": 0.38,
      "trigger_type": "breakout_confirmation",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.64,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "ETN has a constructive medium-term thesis supported by fundamentals, free cash flow, debt reduction, AI/data-center power infrastructure exposure, and analyst target increases, but the action table explicitly says WAIT rather than add now. Timing depends on confirmation: defended 388-390 support, reclaim of 400 with better volume, or a higher-quality 407.01 breakout with volume expansion; earnings/order/backlog confirmation is also important before increasing risk.",
      "counter_evidence": [
        "Entry action is WAIT and execution feasibility is not actionable now.",
        "Price is near recent highs with elevated valuation and limited room for disappointment.",
        "MACD histogram is fading and RSI is cooling, so momentum confirmation is incomplete.",
        "Relative volume confirmation is not present and breakout quality depends on future volume expansion.",
        "Q1 earnings, orders, backlog, margins, and demand conversion remain unresolved event risks."
      ],
      "reason_codes": [
        "constructive_medium_term_thesis",
        "wait_for_confirmation",
        "breakout_requires_volume",
        "support_test_pending",
        "momentum_cooling",
        "valuation_risk",
        "earnings_event_risk",
        "not_actionable_now"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "FANG",
      "display_name": "FANG",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.66,
      "timing_readiness": 0.38,
      "trigger_type": "breakout_confirmation",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.64,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "Medium-term FANG thesis is constructive on Permian scale, cash-flow strength, debt reduction, shareholder returns, oil leverage, and analyst target support, but entry timing is not confirmed. The plan explicitly says WAIT, with no new capital until a daily close above 191.9-192 with above-average volume and RSI back above 50, or a clean 181-182 support hold with improving momentum.",
      "counter_evidence": [
        "Current price remains below the 10-day EMA near 188.8 and VWAP near 191.9, so the stated breakout trigger has not occurred.",
        "RSI is below 50 and MACD histogram is negative, indicating incomplete momentum repair.",
        "Recent high-volume weakness and the 2026-04-08 low near 175.14 keep downside risk active.",
        "ATR is elevated near 6.47, so premature starter sizing carries higher tactical risk.",
        "Oil-price reversal, weak next earnings quality, high net debt, low current ratio, and insider or sponsor selling could invalidate the overweight thesis."
      ],
      "reason_codes": [
        "bullish_medium_term_thesis",
        "entry_action_wait",
        "breakout_not_confirmed",
        "momentum_repair_incomplete",
        "support_retest_alternative",
        "high_volatility_requires_confirmation",
        "explicit_risk_markers_defined"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "GEV",
      "display_name": "GEV",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.72,
      "timing_readiness": 0.38,
      "trigger_type": "breakout_confirmation",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.66,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "GEV has a constructive medium-term thesis supported by power demand, grid/gas turbine exposure, improving profitability and an intact uptrend, but the action is explicitly WAIT. Price is near the 985-1007 resistance zone, momentum is cooling, relative volume is not confirmed, and entries require either a volume-supported close above 1007.38 or a controlled pullback/reversal at support.",
      "counter_evidence": [
        "Current recommendation is WAIT with no same-day new buy.",
        "Price is extended near 985-1007 resistance, making chase risk elevated.",
        "MACD histogram is fading and RSI has cooled from near-overbought levels.",
        "Relative volume confirmation is absent and intraday confirmation was unavailable.",
        "Vineyard Wind legal and liability uncertainty remains a material risk.",
        "High valuation leaves limited tolerance for execution disappointment."
      ],
      "reason_codes": [
        "constructive_medium_term_thesis",
        "entry_action_wait",
        "breakout_requires_close_confirmation",
        "volume_confirmation_missing",
        "resistance_nearby",
        "momentum_cooling",
        "support_pullback_alternative",
        "legal_liability_risk",
        "valuation_risk"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "GLDM",
      "display_name": "GLDM",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.0,
      "timing_readiness": 0.0,
      "trigger_type": "watch_only",
      "trigger_horizon": "unknown",
      "trigger_quality": 0.0,
      "thesis_state": "neutral_watch",
      "semantic_summary": "Held GLDM position has no current analysis, no trigger conditions, no investment plan, and no actionable execution signal. The safest semantic interpretation is neutral hold/watch rather than a confirmed thesis or timing setup.",
      "counter_evidence": [
        "Missing analysis for held position",
        "No trigger conditions provided",
        "Decision source is rule-only with weak setup quality",
        "Execution feasibility is not actionable now",
        "Data coverage is effectively absent"
      ],
      "reason_codes": [
        "missing_analysis_for_held_position",
        "no_actionable_trigger",
        "rule_only_decision",
        "weak_setup_quality",
        "insufficient_data_coverage"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "GOOGL",
      "display_name": "GOOGL",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.68,
      "timing_readiness": 0.38,
      "trigger_type": "breakout_confirmation",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.62,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "GOOGL has a constructive medium-term overweight thesis supported by profitability, cash flow, Cloud/AI exposure, positive moving-average alignment, and improving MACD. Timing is not actionable now because the plan explicitly says WAIT, avoids chasing after a fast rally, and requires either support confirmation near 317.24-321.31/10 EMA 320.61 or a volume-backed daily close above 337.12 before adding.",
      "counter_evidence": [
        "Entry action is WAIT and execution feasibility is not_actionable_now.",
        "RSI near 70.19 and ATR 8.29 indicate elevated short-term overbought and volatility risk after a fast rebound from 274.34 to the mid-330s.",
        "Relative volume is not confirmed, and the breakout above 337.12 has not been validated by volume-backed closing action.",
        "Q1 earnings, AI capex guidance, depreciation, Cloud margin, and free cash flow risks remain unresolved.",
        "Valuation is demanding around 31x TTM earnings, increasing the risk of a poor entry price."
      ],
      "reason_codes": [
        "bullish_medium_term_thesis",
        "entry_action_wait",
        "setup_developing",
        "breakout_not_confirmed",
        "support_confirmation_required",
        "relative_volume_not_confirmed",
        "overbought_rsi",
        "earnings_capex_event_risk",
        "held_position_hold_not_add_now"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "LHX",
      "display_name": "LHX",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.68,
      "timing_readiness": 0.38,
      "trigger_type": "breakout_confirmation",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.66,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "LHX has a constructive medium-term defense thesis supported by rocket motor expansion, government support, missile replenishment demand, strong reported free cash flow, and debt reduction. However, timing is not actionable now: the stock remains mid-range inside 340-365, momentum is neutral, and the plan explicitly says WAIT until either a 365 daily close with materially higher volume or a controlled pullback holding 340 confirms entry.",
      "counter_evidence": [
        "Entry action is WAIT and execution feasibility is not actionable now.",
        "Price is described as mid-box within the 340-365 range rather than breaking out.",
        "RSI around 48.79 and MACD around 0.28 indicate unconfirmed momentum.",
        "Additional buying is discouraged until volume, breakout, pullback reversal, or earnings confirmation appears.",
        "Valuation and margin/FCF quality risks leave limited tolerance for disappointment."
      ],
      "reason_codes": [
        "constructive_medium_term_thesis",
        "entry_action_wait",
        "range_bound_mid_box",
        "momentum_unconfirmed",
        "breakout_volume_required",
        "pullback_reversal_alternative",
        "held_position_hold_not_add",
        "risk_level_340_daily_close"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "LLY",
      "display_name": "LLY",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.68,
      "timing_readiness": 0.36,
      "trigger_type": "breakout_confirmation",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.66,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "LLY has a constructive medium-term overweight thesis supported by strong growth, high margins, and Foundayo-related catalysts, but current timing is not actionable. Price is only marginally above the 200-day support area near 902-903 and remains below the preferred 923-925 reclaim zone, so entry should wait for a confirmed daily close above 923-925 with volume or a successful support defense with improving RSI/MACD.",
      "counter_evidence": [
        "Entry action is explicitly WAIT and execution feasibility is not actionable now.",
        "Recent close near 905.03 is only slightly above 200-day support at 902-903 while ATR is elevated around 28 points.",
        "Preferred buy trigger requires a 923-925 daily close with above-average volume, which has not occurred.",
        "Below 902-903 or especially below 888 would indicate support failure and invalidate the tactical setup.",
        "Free cash flow, capex, leverage, FDA labeling, and GLP-1 competition remain material risks."
      ],
      "reason_codes": [
        "bullish_fundamental_thesis",
        "entry_wait_state",
        "breakout_not_confirmed",
        "near_long_term_support",
        "elevated_atr_volatility",
        "volume_confirmation_required",
        "event_and_fcf_risks"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "LRCX",
      "display_name": "LRCX",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.72,
      "timing_readiness": 0.34,
      "trigger_type": "watch_only",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.58,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "LRCX has a constructive medium-term overweight thesis supported by AI, memory and foundry capex demand, strong profitability, free cash flow, and an uptrend above key moving averages. Timing is not confirmed because the plan explicitly says WAIT for either a controlled pullback holding near 252.84 with RSI and lighter selling volume, a high-volume breakout above 272.41, or post-earnings/export-control confirmation before starting a position.",
      "counter_evidence": [
        "Entry action is WAIT and execution feasibility now is not actionable.",
        "Price is near a 52-week high with elevated valuation metrics including trailing P/E around 53, forward P/E around 36, and P/B above 32.",
        "MACD histogram is decelerating and ATR around 11.85 implies elevated volatility.",
        "Q3 earnings on 2026-04-22 and BIS export-control uncertainty remain unresolved catalysts.",
        "No current position is held, so this is not an immediate rebalance or exit execution."
      ],
      "reason_codes": [
        "bullish_thesis_wait_entry",
        "trigger_not_confirmed",
        "earnings_event_pending",
        "breakout_or_pullback_required",
        "valuation_extended",
        "momentum_decelerating",
        "high_volatility",
        "export_control_uncertainty"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "MU",
      "display_name": "MU",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.72,
      "timing_readiness": 0.38,
      "trigger_type": "breakout_confirmation",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.62,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "MU has a constructive medium-term AI/HBM and DRAM margin thesis, but current execution is explicitly WAIT because price is extended after a sharp rebound and near 471.14 resistance. Action requires confirmation through a volume-backed close above 471.14 with follow-through, or a controlled support confirmation near 424-426; without that, timing is incomplete.",
      "counter_evidence": [
        "Entry action is WAIT and execution feasibility is not actionable now.",
        "Price has rebounded roughly 42% since the 2026-03-30 low and is near 471.14 resistance, making chase risk elevated.",
        "No current session VWAP or relative-volume confirmation is present, and real-time capability is limited.",
        "Failure to hold 456 after a resistance test, loss of 424-426 support, or decisive break below 404-405 would weaken or invalidate the setup.",
        "Fundamental risks include HBM/DRAM price weakness, margin guidance rollover, receivables not converting to cash, capex pressure, and broader insider selling."
      ],
      "reason_codes": [
        "constructive_medium_term_thesis",
        "entry_action_wait",
        "near_resistance_after_sharp_rebound",
        "breakout_needs_volume_and_follow_through",
        "pullback_support_alternative_trigger",
        "timing_not_actionable_now",
        "medium_trigger_quality",
        "risk_levels_defined"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "NET",
      "display_name": "NET",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.66,
      "timing_readiness": 0.34,
      "trigger_type": "breakout_confirmation",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.62,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "NET has a constructive medium-term overweight thesis supported by strong revenue growth, high gross margin, positive cash flow, AI/security catalysts, and favorable analyst targets, but the current action is HOLD/WAIT because price remains below key moving averages and momentum confirmation is incomplete. Actionability depends on a volume-backed daily close above the $192.70-$194.37 resistance band, with stronger confirmation after reclaiming and holding the 200-day SMA near $202.01.",
      "counter_evidence": [
        "Current price is below VWMA $192.70, 10-day EMA $193.83, 50-day SMA $194.37, and 200-day SMA $202.01.",
        "MACD remains negative and RSI near 49.58 does not confirm bullish momentum.",
        "Relative volume confirmation is not currently present, and execution feasibility is marked not actionable now.",
        "Valuation is demanding with forward P/E 136.9, P/B 47.6, PEG 2.38, high beta, SBC/dilution concerns, and insider selling risk.",
        "Failure to reclaim $192.70-$194.37 followed by a break below $184.02 would weaken the setup; a decisive break below $166.99 would invalidate the swing structure."
      ],
      "reason_codes": [
        "constructive_medium_term_thesis",
        "entry_action_wait",
        "breakout_not_confirmed",
        "below_key_moving_averages",
        "momentum_unconfirmed",
        "volume_confirmation_missing",
        "high_valuation_risk",
        "defined_breakout_trigger",
        "defined_invalidation_levels"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "NVDA",
      "display_name": "NVDA",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.72,
      "timing_readiness": 0.38,
      "trigger_type": "breakout_confirmation",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.66,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "NVDA thesis is constructive for an existing overweight hold, supported by reclaimed key moving averages, improving MACD, strong recent volume, and durable AI infrastructure/fundamental evidence. Timing is not actionable now because the plan explicitly says WAIT after a sharp rebound and requires either a daily close above the 196.51-200.40 breakout zone with sustained volume or a controlled pullback near 189.12 followed by strong recovery.",
      "counter_evidence": [
        "Entry action is WAIT and execution feasibility is not_actionable_now.",
        "RSI near 68.90, elevated ATR 5.27, beta 2.335, and a sharp rebound from 165.17 to 198.87 raise chase and mean-reversion risk.",
        "Relative volume is not currently confirmed and intraday confirmation data was unavailable.",
        "Disclosure coverage is absent and social sentiment is news-derived fallback rather than direct confirmation.",
        "Breakout confirmation above 200.40 and/or pullback reversal near 189.12 has not yet been confirmed."
      ],
      "reason_codes": [
        "bullish_medium_term_thesis",
        "held_position_overweight_hold",
        "entry_action_wait",
        "trigger_not_confirmed",
        "breakout_zone_defined",
        "pullback_alternative_defined",
        "elevated_volatility_risk",
        "overbought_chase_risk",
        "volume_confirmation_incomplete",
        "fundamental_event_watch"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "ORCL",
      "display_name": "ORCL",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.67,
      "timing_readiness": 0.38,
      "trigger_type": "watch_only",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.62,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "ORCL의 AI/OCI 중기 논리는 AWS 멀티클라우드 확장, 금융권 데이터베이스 채택, 전력 파트너십, 매출과 영업이익, MACD 및 50일선 회복으로 건설적이다. 그러나 최근 급반등 이후 RSI 과열, 볼린저 상단 근접, 높은 ATR, 200일선 하회가 동시에 있어 현재는 추격 진입보다 감시가 적절하다. 실행 가능한 스타터는 153-157 조정 후 50일선 위 매수 재유입이 확인되거나, 171 위 일간 종가와 평균 이상 거래량이 1거래일 이상 유지될 때로 제한된다.",
      "counter_evidence": [
        "2026-04-10 종가 138.09에서 2026-04-15 종가 169.81까지 단기 급반등해 추격 매수 위험이 크다.",
        "RSI 70.88 및 볼린저 상단 170.71 근접으로 단기 과열 신호가 있다.",
        "주가가 200일선 약 214.26 아래에 있어 장기 추세 복구가 아직 확인되지 않았다.",
        "최근 분기 및 추적 자유현금흐름이 크게 음수이고 부채 부담이 높아 OCI/AI 투자 논리의 현금흐름 전환 확인이 필요하다.",
        "데이터센터 금융 패키지 관련 조달 비용, 신용스프레드, 미소화 대출 부담이 리스크로 남아 있다."
      ],
      "reason_codes": [
        "constructive_ai_oci_thesis",
        "entry_action_wait",
        "breakout_not_confirmed",
        "pullback_entry_not_confirmed",
        "overbought_after_sharp_rebound",
        "below_200_day_sma",
        "fcf_and_leverage_risk",
        "watchlist_trigger_defined"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "TSLA",
      "display_name": "TSLA",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.58,
      "timing_readiness": 0.36,
      "trigger_type": "breakout_confirmation",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.62,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "TSLA has a constructive but still unconfirmed bullish hold thesis. Existing exposure can be maintained, but adding capital is not actionable until price closes above the 398 resistance area, holds it on the following session, and volume quality confirms. The 2026-04-22 update is an additional event gate that must support demand, margins, FCF, robotaxi, AI, and semiconductor execution with concrete details.",
      "counter_evidence": [
        "Entry action is explicitly WAIT and execution feasibility is not actionable now.",
        "Price remains below the 398 resistance cluster where the 200-day SMA and upper Bollinger band converge.",
        "Valuation is stretched with high P/E and forward P/E multiples.",
        "Fundamental concerns remain around revenue, margins, FCF, and finished-goods inventory.",
        "A failed breakout followed by a close below 390 would trigger reduction, while a decisive break below 368 would invalidate tactical exposure.",
        "The 2026-04-22 update could disappoint if it lacks concrete operating and execution details."
      ],
      "reason_codes": [
        "held_position_hold_not_add",
        "constructive_medium_term_thesis",
        "entry_waiting_for_confirmation",
        "breakout_above_398_required",
        "next_session_support_required",
        "volume_quality_required",
        "event_confirmation_pending",
        "valuation_and_fundamental_risks",
        "defined_trim_and_invalidation_levels"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "TSM",
      "display_name": "TSM",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.74,
      "timing_readiness": 0.38,
      "trigger_type": "breakout_confirmation",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.64,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "TSM has a constructive medium-term overweight thesis supported by strong Q1 profit growth, raised revenue outlook, AI and 3nm demand, and price still above key moving averages. Timing is not yet actionable because the stock has rebounded sharply into the 380-385 resistance zone while RSI and MACD have cooled, so additions should wait for either confirmed 362-365 support or a close above 380-385 with renewed MACD and volume confirmation.",
      "counter_evidence": [
        "Entry action is explicitly WAIT and execution feasibility is not actionable now.",
        "Price is near the 380-385 resistance zone after a sharp rebound from late March to mid April.",
        "Momentum has cooled, with RSI down from 66.01 to 55.44 and MACD easing from 7.39 to 7.11.",
        "ATR is elevated near 12.58, arguing for smaller staged entries rather than immediate sizing.",
        "Repeated failure at 380-385 or loss of 350-353 support would weaken or invalidate the setup."
      ],
      "reason_codes": [
        "bullish_medium_term_thesis",
        "entry_wait_confirmed",
        "near_resistance_after_rebound",
        "momentum_cooling",
        "support_or_breakout_needed",
        "staged_add_only",
        "held_position_hold_not_add"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "VRT",
      "display_name": "VRT",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.72,
      "timing_readiness": 0.38,
      "trigger_type": "breakout_confirmation",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.66,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "VRT has a constructive medium-term overweight thesis supported by strong trend position, fundamentals, AI data-center demand, and positive cash flow, but the action table explicitly says to hold existing shares and wait before adding. Timing is not confirmed because price needs either a volume-backed daily close above 310.51-312.46 or a controlled pullback holding 287-290 with improving RSI and no negative catalyst. Elevated valuation, high beta/ATR, earnings risk, and incomplete real-time/volume confirmation keep current readiness below actionable levels.",
      "counter_evidence": [
        "Entry action is WAIT and execution_feasibility_now is not_actionable_now.",
        "Relative volume confirmation is absent and the breakout trigger has not been confirmed.",
        "Valuation is stretched with trailing P/E near 86, forward P/E near 36, and P/B near 28.5.",
        "High beta above 2 and ATR near 4.6% increase timing and sizing risk.",
        "Upcoming earnings/guidance risk could invalidate the bullish setup if orders, margins, free cash flow, or AI capex demand weaken.",
        "Data coverage is limited, with only one company news item, no disclosures, social sentiment fallback, and delayed/non-realtime quote context."
      ],
      "reason_codes": [
        "bullish_thesis_but_wait_entry",
        "breakout_not_confirmed",
        "pullback_support_not_confirmed",
        "volume_confirmation_missing",
        "earnings_event_risk",
        "valuation_and_volatility_risk",
        "limited_data_coverage"
      ],
      "review_required": false
    }
  ]
}