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
- Dentro de Herdr (
test "${HERDR_ENV:-}" = 1) o Rex (REX_BLOCKestablecido). Fuera de ambos, indícalo y detente. - Carga la habilidad del multiplexor para el control de paneles y agentes: el
~/.agents/skills/herdr/SKILL.mdde Herdr (oherdr --skillcuando ese archivo está ausente), orex skill showde Rex. Sus reglas de seguridad se aplican en todo momento. En Rex, lee Ejecutando en Rex. herdrorex, y Python 3.11 o posterior (python3), en PATH.scripts/pair.sh helplista cada operación de almacén y canal; úsalo en lugar de llamadasherdrorexhechas a mano para el trío.- Al menos dos tipos de agentes distintos entre maestro, ayudante y consultor.
pair.sh spawnlee el tipo del maestro del multiplexor y sale con 8 si los tres coincidirían; dile al humano que elija otro tipo o que usepstack-pair. El ayudante y el consultor pueden compartir un tipo. - 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 permissionimprime 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 autoselecciona el modo inteligente de Devin. Los tipos sin una traducción toman banderas nativas después de--.spawntambié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-configy una configuración vacía), ya que cada servidor es un proceso por sesión; un--mcp-configdespué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 quespawnrechaza el diálogo y se detiene indicando qué hacer: abre ese agente en el repositorio una vez y confía en él.
Roles
| Maestro | Ayudante | Consultor | |
|---|---|---|---|
| Posee | plan, informes breves, consultas, revisión, decisiones, el humano | el árbol de trabajo, pruebas, diagnóstico, evidencia | crítica de diseño, segundas lecturas, prototipos |
| Ejecuta pstack como | encuadre modo-poteto, how, architect, habilidades de revisión | el libro de jugadas que nombra cada informe breve, con su lista de tareas | alternativas de how, why, architect, postura interrogate, blast-radius en diferencias |
| Escribe | solo el almacén del trío | archivos dentro del Alcance del informe breve, más su registro de progreso e informes | archivos de consejo y un árbol de trabajo temporal que elimina |
| Lee el árbol | siempre, solo lectura; ejecuta comprobaciones en un área temporal en un commit | siempre | siempre, solo lectura |
| Habla a través de | planes, informes breves, direcciones, consultas, revisiones, órdenes permanentes, compuertas | líneas de progreso, informes | consejo |
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.
| Ruta | Escritor | Contenido |
|---|---|---|
pair.json | maestro a través de pair.sh | nombres 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.md | maestro | restricciones numeradas pegadas por ruta en cada informe breve |
plans/NNN-<slug>.md | maestro | una ronda de plan, desde la plantilla de plan |
briefs/NNN-<slug>.md | maestro | una unidad, desde la plantilla de informe breve |
progress/NNN-<slug>.md | ayudante a través de pair.sh progress | una línea con marca de tiempo por paso completado o cambio de enfoque |
steers/NNN-<slug>-s<k>.md | maestro | dirección k durante el informe breve para la unidad NNN, desde la plantilla de dirección |
consults/NNN-<slug>-c<k>.md | maestro | pregunta 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>.md | ayudante | objeción a la dirección k, desde la plantilla de respuesta a dirección |
reports/NNN-<slug>.md | ayudante | evidencia 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>.md | consultor | crítica de diseño del plan NNN, desde la plantilla de consejo de plan |
advice/NNN-<slug>-c<k>.md | consultor | respuesta a la consulta k, desde la plantilla de consejo |
scratch/<id> | consultor o maestro a través de pair.sh scratch | enlace 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>.md | maestro | veredicto sobre la unidad NNN, desde la plantilla de revisión; nombra el consejo en el que se basó y cualquier anulación |
gates.md | maestro | preguntas abiertas para el humano |
decisions.tsv | maestro a través de pair.sh log | el rastro de "muéstrame tu trabajo" |
status.md | pair.sh status | tabla derivada; nunca editada a mano |
queue | maestro a través de pair.sh queue y dispatch | la ruta del siguiente informe breve, un espacio |
steps/NNN-<slug>.tsv | ayudante a través de pair.sh step | una fila por paso comprometido: número, commit, hora, notas que resuelve, resumen |
notes/NNN-<slug>-n<k>.md | maestro a través de pair.sh new-note y note | revisión de los pasos de la unidad hasta el paso k, desde la plantilla de nota: elementos bloqueantes y seguimientos |
followups.md | maestro a través de pair.sh note | seguimientos de cada nota, para un informe breve posterior o un problema |
session-handoff.md | maestro | contexto compacto de recuperación y siguiente tarea, leído al iniciar |
sessions/ | pair.sh spawn / rotate | informes de listos anteriores; exportaciones de sesión retenidas y evidencia de tiempo |
events.tsv | cada comando pair.sh | una 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ón | Dirección | Ayudante del emisor | Movimiento del receptor |
|---|---|---|---|
| bootstrap (nombra la habilidad, el rol y el almacén) | maestro a ayudante y consultor | pair.sh spawn | pasos 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 vez | pair.sh discuss | el 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 ayudante | pair.sh dispatch | ejecuta 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 cola | maestro a un ayudante trabajando | pair.sh queue | el 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ón | pair.sh steer | lé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 consultor | pair.sh consult | lee los archivos nombrados, prototipa en área temporal si es necesario, escribe el consejo, termina el turno |
pstack-trio REPORT <ruta-de-informe> | ayudante a maestro | pair.sh finish (o notify) | lee el informe, revisa |
pstack-trio ADVICE <ruta-de-consejo> | consultor a maestro | pair.sh notify | lee el consejo, decide |
pstack-trio STOP <almacén> | maestro a ayudante y consultor | pair.sh stop | pausa 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.
| Tipo | Cuándo | El consultor responde |
|---|---|---|
| diseño | el maestro sopesa una dirección antes de un plan o una dirección | qué camino y por qué, con las compensaciones |
| hallazgo | un resumen de registro, informe o diferencia reveló algo inesperado | si es lo que parece, y qué cambia |
| objeción | el ayudante objetó una dirección | quién tiene razón según la evidencia y la alternativa |
| revisión | un veredicto está en disputa o una unidad está en su segunda revisión | aceptar, revisar o rechazar, con los hallazgos |
| vistazo | un registro muestra el primer commit o una diferencia considerable en una unidad cuya revisión costaría más | en 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