Communitygithub.com

br1anchen/pstack-trio

Exécutez trois agents de codage dans une seule session Herdr ou Rex : un maître qui planifie, briefe, révise et décide ; un acolyte qui implémente, teste et diagnostique selon des playbooks pstack ; et un consultant d'un type d'agent différent qui critique les plans, répond aux consultations de conception et de découvertes, et prototypé dans un worktree jetable. Le maître dirige chaque discussion, délègue l'implémentation à l'acolyte et consulte avant de réorienter tout changement de conception.

Qu'est-ce que pstack-trio ?

Cette compétence, `pstack-trio`, étend le concept de `pstack-pair` avec un troisième agent consultant pour offrir un second avis formel sur la conception, les découvertes et les révisions. Elle est conçue pour être utilisée dans les sessions Herdr ou Rex, nécessitant au moins deux types d'agents distincts parmi le maître, l'acolyte et le consultant. Le maître possède le jugement, l'acolyte possède l'arbre de travail, et le consultant possède le second avis, communiquant via des fichiers dans un magasin de paires. La compétence est utile lorsque la délégation de travail nécessite une garantie de qualité et une révision d'architecture, en particulier dans les tâches complexes de génie logiciel où des décisions de conception et des analyses d'impact sont essentielles. Elle fonctionne en créant une structure de fichiers organisée (plans, briefs, rapports, conseils) et en automatisant la messagerie entre les agents via `pair.sh`, garantissant que le terminal ne soit jamais le seul enregistrement.

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

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Lisez l'adaptateur d'exécution avant de suivre ce workflow. Ses correspondances d'exécution s'appliquent à tous les playbooks et scripts référencés.

Trio pstack

Trois agents, une session Herdr ou Rex, un dépôt. Le maître possède le jugement, l'acolyte possède l'arbre de travail, et le consultant possède le second avis. Chaque message entre eux est un fichier dans le magasin du trio plus une invite d'une ligne qui nomme le fichier. Le terminal n'est jamais l'enregistrement, car les agents sur l'écran alternatif ne laissent pas de défilement.

Le trio est pstack-pair avec un consultant ajouté. Les cycles de plan en binôme, briefs, points de contrôle, réorientations et révisions sont inchangés ; le consultant rejoint chaque cycle de plan et répond aux consultations lorsqu'une découverte modifie la conception. Il ne message jamais l'acolyte et n'écrit jamais l'arbre partagé.

Préconditions

  1. Dans Herdr (test "${HERDR_ENV:-}" = 1) ou Rex (REX_BLOCK défini). En dehors des deux, dites-le et arrêtez-vous.
  2. Chargez la compétence du multiplexeur pour le contrôle des volets et des agents : ~/.agents/skills/herdr/SKILL.md de Herdr (ou herdr --skill lorsque ce fichier est absent), ou rex skill show de Rex. Ses règles de sécurité s'appliquent partout. Dans Rex, lisez Exécution dans Rex.
  3. herdr ou rex, et Python 3.11 ou supérieur (python3), sur PATH. scripts/pair.sh help liste chaque opération de magasin et de canal ; utilisez-le au lieu d'appels herdr ou rex construits à la main pour le trio.
  4. Au moins deux types d'agents distincts parmi le maître, l'acolyte et le consultant. pair.sh spawn lit le type du maître depuis le multiplexeur et se termine avec 8 lorsque tous les trois correspondraient ; dites à l'humain de choisir un autre type ou d'utiliser pstack-pair. L'acolyte et le consultant peuvent partager un type.
  5. Démarrez le maître en mode automatique. Devin par défaut ne demande pas de permissions avec --permission-mode dangerous. Les autres types héritent du mode du maître. pair.sh permission affiche le mode maître détecté. --permission <mode> remplace les deux rôles créés ; --consultant-permission <mode> remplace uniquement le consultant. Les indicateurs de permission natifs après -- remplacent la valeur par défaut pour chaque rôle créé par cet appel. --permission auto sélectionne le mode intelligent de Devin. Les types sans traduction prennent les indicateurs natifs après --. spawn saute également l'invite de confiance de dossier de chaque type, ce qui bloquerait un agent non surveillé dans un dossier qu'il n'a jamais vu : pi obtient --approve, Devin --respect-workspace-trust false. Un indicateur de confiance après -- le remplace. Un Claude créé démarre également sans serveurs MCP (--strict-mcp-config et une configuration vide), car chaque serveur est un processus par session ; un --mcp-config après -- garde le vôtre. Claude et Codex demandent plutôt de faire confiance à un dossier qu'ils n'ont jamais vu ; cette décision est celle de l'humain, donc spawn refuse la boîte de dialogue et s'arrête avec ce qu'il faut faire : ouvrir cet agent dans le dépôt une fois et lui faire confiance.

Rôles

MaîtreAcolyteConsultant
Possèdeplan, briefs, consultations, révision, décisions, l'humainl'arbre de travail, les tests, le diagnostic, les preuvescritique de conception, secondes lectures, prototypes
Exécute pstack en tant quecadrage mode-poteto, how, architect, compétences de révisionle playbook que chaque brief nomme, avec sa liste de tâchesalternatives how, why, architect, posture interrogate, blast-radius sur les diffs
Écritle magasin du trio uniquementfichiers dans le champ d'application du brief, plus son journal de progression et ses rapportsfichiers de conseils, et un worktree de travail qu'il supprime
Lit l'arbretoujours, en lecture seule ; exécute des vérifications dans scratch à un committoujourstoujours, en lecture seule
Parle à traversplans, briefs, réorientations, consultations, révisions, ordres permanents, porteslignes de progression, rapportsconseils

Entrez votre rôle. Maître : references/master.md. Acolyte : references/sidekick.md. Consultant : references/consultant.md.

Magasin du trio

${XDG_STATE_HOME:-$HOME/.local/state}/pstack/trio/<slug>/, créé par pair.sh init. Un rédacteur par fichier.

CheminRédacteurContenu
pair.jsonmaître via pair.shnoms d'agents, identifiants de volet, types, cwd, racine git, liste scratch ouverte, repli et bascules de l'acolyte, placement du volet (divisé ou onglet)
standing-orders.mdmaîtrecontraintes numérotées collées par chemin dans chaque brief
plans/NNN-<slug>.mdmaîtreun cycle de plan, depuis le modèle de plan
briefs/NNN-<slug>.mdmaîtreune unité, depuis le modèle de brief
progress/NNN-<slug>.mdacolyte via pair.sh progressune ligne horodatée par étape terminée ou changement d'approche
steers/NNN-<slug>-s<k>.mdmaîtredirection k en cours de brief pour l'unité NNN, depuis le modèle de réorientation
consults/NNN-<slug>-c<k>.mdmaîtrequestion k sur l'unité NNN pour le consultant, depuis le modèle de consultation, avec un kind: de conception, découverte, objection ou révision
reports/NNN-<slug>-s<k>.mdacolyteobjection à la réorientation k, depuis le modèle de réponse à la réorientation
reports/NNN-<slug>.mdacolytepreuves pour le brief NNN, depuis le modèle de rapport, ou la réponse d'accord/objection au plan NNN, depuis le modèle de réponse au plan
advice/NNN-<slug>.mdconsultantcritique de conception du plan NNN, depuis le modèle de conseil de plan
advice/NNN-<slug>-c<k>.mdconsultantréponse à la consultation k, depuis le modèle de conseil
scratch/<id>consultant ou maître via pair.sh scratchlien vers un worktree jetable pour une consultation (NNN-<slug>-c<k>) ou une révision (NNN-<slug>-review), à un commit ou à l'état actif, conservé en dehors du dépôt sous ${XDG_STATE_HOME:-~/.local/state}/pstack/scratch/ (PSTACK_SCRATCH_ROOT le déplace), que Claude et Codex doivent approuver une fois par hôte (kitchen.py doctor vérifie) ; supprimé une fois terminé
reviews/NNN-<slug>.mdmaîtreverdict sur l'unité NNN, depuis le modèle de révision ; nomme le conseil sur lequel il s'est appuyé et toute annulation
gates.mdmaîtrequestions ouvertes pour l'humain
decisions.tsvmaître via pair.sh logla piste de vérification
status.mdpair.sh statustable dérivée ; jamais éditée à la main
queuemaître via pair.sh queue et dispatchle chemin du prochain brief, un emplacement
steps/NNN-<slug>.tsvacolyte via pair.sh stepune ligne par étape validée : numéro, commit, heure, notes qu'elle résout, résumé
notes/NNN-<slug>-n<k>.mdmaître via pair.sh new-note et noterévision des étapes de l'unité jusqu'à l'étape k, depuis le modèle de note : éléments bloquants et suivis
followups.mdmaître via pair.sh notesuivis de chaque note, pour un brief ultérieur ou un problème
session-handoff.mdmaîtrecontexte de reprise et de tâche suivante compact, lu au démarrage
sessions/pair.sh spawn / rotaterapports prêts antérieurs ; exports de session conservés et preuves de synchronisation
events.tsvchaque commande pair.shune ligne par message, rapport, réveil et entrée de journal, lue par pair.sh metrics

NNN est une séquence remplie de zéros partagée par plan ou brief, rapport, conseil et révision, de sorte que les fichiers d'une unité se trient ensemble.

Messages

Texte de l'inviteDirectionAide de l'expéditeurAction du destinataire
bootstrap (nomme la compétence, le rôle et le magasin)maître vers acolyte et consultantpair.sh spawnétapes de bootstrap, reports/000-ready.md ou advice/000-ready.md, répondre READY
pstack-trio PLAN <chemin-du-plan>maître vers acolyte et consultant en même tempspair.sh discussl'acolyte ancre le plan dans le code ; le consultant critique la conception ; chacun écrit accord ou objection, termine le tour
pstack-trio BRIEF <chemin-du-brief>maître vers acolytepair.sh dispatchexécuter le brief, écrire son rapport, exécuter pair.sh finish, puis terminer le tour avec la ligne RAPPORT
pstack-trio BRIEF <chemin-du-brief>, mis en file d'attentemaître vers un acolyte en travailpair.sh queuele maître le distribue après une nouvelle session ; pair.sh next refuse
pstack-trio STEER <chemin-de-la-réorientation>maître vers un acolyte en travail, ou en pause sur une objectionpair.sh steerle lire entre les appels d'outil ; accepter et continuer, ou objecter avec des preuves et terminer le tour
pstack-trio CONSULT <chemin-de-la-consultation>maître vers consultantpair.sh consultlire les fichiers nommés, prototyper dans scratch si nécessaire, écrire le conseil, terminer le tour
pstack-trio REPORT <chemin-du-rapport>acolyte vers maîtrepair.sh finish (ou notify)lire le rapport, réviser
pstack-trio ADVICE <chemin-du-conseil>consultant vers maîtrepair.sh notifylire le conseil, décider
pstack-trio STOP <magasin>maître vers acolyte et consultantpair.sh stopmettre en pause en toute sécurité, écrire un rapport ou un conseil d'arrêt

discuss revient lorsque les deux agents se stabilisent, avec un chemin de réponse et un statut par rôle. Un acolyte occupé sur une unité ne retient pas un tour : le consultant reçoit le plan immédiatement, la moitié de l'acolyte est deferred (code de sortie 4), et l'exécution discuss à nouveau une fois que l'acolyte rapporte n'envoie que cette moitié. consult revient lorsque le consultant se stabilise en idle, done, ou blocked. dispatch et wait reviennent lorsque la réponse de l'acolyte atterrit, le rapport écrit depuis le message, ou lorsqu'il est blocked ; un stabilisation du multiplexeur seul n'est pas fiable : un acolyte Devin montre inactif lorsqu'une invite arrive et entre les étapes, et dans un volet étroit peut montrer terminé pour une exécution entière, donc une stabilisation est vérifiée par rapport à la ligne "esc pour interrompre" du volet, et une sans rapport qui tient pendant une minute termine l'attente avec report: missing. dispatch et wait reviennent également à l'intervalle de point de contrôle avec un résumé. wait revient également au moment où le rapport d'un brief distribué atterrit, même lorsque l'acolyte a déjà pris le brief mis en file d'attente ; running: nomme alors le brief sur lequel il est. notify invite le maître uniquement lorsque le maître est inactif. Un message que vous recevez après la compaction nomme toujours cette compétence et le fichier à lire, donc rechargez la compétence et continuez à partir de ce fichier.

Planifier d'abord

L'implémentation ne commence qu'à partir d'un plan que l'acolyte a accepté et sur lequel le consultant a conseillé. Le maître rédige plans/NNN-<slug>.md avec la conception choisie, les alternatives qu'il a pesées, et leurs avantages et inconvénients, puis l'envoie avec pair.sh discuss, qui atteint les deux agents à la fois. L' acolyte vérifie chaque étape par rapport au code et répond accord ou objection avec des preuves. Le consultant critique la conception elle-même : forme des données, limites, ce que le tableau des alternatives omet, et répond accord ou objection. Le maître fusionne les deux dans le tour suivant ou une révision avec le verdict agreed.

Le consultant est consultatif. Une objection du consultant ne bloque pas agreed ; le maître peut la passer outre avec la raison sous la section Annulé de la révision et une ligne de décisions. Un fichier de conseil pour le cycle de plan doit cependant exister : pair.sh dispatch refuse un brief de fonctionnalité, correction de bogue, refactorisation, problème de performance ou pstack-tdd dont le plan n'a pas de conseil de consultant ou de révision agreed. Les briefs en lecture seule et médico-légaux n'ont besoin d'aucun plan ; un brief de diagnostic de bogue s'exécute avant son plan. Trois cycles sans accord deviennent une porte pour l'humain, avec toutes les positions dans gates.md.

Consultations

Une consultation est la question du maître au consultant en dehors d'un cycle de plan. pair.sh new-consult <magasin> <NNN> --kind <kind> crée le fichier pour l'unité NNN ; pair.sh consult l'envoie et attend le conseil.

KindQuandLe consultant répond
conceptionle maître pèse une direction avant un plan ou une réorientationquelle direction et pourquoi, avec les compromis
découverteun résumé de point de contrôle, un rapport ou un diff a révélé quelque chose d'inattendusi c'est ce que cela semble être, et ce que cela change
objectionl'acolyte a objecté à une réorientationqui a raison sur les preuves, et l'alternative
révisionun verdict est contesté ou une unité est à sa deuxième révisionaccepter, réviser ou rejeter, avec des constatations
coup d'œilun point de contrôle montre le premier commit ou un diff important sur une unité dont la révision coûterait le plusen cinq minutes : la révision dirait-elle révision, et pourquoi, ou none

Les consultations sont obligatoires avant : une réorientation qui s'écarte de la conception convenue, une réorientation supplantant après une objection de l'acolyte, et un verdict revise sur une deuxième tentative d'unité. Elles sont facultatives ailleurs, et aucune n'est envoyée pour l'unité finale : chaque discussion et révision se termine avant la finalisation. Trois consultations par unité ; new-consult refuse une quatrième sans --force, car une quatrième signifie que la conception est erronée et appartient à un cycle de plan. Un coup d'œil se situe en dehors de cette limite, un par unité, et n'est jamais obligatoire : le quota du consultant est le plus rare, alors dépensez-le là où une révision tardive coûterait le plus.

Chaque consultation s'exécute à tout moment, que l'acolyte travaille ou non. consult timbre l'état de l'acolyte et HEAD sur le fichier ; le consultant lit le travail validé à cette HEAD, et tout ce qui n'est pas validé uniquement via un instantané pair.sh scratch, jamais un arbre qui se déplace en dessous. Chaque consultation porte une limite de temps, quinze minutes par défaut et cinq pour un coup d'œil ; passé ce délai, le consultant écrit un conseil partial et termine le tour.

Points de contrôle et réorientations

Inchangé par rapport à pstack-pair : l'acolyte ajoute des lignes de progression, dispatch et wait renvoient un résumé de point de contrôle à l'intervalle, et une réorientation est le seul message qui peut atteindre un acolyte en travail. Deux nouvelles réorientations par brief, deux cycles chacune. Le consultant ajoute une étape : lorsqu'un résumé ou une objection montre une découverte qui modifie la conception, le maître consulte avant de réorienter, et la Direction de la réorientation cite le chemin du conseil.

Sessions de tâches de toutes sortes

Un acolyte de toute sorte (Claude, Codex, Devin, pi, Prime, Muse) utilise une conversation fraîche

Individual skills in this repo

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

Skills associés