# TradingView Strategy Live-Readiness Test Plan

Purpose: move the TradingView -> JARVIS -> HyperLiquid path from paper-only toward live only after evidence and safety gates are green.

## Current enforced status

- TradingView can only create `paper_signal` events.
- Paper Bridge can create simulated entries/exits and PnL.
- Promotion Gates can only return `paper_only` or `shadow_candidate_not_live`.
- `live_allowed` remains false until explicit live release work and user approval.

## Fast promotion ladder

1. **Paper signal plumbing**
   - Verify TradingView webhook auth, allowlists, duplicate rejection, accepted/rejected journals.
   - Required: zero unexpected `live_order_allowed=true` flags.

2. **Paper execution quality**
   - Run Paper Bridge on real TradingView alerts.
   - Track entries, exits, fees, net PnL, blockers, strategy/coin performance.
   - Required: enough closed trades, positive net PnL after fees/slippage, acceptable winrate.

3. **Operational readiness**
   - Reconcile clean.
   - Alerts proven.
   - Loss gates active.
   - Kill-switch ready.
   - Stop handling ready.
   - Required: Operational Gates green 5/5.

4. **Shadow mode**
   - Same decisions as live, but no signed orders.
   - Compare intended fills vs market prices and paper fills.
   - Required: stable decisions, no stale/replayed signals, no exposure leakage.

5. **Confirm mode**
   - Bot prepares order candidate and asks user approval.
   - Required: reduce-only stop attached, reconcile clean before/after, audit line written.

6. **Tiny live**
   - User-approved tiny notional only.
   - Hard caps: max loss, max open trades, max notional, kill-switch, stop required.
   - Immediate rollback to paper if any gate fails.

## Current blockers from latest runtime

- `alerts_proven_missing`: preflight evidence says Telegram alerts are not yet proven.
- `sample_too_small`: no real closed TradingView paper sample yet.
- `net_pnl_not_positive`: no positive paper evidence yet.
- `winrate_below_threshold`: no closed sample yet.

## Live decision rule

No live release until:

```text
Operational Gates = 5/5
Promotion Gates = shadow_candidate_not_live
Confirm-mode smoke = passed
User explicitly approves tiny-live
```
