# 2026-03-03 - Routing y Backends

## Modelo principal de chat

- Pipo usa `openai-codex/gpt-5.1` como modelo principal para chat.
- El fallback de chat es `custom-api-deepseek-com/deepseek-chat`.

## Backends de terminal disponibles

- `codex-cli`: backend principal para coding, cambios de repo y tareas de mayor calidad.
- `gemini-cli`: backend auxiliar para planning, segunda opinion, comparaciones, analisis y tareas con mucho contexto.
- `deepseek-code`: backend auxiliar barato para propuestas rapidas y exploracion.
- Estos nombres deben tratarse como backends de OpenClaw, no como comandos shell literales.
- Si `codex-cli` no corre en el workspace actual, usar un scratch repo temporal (`mktemp` + `git init`) y ejecutarlo via `bash` con PTY.
- Si se pide `gemini-cli`, no usar el skill interno `gemini`; usar el backend configurado de OpenClaw que lo ejecuta en modo one-shot con `-p`.
- Si se pide probar un backend, no responder `OK` sin ejecucion real y salida real del tool/proceso. Sin ejecucion real, responder fallo.
- Si el humano pide usar varios backends en paralelo, lanzar una ejecucion separada por backend. No fusionar todo en una sola cadena de shell.
- Para demos/sitios, usar una carpeta distinta por backend, un puerto distinto por backend y un `pipo-deploy` distinto por backend.
- Pensar este flujo como 3 workers/subagentes separados: uno para Codex, uno para Gemini y uno para DeepSeek; Pipo solo orquesta y consolida.
- No hacer discovery por shell (`cd && ls`, `ls skills`) si la skill/local workflow ya es conocido.
- Para este flujo, leer directamente `skills/parallel-preview-orchestrator/SKILL.md`.
- En Telegram/direct chat, preferir modo background-first: delegar y soltar el chat rapido.
- Para la skill de previews en Telegram/direct chat: usar workers en background, no `sessions_spawn`.
- El chat principal debe quedar disponible para steering, cancelaciones y pedidos de estado mientras los workers siguen corriendo.
- Guardar y reportar los process handles de cada worker para poder monitorearlos y cancelarlos.
- Si el humano pide subagentes reales en Telegram/direct chat para Codex o Gemini, usar ACP en modo compatible: `sessions_spawn` con `runtime: "acp"`, `mode: "run"` y `thread: false`.
- No usar ACP thread-bound en Telegram/direct chat porque ese canal no soporta hooks de thread binding.
- `deepseek-code` no es un harness ACPX real en esta maquina: para una rama DeepSeek, usar un worker en background separado y reportar el process handle como rama aislada.

## Regla operativa de uso

- Para tareas de codigo importantes, priorizar `codex-cli`.
- Para contrastar enfoques, revisar planes o trabajar con mucho contexto, usar `gemini-cli`.
- Para una alternativa rapida y economica, usar `deepseek-code`.

## Scraping de sitios argentinos

- Para scraping o login de sitios argentinos sensibles a geolocalizacion/WAF, asumir que puede hacer falta salida con IP argentina.
- Cuando haga falta egress argentino, usar Tailscale con el `Pixel 6a` como exit node preferido.
- Si el sitio sigue bloqueando incluso asi, no insistir a ciegas: reportar el bloqueo y pasar a un plan alternativo.

## Deploy / Preview

- No tocar la raiz `https://miopenclaw-vnic.tail9799d2.ts.net/` porque pertenece al dashboard de OpenClaw.
- Cualquier sitio nuevo debe exponerse por Tailscale bajo `https://miopenclaw-vnic.tail9799d2.ts.net/preview/<nombre>/`.
- Si el sitio tiene rutas internas, deben quedar bajo `https://miopenclaw-vnic.tail9799d2.ts.net/preview/<nombre>/<sub-seccion>/`.
