pcommittee (comité de dos agentes para causa raíz)

Utilízalo cuando estés atascado, en un bucle o con visión de túnel en un problema complejo: forma un comité de dos agentes contrastantes que lo analizan en paralelo, discuten sus desacuerdos y convergen en un plan. Se activa con "/pcommittee", "committee", "estamos dando vueltas", "la causa raíz sigue sin estar clara después de varios intentos", "que dos modelos analicen esto". Solo análisis; el comité nunca edita archivos.

¿Qué es pcommittee (comité de dos agentes para causa raíz)?

Este skill genera un comité de dos agentes de diferentes familias de modelos (Claude y Codex por defecto) para analizar problemas complejos donde el usuario está atascado o en un bucle. Los agentes reciben exactamente el mismo prompt, lo que garantiza que cualquier divergencia en sus conclusiones sea real y no un artefacto de redacción. El flujo incluye escribir el prompt en un archivo temporal único, lanzar ambos agentes en paralelo con `paseo run --no-wait`, esperar sus respuestas mediante `paseo-notify`, y luego hacerlos argumentar entre sí enviando sus razonamientos opuestos. Después de hasta dos rondas de debate, el usuario sintetiza un plan y archiva los agentes. El skill es útil para problemas costosos o poco claros que merecen una segunda y tercera opinión antes de implementar, y enfatiza que el comité nunca toca archivos. Soporta las plataformas paseo (con agentes Claude y Codex) y se invoca con el comando `/pcommittee <problema>`.

Compatible con✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/evrenverse/agent-skills/tree/HEAD/skills/pcommittee

Installed? Explore more Investigación y análisis de datos skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

¿Qué hace pcommittee (comité de dos agentes para causa raíz)?

Resumen

Dos agentes, dos familias de modelos, el mismo problema, contexto nuevo en ambos lados. Analizan en paralelo; tú haces que discutan donde no estén de acuerdo; sintetizas lo que sobrevive. Después TÚ implementas — el comité nunca toca un archivo.

Cuándo merece la pena: has dado la misma vuelta dos veces, el error no tiene una causa raíz obvia, o un plan es lo suficientemente costoso como para merecer una segunda y tercera opinión antes de construirlo. Dos agentes xhigh no son baratos. Para una sola opinión usa padvisor; para delegar el trabajo usa pspawn o phandoff.

Qué pueden hacer los agentes generados. Ambos se ejecutan sin solicitudes de permiso según la configuración predeterminada del equipo (bypassPermissions en Claude, full-access en Codex), pero son de solo lectura por instrucción, no por modo: el sufijo de "no editar" en el prompt les impide modificar archivos. Un equipo que quiera más puede solicitarlo en el archivo AGENTS.md del repositorio, que también es una instrucción, o bloquearlo con las reglas permissions.deny de Claude Code, que siguen aplicándose en bypassPermissions.

Invocación

/pcommittee <problema> — el par predeterminado se muestra a continuación; los miembros que nombre el usuario lo reemplazan.

Composición

El contraste es el mecanismo, no un lujo. Dos agentes de la misma familia producen el mismo punto ciego dos veces y lo llaman confirmación.

El comité predeterminado empareja claude y codex; ambos deben aparecer como available y Enabled en paseo provider ls:

  • Miembro A: el Opus más reciente que paseo provider models claude liste (por ejemplo claude/claude-opus-5-5) · pensamiento xhigh · modo bypassPermissions
  • Miembro B: el modelo más reciente de Codex, el primer id de paseo provider models codex · pensamiento xhigh · modo full-access

Lee los ids de esas listas, nunca de memoria. El miembro Claude toma el id simple, que es el modelo 1M (pspawn explica por qué no [1m]). Ambos miembros se ejecutan sin solicitudes de permiso, como cada generación (predeterminado del equipo); el sufijo de "no editar", no el modo, les impide modificar archivos.

Si el usuario nombra miembros, úsalos. Si solo una familia está disponible, dilo y ejecuta padvisor en lugar de fingir que un comité de un solo miembro es un comité.

Pasos

1. Escribe UN prompt de problema. Ambos miembros reciben el texto idéntico — prompts diferentes hacen que el desacuerdo sea un artefacto de tu redacción en lugar de una división real.

Escríbelo en un archivo propio y pasa "$(cat <archivo de prompt>)" a ambas generaciones. Escribir el mismo heredoc dos veces es cómo los textos se desvían silenciosamente; un archivo hace que la identidad sea estructural en lugar de descuidada. Crea el archivo con mktemp y usa la ruta que imprime como <archivo de prompt>: un nombre fijo en /tmp choca con el comité de otra sesión y es legible por cualquier usuario; un archivo mktemp es nuevo para esta ejecución y legible solo por ti.

Comienza con el idioma de respuesta, aquel en el que está la conversación del usuario (Responde en <idioma>.). — los miembros responden en el idioma en el que está el prompt, y una conversación en un idioma con dos informes en otro es fricción que pagas en el momento de la síntesis.

[El idioma de la conversación del usuario, como instrucción: "Responde en <ese idioma>."]

## El problema
[Qué está mal o no está decidido. Síntomas, no tu teoría — tu teoría es lo que quieres que pongan a prueba.]

## Lo que se sabe
[Hechos, mediciones, mensajes de error, textual. No conclusiones.]

## Lo que se ha intentado
- [Enfoque] — [qué pasó, por qué se abandonó]

## Dónde mirar
- `/ruta/absoluta/archivo.ts` — [qué es y por qué importa]

## Lo que quiero recibir
Un análisis de causa raíz y un plan. Indica tu nivel de confianza y nombra qué falsificaría tu diagnóstico.
Si el problema plantado es el problema equivocado, dilo primero.

Esto es solo análisis. NO edites, crees ni elimines ningún archivo. NO escribas código.

Mantén TU propia hipótesis FUERA del prompt, o la recibirás de vuelta dos veces con palabras diferentes. Si debes mencionarla, márcala como una hipótesis que debe ser atacada.

2. Genera ambos como hijos de esta sesión. Primero, disponibilidad del proveedor, exactamente como el paso 1 de pspawn (<directorio base de este skill>/../pspawn/SKILL.md). Luego, en la misma respuesta para que piensen en paralelo:

paseo run --no-wait --json --provider '<claude/nuevo-opus>' --thinking xhigh \
  --mode bypassPermissions --title "[Comité A] <tema>" "$(cat <archivo de prompt>)"
paseo run --no-wait --json --provider '<codex/nuevo>' --thinking xhigh \
  --mode full-access --title "[Comité B] <tema>" "$(cat <archivo de prompt>)"

Con paseo ambos aterrizan en el espacio de trabajo de esta sesión por sí solos, como hijos de esta sesión — y permanecen así: no los separes. El comité pertenece a esta pregunta; archivar esta sesión los archiva también, que es lo que debería ocurrir. Fuera de paseo añade --workspace <id>, buscado una vez como en el paso 2 de pspawn.

3. Espera a ambos — una paseo-notify por miembro, luego termina tu turno.

paseo-notify <id-a>; paseo-notify <id-b>

El mensaje de cada miembro llega por separado. Si uno está dentro y el otro todavía fuera, termina tu turno de nuevo; el segundo mensaje te despierta. terminó su turno → respondió. está esperando un permiso → hay una solicitud esperándote. se detuvo con un error → dilo y lee sus registros; no vuelvas a generarlo silenciosamente. Un límite de uso no te despierta: paseo-limit-watch reanuda al miembro y rearma la vigilancia, donde está instalada su línea cron (consulta el README); sin ella, revisa al miembro tú mismo después del restablecimiento. Los miembros suelen tardar 15–30 minutos. Nunca hagas polling, nunca sleep, nunca envíes mensajes de prisa.

Fuera de paseo (sin $PASEO_AGENT_ID): paseo wait <id-a> --json; paseo wait <id-b> --json en UNA llamada a bash con run_in_background: true, y lee cada status del JSON, nunca el código de salida.

Ante permission (raro en bypass y full-access, pero un rm -rf sigue preguntando) el miembro se detiene sin que nadie lo vigile. Léelo (paseo permit ls), decide si está dentro del mandato que le diste, luego paseo permit allow <agent-id> <request-id> o deny (ambos ids de paseo permit ls), y arma paseo-notify de nuevo. Fuera del mandato o no claro → pregunta al usuario, no apruebes por él.

4. Lee ambos.

paseo logs <id> --filter text --tail 3

pagent.py <id> -t -n 3 --full (<directorio base de este skill>/../pagent/) es más rico, con marcas de tiempo, y lee tanto al miembro Claude como al Codex.

5. Hazlos argumentar. Este es el paso que hace que un comité valga dos agentes — saltártelo te deja con dos informes y ninguna resolución.

Encuentra dónde realmente divergen — una causa raíz diferente, una solución diferente, una evaluación de riesgo diferente. Ignora las diferencias en redacción y énfasis; esos no son desacuerdos.

Para cada división real, envía a cada miembro el argumento del OTRO:

paseo send --behavior steer --no-wait <id-a> "El Miembro B concluye <X>, basándose en: <razonamiento textual>. Respóndelo directamente: ¿dónde se equivoca B, o dónde te equivocaste tú? Cambia tu postura si B tiene razón — dilo claramente si no lo haces."
paseo send --behavior steer --no-wait <id-b> "El Miembro A concluye <Y>, basándose en: <razonamiento textual>. Respóndelo directamente: ¿dónde se equivoca A, o dónde te equivocaste tú? Cambia tu postura si A tiene razón — dilo claramente si no lo haces."

El razonamiento textual largo es más fácil de pasar como archivo: escribe el mensaje y usa paseo send --behavior steer --no-wait --prompt-file <archivo> <id>. Si el proveedor no acepta steering, puede recurrir a la interrupción. paseo send revive un agente archivado — comprueba ArchivedAt en paseo inspect <id> --json primero; no revivas miembros archivados.

--no-wait es obligatorio aquí. Un paseo send simple BLOQUEA hasta que el agente termina — dos bloqueos sequentiales ejecutan los miembros secuencialmente en lugar de en paralelo, y el primero supera el límite de 10 minutos de Bash en primer plano. Dispara ambos no bloqueantes, luego arma ambas vigilancias de nuevo (paso 3) y lee de nuevo (paso 4). Normalmente dos rondas son suficientes. Si todavía están en desacuerdo después de dos rondas, detente e informa del desacuerdo como el resultado — una división genuina no resuelta entre dos modelos fuertes es un hallazgo real sobre el problema, y forzar el consenso enviando una tercera ronda lo destruye.

6. Sintetiza para el usuario:

  • En qué coincidieron ambos — esta es la parte que soporta la carga
  • Dónde se dividieron, y cómo se resolvió (o que no se resolvió)
  • Tu propia lectura, marcada como tuya
  • El plan que seguirías ahora

7. Archiva ambos — paseo archive <id> cada uno — a menos que el usuario quiera seguir interrogándolos.

Errores comunes

ErrorSolución
Dos miembros de la misma familia de proveedoresEl contraste es el mecanismo — claude + codex
Prompt diferente por miembroUn archivo, "$(cat …)" en ambas generaciones — dos heredocs se desvían
Idioma de respuesta no indicadoLos miembros responden en el idioma del prompt; comienza con el del usuario
Tu propia hipótesis presentada como hecho en el promptDéjala fuera, o márcala como hipótesis a atacar
Saltarse la ronda de argumentaciónDos informes no son un comité — el paso 5 es el valor
Forzar el consenso en la tercera rondaUna división no resuelta entre dos modelos fuertes ES el hallazgo
Confiar en el código de salida de paseo waitEs 0 tanto para inactivo, permiso como error — lee status de --json
Espera en primer planorun_in_background: true; el límite de 10 minutos de Bash mata la espera, no a los agentes
Miembro Codex dejado en su modo predeterminado, o claude en autocodex → full-access, claude → bypassPermissions (predeterminados del equipo); un miembro en su modo predeterminado se detiene en prompts que nadie responde
Mensajes de polling / prisapaseo-notify por miembro y termina tu turno; los miembros razonan durante 15–30 minutos
paseo send simple en la segunda rondaBLOQUEA hasta terminar — --no-wait para ambos, luego paso 3
Sufijo de "no editar" omitidoAmbos miembros empiezan a implementar lo que les pediste analizar
Separar a los miembros, o env -u PASEO_AGENT_IDSon hijos de esta sesión a propósito: se van cuando se archiva
Ejecutar un comité para una pregunta pequeñapadvisor — un agente, una opinión, una fracción del costo

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

Skills relacionados