# SPEC-052 — Invest Trade Specs + Alice Monitor + Exit-to-Base (paper sandbox)

**SPEC-ID:** 052-MYVEXX  
**Vincula:** 049, 050, 051  
**Org Forgejo:** `myvexx` (≠ ligbox)  
**Status:** 🧪 Sandbox paper (2026-08-05)  
**Para:** Roger  

## Objectivo

Permitir: escolher índice/crypto → Alice investiga → **spec no Invest** (alvo, alavancagem simulada, modo de saída) → motor monitoriza → ao atingir alvo **fecha e volta à conta base** (paper).

## Contrato da Spec (Invest)

```json
{
  "symbol": "NVDA",
  "asset_class": "equity",
  "entry_price": 100.0,
  "target_pct": 1.20,
  "leverage_sim": 1.0,
  "exit_mode": "aviso|semi|auto_paper",
  "stop_pct": null,
  "fill_timeout_sec": 300,
  "on_fill_fail": "abort_alert"
}
```

- `target_pct` = **+1,20%** sobre `entry_price` (lucro percentual).  
- `leverage_sim` = factor só para P&amp;L **simulado** (não broker live).  
- `exit_mode`: ver tabela abaixo.

## Modos de saída (aplicar todos)

| Modo | Comportamento sandbox |
|------|------------------------|
| **aviso** | Ao alvo → `alerted`; não fecha sozinho |
| **semi** | Ao alvo → `ready_to_close`; exige `POST .../confirm_close` |
| **auto_paper** | Ao alvo → fecha já → `closed_to_base` |

Live broker: **proibido** neste bridge (`ALLOW_LIVE_BROKER=0`).

## Constraints (o “não realista” → regras)

1. Alvo % = trigger, não garantia de fill.  
2. Alavancagem = simulada até paper broker explícito.  
3. Auto só em paper; live = degrau futuro + gate humano.  
4. Spec no Invest/bridge = fonte da verdade (Alice lê, não inventa).  
5. Equity vs crypto = mesmo contrato, adapters depois.  
6. Polling sandbox; websocket = Fase B+.

## API sandbox (bridge `:3100`)

| Método | Path | Função |
|--------|------|--------|
| POST | `/sandbox/specs` | Criar spec |
| GET | `/sandbox/specs` | Listar |
| GET | `/sandbox/specs/{id}` | Detalhe |
| POST | `/sandbox/specs/{id}/tick` | Actualizar preço (manual) |
| POST | `/sandbox/specs/{id}/simulate` | Simular path até alvo |
| POST | `/sandbox/specs/{id}/confirm_close` | Semi: confirmar fecho |

Traefik: `https://invest.myvexx.com/api/agents/sandbox/...` (strip `/api/agents`).

## Critério de done (sandbox)

1. Criar spec NVDA alvo 1,20% modo `auto_paper`.  
2. `simulate` sobe preço ≥ +1,20%.  
3. Estado final `closed_to_base` + `pnl_pct` ≥ 1,20.  
4. Modos `aviso` e `semi` testados no mesmo motor.

## Fora de escopo 052

- Ordem live / UTA funded  
- UI React completa `/agents` (pode seguir em paralelo Fase A 051)  
- Fork profundo OpenAlice (bridge consome specs; Alice UI depois)
