Communitygithub.com

br1anchen/pstack-trio

Ejecuta tres agentes de codificación en una misma sesión de Herdr o Rex: un maestro que planifica, informa, revisa y decide; un ayudante que implementa, prueba y diagnostica siguiendo los libros de jugadas de pstack; y un consultor de un tipo de agente diferente que critica los planes, responde consultas de diseño y hallazgos, y prototipa en un árbol de trabajo desechable.

¿Qué es pstack-trio?

Pstack-trio es una habilidad avanzada para sistemas multi-agente como Claude Code, Cursor, Codex, Devin o similares, que orquesta tres agentes distintos: un maestro responsable de la planificación, la revisión y la toma de decisiones; un ayudante que ejecuta la implementación y las pruebas según los libros de jugadas de pstack; y un consultor que ofrece una segunda opinión crítica sobre el diseño. La habilidad está diseñada para entornos Herdr o Rex y requiere al menos dos tipos de agentes diferentes. El maestro dirige cada discusión, delega el trabajo en el ayudante y consulta al consultor antes de tomar decisiones que alteren el diseño. Toda la comunicación entre agentes se almacena en un almacén de archivos dentro de `$XDG_STATE_HOME/pstack/trio/`, lo que garantiza un registro persistente y evita la pérdida de información en terminales sin scrollback. El flujo de trabajo comienza con un plan que el ayudante debe aceptar y sobre el cual el consultor debe emitir una opinión; las consultas son obligatorias antes de desviaciones del diseño acordado o revisiones en un segundo intento. La habilidad es ideal para tareas complejas que requieren supervisión, implementación delegada y una verificación independiente de la calidad del diseño.

Compatible con✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/br1anchen/open-pstack/tree/HEAD/skills/pstack-trio

Preguntar en tu IA favorita

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

Documentación

Lee el adaptador de tiempo de ejecución antes de seguir este flujo de trabajo. Sus asignaciones de tiempo de ejecución se aplican a todos los libros de jugadas y scripts mencionados.

Pstack trio

Tres agentes, una sesión de Herdr o Rex, un repositorio. El maestro posee el juicio, el ayudante posee el árbol de trabajo y el consultor posee la segunda opinión. Cada mensaje entre ellos es un archivo en el almacén del trío más una instrucción de una línea que nombra el archivo. El terminal nunca es el registro, porque los agentes en la pantalla alternativa no dejan registro de desplazamiento.

El trío es pstack-pair con un consultor añadido. Las rondas de plan del par, informes breves, registros de entrada, direcciones y revisiones no cambian; el consultor se une a cada ronda de plan y responde consultas cuando un hallazgo cambia el diseño. Nunca se comunica con el ayudante y nunca escribe en el árbol compartido.

Precondiciones

  1. Dentro de Herdr (test "${HERDR_ENV:-}" = 1) o Rex (REX_BLOCK establecido). Fuera de ambos, indícalo y detente.
  2. Carga la habilidad del multiplexor para el control de paneles y agentes: el ~/.agents/skills/herdr/SKILL.md de Herdr (o herdr --skill cuando ese archivo está ausente), o rex skill show de Rex. Sus reglas de seguridad se aplican en todo momento. En Rex, lee Ejecutando en Rex.
  3. herdr o rex, y Python 3.11 o posterior (python3), en PATH. scripts/pair.sh help lista cada operación de almacén y canal; úsalo en lugar de llamadas herdr o rex hechas a mano para el trío.
  4. Al menos dos tipos de agentes distintos entre maestro, ayudante y consultor. pair.sh spawn lee el tipo del maestro del multiplexor y sale con 8 si los tres coincidirían; dile al humano que elija otro tipo o que use pstack-pair. El ayudante y el consultor pueden compartir un tipo.
  5. Inicia el maestro en modo automático. Devin por defecto omite los permisos con --permission-mode dangerous. Otros tipos heredan el modo del maestro. pair.sh permission imprime el modo del maestro detectado. --permission <modo> anula ambos roles generados; --consultant-permission <modo> anula solo el consultor. Las banderas de permiso nativas después de -- anulan el valor predeterminado para cada rol generado por esa llamada. --permission auto selecciona el modo inteligente de Devin. Los tipos sin una traducción toman banderas nativas después de --. spawn también omite el mensaje de confianza de carpeta de cada tipo, lo que colgaría a un agente desatendido en una carpeta que no ha visto: pi obtiene --approve, Devin --respect-workspace-trust false. Una bandera de confianza después de -- la anula. Un Claude generado también comienza sin servidores MCP (--strict-mcp-config y una configuración vacía), ya que cada servidor es un proceso por sesión; un --mcp-config después de -- conserva el tuyo. Claude y Codex, en cambio, piden confiar en una carpeta que no han visto; esa decisión es del humano, por lo que spawn rechaza el diálogo y se detiene indicando qué hacer: abre ese agente en el repositorio una vez y confía en él.

Roles

MaestroAyudanteConsultor
Poseeplan, informes breves, consultas, revisión, decisiones, el humanoel árbol de trabajo, pruebas, diagnóstico, evidenciacrítica de diseño, segundas lecturas, prototipos
Ejecuta pstack comoencuadre modo-poteto, how, architect, habilidades de revisiónel libro de jugadas que nombra cada informe breve, con su lista de tareasalternativas de how, why, architect, postura interrogate, blast-radius en diferencias
Escribesolo el almacén del tríoarchivos dentro del Alcance del informe breve, más su registro de progreso e informesarchivos de consejo y un árbol de trabajo temporal que elimina
Lee el árbolsiempre, solo lectura; ejecuta comprobaciones en un área temporal en un commitsiempresiempre, solo lectura
Habla a través deplanes, informes breves, direcciones, consultas, revisiones, órdenes permanentes, compuertaslíneas de progreso, informesconsejo

Entra en tu rol. Maestro: references/master.md. Ayudante: references/sidekick.md. Consultor: references/consultant.md.

Almacén del trío

${XDG_STATE_HOME:-$HOME/.local/state}/pstack/trio/<slug>/, creado por pair.sh init. Un escritor por archivo.

RutaEscritorContenido
pair.jsonmaestro a través de pair.shnombres de agentes, IDs de panel, tipos, cwd, raíz de git, lista de áreas temporales abiertas, respaldo y fallos del ayudante, ubicación del panel (dividido o pestaña)
standing-orders.mdmaestrorestricciones numeradas pegadas por ruta en cada informe breve
plans/NNN-<slug>.mdmaestrouna ronda de plan, desde la plantilla de plan
briefs/NNN-<slug>.mdmaestrouna unidad, desde la plantilla de informe breve
progress/NNN-<slug>.mdayudante a través de pair.sh progressuna línea con marca de tiempo por paso completado o cambio de enfoque
steers/NNN-<slug>-s<k>.mdmaestrodirección k durante el informe breve para la unidad NNN, desde la plantilla de dirección
consults/NNN-<slug>-c<k>.mdmaestropregunta k sobre la unidad NNN para el consultor, desde la plantilla de consulta, con un kind: de diseño, hallazgo, objeción o revisión
reports/NNN-<slug>-s<k>.mdayudanteobjeción a la dirección k, desde la plantilla de respuesta a dirección
reports/NNN-<slug>.mdayudanteevidencia para el informe breve NNN, desde la plantilla de informe, o la respuesta de acuerdo/objeción al plan NNN, desde la plantilla de respuesta a plan
advice/NNN-<slug>.mdconsultorcrítica de diseño del plan NNN, desde la plantilla de consejo de plan
advice/NNN-<slug>-c<k>.mdconsultorrespuesta a la consulta k, desde la plantilla de consejo
scratch/<id>consultor o maestro a través de pair.sh scratchenlace a un árbol de trabajo desechable para una consulta (NNN-<slug>-c<k>) o revisión (NNN-<slug>-revisión), en un commit o el estado en vivo, mantenido fuera del repositorio bajo ${XDG_STATE_HOME:-~/.local/state}/pstack/scratch/ (PSTACK_SCRATCH_ROOT lo mueve), que Claude y Codex deben confiar una vez por host (kitchen.py doctor lo comprueba); eliminado cuando termina
reviews/NNN-<slug>.mdmaestroveredicto sobre la unidad NNN, desde la plantilla de revisión; nombra el consejo en el que se basó y cualquier anulación
gates.mdmaestropreguntas abiertas para el humano
decisions.tsvmaestro a través de pair.sh logel rastro de "muéstrame tu trabajo"
status.mdpair.sh statustabla derivada; nunca editada a mano
queuemaestro a través de pair.sh queue y dispatchla ruta del siguiente informe breve, un espacio
steps/NNN-<slug>.tsvayudante a través de pair.sh stepuna fila por paso comprometido: número, commit, hora, notas que resuelve, resumen
notes/NNN-<slug>-n<k>.mdmaestro a través de pair.sh new-note y noterevisión de los pasos de la unidad hasta el paso k, desde la plantilla de nota: elementos bloqueantes y seguimientos
followups.mdmaestro a través de pair.sh noteseguimientos de cada nota, para un informe breve posterior o un problema
session-handoff.mdmaestrocontexto compacto de recuperación y siguiente tarea, leído al iniciar
sessions/pair.sh spawn / rotateinformes de listos anteriores; exportaciones de sesión retenidas y evidencia de tiempo
events.tsvcada comando pair.shuna fila por mensaje, informe, activación y entrada de registro, leído por pair.sh metrics

NNN es una secuencia rellenada con ceros compartida por plan o informe breve, informe, consejo y revisión, por lo que los archivos de una unidad se ordenan juntos.

Mensajes

Texto de instrucciónDirecciónAyudante del emisorMovimiento del receptor
bootstrap (nombra la habilidad, el rol y el almacén)maestro a ayudante y consultorpair.sh spawnpasos de bootstrap, reports/000-ready.md o advice/000-ready.md, responde READY
pstack-trio PLAN <ruta-del-plan>maestro a ayudante y consultor a la vezpair.sh discussel ayudante fundamenta el plan en el código; el consultor critica el diseño; cada uno escribe acuerdo u objeción, termina el turno
pstack-trio BRIEF <ruta-del-informe-breve>maestro a ayudantepair.sh dispatchejecuta el informe breve, escribe su informe, ejecuta pair.sh finish, luego termina el turno con la línea REPORT
pstack-trio BRIEF <ruta-del-informe-breve>, en colamaestro a un ayudante trabajandopair.sh queueel maestro lo despacha después de una sesión nueva; pair.sh next lo rechaza
pstack-trio STEER <ruta-de-dirección>maestro a un ayudante trabajando, o uno pausado por una objeciónpair.sh steerléelo entre llamadas de herramienta; acepta y continúa, o objeta con evidencia y termina el turno
pstack-trio CONSULT <ruta-de-consulta>maestro a consultorpair.sh consultlee los archivos nombrados, prototipa en área temporal si es necesario, escribe el consejo, termina el turno
pstack-trio REPORT <ruta-de-informe>ayudante a maestropair.sh finish (o notify)lee el informe, revisa
pstack-trio ADVICE <ruta-de-consejo>consultor a maestropair.sh notifylee el consejo, decide
pstack-trio STOP <almacén>maestro a ayudante y consultorpair.sh stoppausa de forma segura, escribe un informe de parada o consejo

discuss regresa cuando ambos agentes se estabilizan, con una ruta de respuesta y estado por rol. Un ayudante ocupado en una unidad no retiene una ronda: el consultor recibe el plan de inmediato, la mitad del ayudante es deferred (código de salida 4), y ejecutar discuss de nuevo una vez que el ayudante informe envía solo esa mitad. consult regresa cuando el consultor se estabiliza en idle, done o blocked. dispatch y wait regresan cuando llega la respuesta del ayudante, el informe está escrito desde el mensaje, o cuando está blocked; una estabilización solo del multiplexor no es de confianza: un ayudante Devin muestra inactividad cuando llega una instrucción y entre pasos, y en un panel estrecho puede mostrar "hecho" para una ejecución completa, por lo que una estabilización se verifica contra la línea "esc para interrumpir" del panel, y una sin informe que se mantenga durante un minuto termina la espera con report: missing. dispatch y wait también regresan en el intervalo de registro con un resumen. wait también regresa en el momento en que llega un informe de un informe breve despachado, incluso si el ayudante ya ha tomado el informe breve en cola; entonces running: nombra el informe breve en el que está. notify solicita al maestro solo cuando el maestro está inactivo. Un mensaje que recibes después de la compactación aún nombra esta habilidad y el archivo a leer, así que recarga la habilidad y continúa desde ese archivo.

Plan primero

La implementación comienza solo a partir de un plan que el ayudante aceptó y sobre el cual el consultor opinó. El maestro redacta plans/NNN-<slug>.md con el diseño elegido, las alternativas que sopesó y sus pros y contras, luego lo envía con pair.sh discuss, que llega a ambos agentes a la vez. El ayudante verifica cada paso contra el código y responde acuerdo u objeción con evidencia. El consultor critica el diseño en sí: la forma de los datos, los límites, lo que la tabla de alternativas omite, y responde acuerdo u objeción. El maestro fusiona ambas en la siguiente ronda o una revisión con veredicto agreed.

El consultor es consultivo. Una object del consultor no bloquea agreed; el maestro puede anularla con la razón bajo la sección Anulado de la revisión y una fila de decisiones. Sin embargo, debe existir un archivo de consejo para la ronda de plan: pair.sh dispatch rechaza un informe breve de característica, corrección de errores, refactorización, problema de rendimiento o pstack-tdd cuyo plan no tenga consejo de consultor archivado o una revisión agreed. Los informes breves de solo lectura y forenses no necesitan plan; el informe breve de diagnóstico de un error se ejecuta antes de su plan. Tres rondas sin acuerdo se convierten en una compuerta para el humano, con todas las posiciones en gates.md.

Consultas

Una consulta es la pregunta del maestro al consultor fuera de una ronda de plan. pair.sh new-consult <almacén> <NNN> --kind <tipo> crea el archivo para la unidad NNN; pair.sh consult lo envía y espera el consejo.

TipoCuándoEl consultor responde
diseñoel maestro sopesa una dirección antes de un plan o una direcciónqué camino y por qué, con las compensaciones
hallazgoun resumen de registro, informe o diferencia reveló algo inesperadosi es lo que parece, y qué cambia
objeciónel ayudante objetó una direcciónquién tiene razón según la evidencia y la alternativa
revisiónun veredicto está en disputa o una unidad está en su segunda revisiónaceptar, revisar o rechazar, con los hallazgos
vistazoun registro muestra el primer commit o una diferencia considerable en una unidad cuya revisión costaría másen cinco minutos: ¿la revisión diría revisar, y por qué, o none?

Las consultas son obligatorias antes de: una dirección que se aparte del diseño acordado, una dirección sustitutiva después de una objeción del ayudante, y un veredicto revise en el segundo intento de una unidad. Son opcionales en otros lugares, y no se envía ninguna para la unidad de aterrizaje: cada discusión y revisión termina antes del aterrizaje. Tres consultas por unidad; new-consult rechaza una cuarta sin --force, porque una cuarta significa que el diseño es incorrecto y pertenece a una ronda de plan. Un vistazo está fuera de ese límite, uno por unidad, y nunca es obligatorio: la cuota del consultor es la escasa, así que gástala donde una revisión tardía costaría más.

Cada consulta se ejecuta en cualquier momento, el ayudante esté trabajando o no. consult sella el estado del ayudante y HEAD en el archivo; el consultor lee el trabajo comprometido en esa cabeza, y cualquier cosa no comprometida solo a través de una instantánea pair.sh scratch, nunca un árbol que se mueva debajo de él. Cada consulta lleva un límite de tiempo, quince minutos por defecto y cinco para un vistazo; pasado ese tiempo, el consultor escribe consejo partial y termina el turno.

Registros de entrada y direcciones

Sin cambios respecto a pstack-pair: el ayudante añade líneas de progreso, dispatch y wait devuelven un resumen de registro en el intervalo, y una dirección es el único mensaje que puede llegar a un ayudante trabajando. Dos direcciones nuevas por informe breve, dos rondas cada una. El consultor añade un paso: cuando un resumen u objeción muestra un hallazgo que cambia el diseño, el maestro consulta antes de dirigir, y la Dirección de la dirección cita la ruta del consejo.

Sesiones de tarea de todo tipo

Un ayudante de cualquier tipo (Claude, Codex, Devin, pi, Prime, Muse) usa una conversación nueva

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

Skills relacionados