# DEPLOY.md — Redeploy + plan de los 7 días

Checklist post-último-batch (drift sticky + bridge custom + cron intraday +
library extendida + cleanup agent + observability tooling).

---

## Fase 0 — Redeploy en EasyPanel

1. **Push a GitHub**:
   ```bash
   git add -A
   git commit -m "Drift sticky + bridge custom + observability tooling"
   git push origin main
   ```

2. **EasyPanel → app `leonex` → Deploy**. Espera a que el contenedor reinicie y
   el log muestre `Server listening on 0.0.0.0:8765`.

3. **Smoke test inmediato**:
   ```bash
   python tools/post_deploy_check.py --server https://leonex.tudominio.com
   ```
   Espera `RESULTADO: 6/6 OK`. Si algún check falla, mira el detalle — los
   FAIL más comunes son:
   - `3/6 Alpaca diagnose` → revisa env vars `ALPACA_API_KEY` y
     `ALPACA_API_SECRET` en EasyPanel → Environment.
   - `5/6 Custom bridge` → si `custom_module_available=false`, falta el
     `custom_strategies.py` en el container. Revisa el último commit.

---

## Fase 1 — Activar canales nuevos (día 0)

4. **Promociona los 12 Custom Lab GOLD** (dry-run primero):
   ```bash
   python tools/batch_promote_custom_gold.py \
       --server https://leonex.tudominio.com --dry-run
   ```
   Si la salida se ve sana, sin el `--dry-run`:
   ```bash
   python tools/batch_promote_custom_gold.py \
       --server https://leonex.tudominio.com
   ```
   Verifica en el dashboard → Strategy Tracker que aparecen las 12 nuevas
   (CEG, CMI, ABNB, EW, EXPE, LRCX, GLW, REG, ALGN, GM, BBY, MU).

5. **Importa el workflow n8n del bridge intraday**:
   - n8n → Workflows → Import from File → `tools/n8n_bridge_intraday_workflow.json`.
   - Variable de entorno `LEONEX_URL` apuntando a tu host.
   - Activa el workflow (toggle "Active").
   - Verás los primeros disparos a `:00, :15, :30, :45` de cada hora UTC en
     horas US.

---

## Fase 2 — Observación (días 1-7, NO TOCAR NADA)

6. **Cada día a las 22:00 UTC** (post-cierre US), corre el observability:
   ```bash
   python tools/daily_observability.py --root /ruta/al/proyecto/NETWORX
   ```
   Esto escribe `logs/daily_summary_YYYY-MM-DD.md`. También puedes añadir un
   workflow n8n con cron `0 22 * * 1-5` que llame al script vía SSH, o
   leerlo desde el dashboard.

7. **Una vez al día**, abre el dashboard y revisa estas 3 cards SOLO:
   - **Carrier Health** (sección Signals). Verifica el verdict.
   - **Drift Monitor** (Paper Trading). Si pasa de RED a GREEN, anota qué día.
   - **Bridge promoted card**. Cuántas live hoy / cuál.

8. **NO hagas nada más durante 7 días**. Sin tocar parámetros, sin promover/
   despromocionar, sin reentrenar. La observación es el experimento.

---

## Fase 3 — Decisiones (día 8)

9. **Compara los 7 `daily_summary_*.md`** uno al lado del otro. Pregúntate:
   - ¿Cuántos fires totales? ¿De qué carril (legacy / swing GOLD / scalping /
     custom)?
   - ¿Cuál es el equity al final de la semana?
   - ¿El AUC delta del Meta es positivo o negativo? (Si negativo → quitar el
     flag `--use-causal-features` del pipeline).
   - ¿El Carrier Health verdict cambió?
   - ¿El cleanup agent (dry-run) propone deprecar alguna?

10. **Decisiones permitidas el día 8** (no antes):
    ```bash
    # a) Si el Meta extended > causal_only por >0.01 AUC, quitar el flag
    #    de actualizar_datos.py y leonex_server.py y redeploy.
    
    # b) Cleanup dry-run primero, --execute solo si te convencen los candidatos
    python agents/agente_strategy_cleanup.py            # dry-run
    python agents/agente_strategy_cleanup.py --execute  # aplica borrados
    
    # c) Si quieres acelerar el cron intraday a 5min, edita el workflow n8n.
    ```

---

## Resumen ejecutivo de qué cambió en este batch

| Cambio | Efecto |
|---|---|
| Drift sticky (3 GREEN consecutivos) | Pausa más estable, evita flicker |
| Bridge custom strategies | Las 12 GOLD del Custom Lab pueden operar |
| Cron intraday n8n | ~26 evaluaciones intraday/día (antes: 1) |
| Lock release endpoint | Desbloqueo manual de atascos |
| Carrier Health card | Síntesis honesta PBO + AUC + Drift |
| Meta comparison AUC | Mide cuánto edge te quita causal-only |
| Library extendida | Aronson, Chan, Carver, Kaufman, Vince, Bandy, ESL |
| Citas en agentes | Trazabilidad de cada idea a su fuente |
| Cleanup agent | Detecta promovidas que el Lab ya no respalda |

---

## Lo que NO está hecho (queda en cola)

- **Microestructura de mercado** (Harris): Leonex modela slippage como % fijo.
  Para mejorarlo habría que añadir bid-ask spread realista por ticker. Necesario
  antes de pasar a real money, no urgente en paper.
- **Optimal f de Vince** como sizing alternativo: experimento futuro si el
  Half-Kelly empieza a saturar.
- **Fundamentals (TIKR)**: bloqueado en subida del template del usuario.

---

## Cosas que NO debes hacer durante los 7 días

- ❌ Promover/despromocionar estrategias manualmente.
- ❌ Cambiar parámetros del sizing engine.
- ❌ Cerrar posiciones manualmente "porque crees que va a bajar".
- ❌ Reentrenar el Meta con otro flag de features.
- ❌ Añadir tickers al universe a mano.

La idea es ver QUÉ HACE TU SISTEMA SOLO. Si intervienes, contaminas el experimento.
