¿Qué hace padvisor (segunda opinión de un solo agente)?
Resumen
Genera UN agente que lee la situación, forma un juicio y responde. No hace el trabajo —tú lo mantienes. Úsalo cuando una decisión está reñida, un enfoque huele mal o un plan necesita un par de ojos frescos antes de construirse.
No es pspawn, no es phandoff. Esos entregan el TRABAJO. Este solo entrega la PREGUNTA y trae de vuelta una opinión que luego tú mismo ejecutas.
Qué puede hacer el agente generado. Se ejecuta sin solicitudes de permiso usando la configuración por defecto del equipo (bypassPermissions en Claude, full-access en Codex), pero es de solo lectura por instrucción, no por modo: el sufijo de "sin ediciones" del briefing evita que modifique archivos. Un equipo que quiera más puede solicitarlo en el AGENTS.md del repositorio, que también es una instrucción, o bloquearlo con reglas permissions.deny de Claude Code, que igual aplican en bypassPermissions.
Invocación
/padvisor [proveedor/modelo] [--skill /<nombre>] <pregunta> — modelo opcional.
Proveedor por defecto: la otra familia de modelos que la tuya. Desde Claude, el modelo más nuevo de Codex, el primer id en paseo provider models codex; desde Codex, el Opus más nuevo que paseo provider models claude liste (por ejemplo claude/claude-opus-5-5, el modelo de 1M bajo su id simple; pspawn explica por qué no [1m]). El contraste es precisamente el punto — un asesor de tu propia familia de modelos estará de acuerdo contigo por las mismas razones por las que ya estabas equivocado. Sobrescribe solo cuando el usuario nombre un modelo. Lee los ids de la lista, nunca de memoria.
Pasos
1. Generarlo como hijo de esta sesión. Disponibilidad del proveedor primero, exactamente como el paso 1 de pspawn (<directorio base de este skill>/../pspawn/SKILL.md). Luego:
paseo run --no-wait --json \
--provider '<proveedor/modelo>' \
--thinking xhigh \
--mode <full-access para codex, bypassPermissions para claude> \
--title "[Asesor] <tema>" \
"$(cat <<'BRIEF'
<el briefing, paso 2>
BRIEF
)"
Bajo paseo el asesor aterriza por sí solo en el espacio de trabajo de esta sesión, como hijo de esta sesión — y permanece así: no lo desvincules. Un asesor pertenece a la pregunta; cuando esta sesión se archive, paseo archiva al asesor con ella, que es lo que debería ocurrir. Fuera de paseo añade --workspace <id>, buscado como en el paso 2 de pspawn.
Modo: claude → bypassPermissions, codex → full-access, como en toda generación (configuración por defecto del equipo): en un modo por defecto el asesor se detiene en prompts que nadie responde. El sufijo de "sin ediciones", no el modo, evita que modifique archivos. Pon entre comillas simples proveedor/modelo.
2. Escribir el briefing. El asesor tiene contexto cero y no puede ver esta conversación.
[El idioma de la conversación del usuario, como instrucción: "Responde en <ese idioma>."]
## La pregunta
[Una pregunta precisa. No "qué opinas" — "es X o Y la decisión correcta, y por qué".]
## Situación
[Qué se está construyendo o decidiendo, en tres frases.]
## Lo que he considerado
- [Opción] — [por qué atrae, por qué me preocupa]
- [Opción que descarté] — [por qué motivos]
## Dónde mirar
- `/ruta/absoluta/archivo.ts` — [qué es y por qué importa]
## Lo que quiero de vuelta
Una recomendación con razonamiento. Nombra el argumento más fuerte EN CONTRA de tu propia recomendación.
Si mi planteamiento de la pregunta es incorrecto, dilo primero.
Esto es solo análisis. NO edites, crees ni borres ningún archivo. NO escribas código.
Señala archivos por ruta absoluta; no pegues su contenido. El agente puede leerlos. Pegar consume contexto y se vuelve obsoleto.
La línea del "argumento más fuerte en contra" no es decoración — sin ella, un agente nuevo produce invariablemente una respuesta unilateral y segura, que es el modo de fallo que este skill busca evitar.
3. Esperar — arma paseo-notify, luego finaliza tu turno.
paseo-notify <id-del-asesor>
Devuelve el control de inmediato. Un mensaje llega a esta sesión cuando el asesor se detenga: finished its turn → respondió (el mensaje trae sus últimas líneas de actividad), is waiting for a permission → hay una solicitud pendiente para ti, stopped with an error → indícalo y lee sus logs; no lo regeneres en silencio. Un límite de uso no te despierta: paseo-limit-watch reanuda al asesor y reactiva la vigilancia, donde está instalada su línea cron (consulta el README); sin ella, revisa al asesor tú mismo después del restablecimiento. Sin sondeos, sin bucle sleep, sin Monitor. Termina cualquier otro trabajo primero, luego finaliza tu turno.
Fuera de paseo (sin $PASEO_AGENT_ID) ejecuta paseo wait <id-del-asesor> --json con run_in_background: true en su lugar — una llamada Bash en primer plano tiene un límite de 10 minutos, un asesor con pensamiento alto suele ejecutarse 15–30— y lee status del JSON, nunca el código de salida.
Ante permission (raro en bypass y full-access, pero un rm -rf igual pregunta) un asesor desatendido se detiene en silencio. Lee la solicitud (paseo permit ls), decide si está dentro del mandato que le diste al agente, luego paseo permit allow <id-agente> <id-solicitud> o deny (ambos ids de paseo permit ls), y vuelve a armar paseo-notify. Si está fuera del mandato, o no estás seguro, pregunta al usuario en lugar de aprobar en su nombre.
4. Leer la respuesta.
paseo logs <id-del-asesor> --filter text --tail 3
pagent.py <id> -t -n 3 --full (<directorio base de este skill>/../pagent/) ofrece una vista más rica con marcas de tiempo y lee transcripciones de Claude, Codex y Antigravity por igual — y a diferencia de paseo logs nunca recarga un agente cerrado para leerlo.
5. Sintetizar para el usuario. El veredicto del asesor Y tu propia interpretación del mismo, claramente separados. No eres un repetidor: si el asesor se equivoca, dilo y explica por qué. Si encontró algo que se te pasó por alto, dilo también claramente.
6. Archívalo — paseo archive <id-del-asesor> — a menos que el usuario quiera conservarlo (abajo).
Asesor persistente
Si el usuario quiere aportación continua ("guárdalo para las próximas decisiones"), salta el paso 6 y envía preguntas de seguimiento al mismo agente en lugar de generar uno nuevo:
paseo send <id-del-asesor> "<pregunta de seguimiento>" --behavior steer --no-wait
Luego espera (paso 3) y lee (paso 4) como antes. Si el proveedor no acepta redirección, el envío puede recurrir a la interrupción. --no-wait importa: sin él, la CLI espera hasta completar. paseo send revive un agente archivado, así que primero verifica ArchivedAt en paseo inspect <id> --json; en ese caso, informa al usuario en lugar de revivir un asesor archivado.
Su contexto se conserva, que es precisamente el objetivo. Archívalo cuando el usuario diga que ha terminado, o cuando el tema se desvíe lo suficiente como para que el contexto obsoleto perjudique más de lo que ayuda la continuidad.
Skills reenviados
Si el usuario pasa una referencia a un skill (/padvisor /code-review está sobreingeniería?), el asesor — no tú — lo ejecuta. Elige un asesor cuyo entorno tenga ese skill: un skill que solo existe en Claude Code (como /code-review) necesita un asesor claude. Añade al briefing:
Usa el skill `<nombre>` antes de hacer cualquier otra cosa (Claude Code: la herramienta Skill; Codex: lee su SKILL.md), y aplícalo a esta tarea.
Pasa todo lo que vaya después del nombre del skill como entrada de ese skill.
Errores comunes
| Error | Solución |
|---|---|
| Asesor de tu propia familia de modelos por defecto | El modelo más nuevo de Codex — un asesor que está de acuerdo es una generación desperdiciada |
Confiar en el código de salida de paseo wait | Es 0 para inactivo, permiso y error por igual — lee status de --json |
| Espera en primer plano | run_in_background: true; el límite de 10 minutos de Bash mata la espera, no al agente |
Sondeo con paseo ls, sleep o Monitor para saber si terminó | paseo-notify <id> y finaliza tu turno; un mensaje te despierta |
paseo send simple para una pregunta de seguimiento | BLOQUEA hasta terminar — --no-wait, luego espera como en el paso 3 |
Desvincular al asesor, o env -u PASEO_AGENT_ID | Es hijo de esta sesión a propósito: desaparece cuando la sesión se archive |
| Sufijo "sin ediciones" omitido | Sin él, un asesor empieza a implementar lo que le pediste que juzgara |
| Pegar contenidos de archivos en el briefing | Rutas absolutas; el agente los lee por sí mismo |
| Idioma de la respuesta no indicado | El asesor responde en el idioma del prompt; abre con el del usuario |
| Transmitir el veredicto como si fuera un hecho | Es una opinión desde contexto cero — di dónde discrepas |
Codex dejado en su modo por defecto, o claude en auto | codex → full-access, claude → bypassPermissions (configuración por defecto del equipo); el sufijo "sin ediciones" lo mantiene en solo lectura |
| Entregar el trabajo real | Eso es pspawn (tarea abierta) o phandoff (especificación + plan comprometidos) |