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
- Dans Herdr (
test "${HERDR_ENV:-}" = 1) ou Rex (REX_BLOCKdéfini). En dehors des deux, dites-le et arrêtez-vous. - Chargez la compétence du multiplexeur pour le contrôle des volets et des agents :
~/.agents/skills/herdr/SKILL.mdde Herdr (ouherdr --skilllorsque ce fichier est absent), ourex skill showde Rex. Ses règles de sécurité s'appliquent partout. Dans Rex, lisez Exécution dans Rex. herdrourex, et Python 3.11 ou supérieur (python3), sur PATH.scripts/pair.sh helpliste chaque opération de magasin et de canal ; utilisez-le au lieu d'appelsherdrourexconstruits à la main pour le trio.- Au moins deux types d'agents distincts parmi le maître, l'acolyte et le consultant.
pair.sh spawnlit 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'utiliserpstack-pair. L'acolyte et le consultant peuvent partager un type. - 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 permissionaffiche 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 autosélectionne le mode intelligent de Devin. Les types sans traduction prennent les indicateurs natifs après--.spawnsaute é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-configet une configuration vide), car chaque serveur est un processus par session ; un--mcp-configaprè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, doncspawnrefuse 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ître | Acolyte | Consultant | |
|---|---|---|---|
| Possède | plan, briefs, consultations, révision, décisions, l'humain | l'arbre de travail, les tests, le diagnostic, les preuves | critique de conception, secondes lectures, prototypes |
| Exécute pstack en tant que | cadrage mode-poteto, how, architect, compétences de révision | le playbook que chaque brief nomme, avec sa liste de tâches | alternatives how, why, architect, posture interrogate, blast-radius sur les diffs |
| Écrit | le magasin du trio uniquement | fichiers dans le champ d'application du brief, plus son journal de progression et ses rapports | fichiers de conseils, et un worktree de travail qu'il supprime |
| Lit l'arbre | toujours, en lecture seule ; exécute des vérifications dans scratch à un commit | toujours | toujours, en lecture seule |
| Parle à travers | plans, briefs, réorientations, consultations, révisions, ordres permanents, portes | lignes de progression, rapports | conseils |
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.
| Chemin | Rédacteur | Contenu |
|---|---|---|
pair.json | maître via pair.sh | noms 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.md | maître | contraintes numérotées collées par chemin dans chaque brief |
plans/NNN-<slug>.md | maître | un cycle de plan, depuis le modèle de plan |
briefs/NNN-<slug>.md | maître | une unité, depuis le modèle de brief |
progress/NNN-<slug>.md | acolyte via pair.sh progress | une ligne horodatée par étape terminée ou changement d'approche |
steers/NNN-<slug>-s<k>.md | maître | direction k en cours de brief pour l'unité NNN, depuis le modèle de réorientation |
consults/NNN-<slug>-c<k>.md | maître | question 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>.md | acolyte | objection à la réorientation k, depuis le modèle de réponse à la réorientation |
reports/NNN-<slug>.md | acolyte | preuves 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>.md | consultant | critique de conception du plan NNN, depuis le modèle de conseil de plan |
advice/NNN-<slug>-c<k>.md | consultant | réponse à la consultation k, depuis le modèle de conseil |
scratch/<id> | consultant ou maître via pair.sh scratch | lien 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>.md | maître | verdict sur l'unité NNN, depuis le modèle de révision ; nomme le conseil sur lequel il s'est appuyé et toute annulation |
gates.md | maître | questions ouvertes pour l'humain |
decisions.tsv | maître via pair.sh log | la piste de vérification |
status.md | pair.sh status | table dérivée ; jamais éditée à la main |
queue | maître via pair.sh queue et dispatch | le chemin du prochain brief, un emplacement |
steps/NNN-<slug>.tsv | acolyte via pair.sh step | une ligne par étape validée : numéro, commit, heure, notes qu'elle résout, résumé |
notes/NNN-<slug>-n<k>.md | maître via pair.sh new-note et note | révision des étapes de l'unité jusqu'à l'étape k, depuis le modèle de note : éléments bloquants et suivis |
followups.md | maître via pair.sh note | suivis de chaque note, pour un brief ultérieur ou un problème |
session-handoff.md | maître | contexte de reprise et de tâche suivante compact, lu au démarrage |
sessions/ | pair.sh spawn / rotate | rapports prêts antérieurs ; exports de session conservés et preuves de synchronisation |
events.tsv | chaque commande pair.sh | une 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'invite | Direction | Aide de l'expéditeur | Action du destinataire |
|---|---|---|---|
| bootstrap (nomme la compétence, le rôle et le magasin) | maître vers acolyte et consultant | pair.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 temps | pair.sh discuss | l'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 acolyte | pair.sh dispatch | exé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'attente | maître vers un acolyte en travail | pair.sh queue | le 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 objection | pair.sh steer | le 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 consultant | pair.sh consult | lire 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ître | pair.sh finish (ou notify) | lire le rapport, réviser |
pstack-trio ADVICE <chemin-du-conseil> | consultant vers maître | pair.sh notify | lire le conseil, décider |
pstack-trio STOP <magasin> | maître vers acolyte et consultant | pair.sh stop | mettre 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.
| Kind | Quand | Le consultant répond |
|---|---|---|
| conception | le maître pèse une direction avant un plan ou une réorientation | quelle direction et pourquoi, avec les compromis |
| découverte | un résumé de point de contrôle, un rapport ou un diff a révélé quelque chose d'inattendu | si c'est ce que cela semble être, et ce que cela change |
| objection | l'acolyte a objecté à une réorientation | qui a raison sur les preuves, et l'alternative |
| révision | un verdict est contesté ou une unité est à sa deuxième révision | accepter, réviser ou rejeter, avec des constatations |
| coup d'œil | un point de contrôle montre le premier commit ou un diff important sur une unité dont la révision coûterait le plus | en 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