Answers one question: how much of each ticker to hold. Computes target weights for a basket (current holdings + new candidates) and emits portfolio-weight rebalance suggestions. Final execution orders must still use explicit BUY/SELL quantity. Supports forecast-enhanced, max-Sharpe, and HRP optimization modes. Gracefully degrades: tickers with insufficient history are excluded (reported in data_quality.excluded); forecast strategy falls back to HRP when coverage<50%; a single usable ticker returns weight=1.0. Optional constraints — max_weight (per-name cap, e.g. 0.35), min_weight (drop floor, e.g. 0.02), cash_buffer (0.0-0.5 reserve). regime_scale (0.3-1.0) scales weights down for risk-off. Returns: weights, rebalance_orders, backtest_mdd, data_quality (status/excluded), status (ok/degraded/unusable), decision_summary (headline_code + turnover + confidence), evidence_gaps.
