Leia o adaptador de execução antes de seguir este fluxo de trabalho. Seus mapeamentos de execução se aplicam a todos os playbooks e scripts referenciados.
Pstack trio
Três agentes, uma sessão Herdr ou Rex, um repositório. O mestre detém o julgamento, o assistente detém a árvore de trabalho e o consultor detém a segunda opinião. Cada mensagem entre eles é um arquivo no armazenamento trio mais uma linha de prompt que nomeia o arquivo. O terminal nunca é o registro, porque agentes na tela alternativa não deixam scrollback.
O trio é o pstack-pair com um consultor adicionado. As rodadas de plano, instruções, check-ins, direcionamentos e revisões do par permanecem inalteradas; o consultor participa de todas as rodadas de plano e responde a consultas quando uma descoberta altera o design. Ele nunca envia mensagens para o assistente e nunca escreve na árvore compartilhada.
Pré-condições
- Dentro do Herdr (
test "${HERDR_ENV:-}" = 1) ou Rex (REX_BLOCKdefinido). Fora de ambos, informe e pare. - Carregue a skill do multiplexador para controle de painel e agente: o
~/.agents/skills/herdr/SKILL.mddo Herdr (ouherdr --skillquando esse arquivo estiver ausente), ourex skill showdo Rex. Suas regras de segurança se aplicam durante todo o processo. No Rex, leia Executando no Rex. herdrourex, e Python 3.11 ou posterior (python3), no PATH.scripts/pair.sh helplista todas as operações de armazenamento e canal; use-o em vez de chamadasherdrourexmanuais para o trio.- Pelo menos dois tipos distintos de agentes entre mestre, assistente e consultor.
pair.sh spawnlê o tipo do mestre do multiplexador e sai com código 8 se todos os três corresponderem; informe ao humano para escolher outro tipo ou usarpstack-pair. Assistente e consultor podem compartilhar um tipo. - Inicie o mestre no modo automático. Devin usa como padrão ignorar permissões com
--permission-mode dangerous. Outros tipos herdam o modo do mestre.pair.sh permissionimprime o modo mestre detectado.--permission <mode>substitui ambas as funções geradas;--consultant-permission <mode>substitui apenas o consultor. Flags de permissão nativas após--substituem o padrão para cada função gerada por essa chamada.--permission autoseleciona o modo inteligente do Devin. Tipos sem uma tradução recebem flags nativas após--.spawntambém ignora o prompt de confiança de pasta de cada tipo, o que travaria um agente não supervisionado em uma pasta que ele não viu: pi recebe--approve, Devin--respect-workspace-trust false. Uma flag de confiança após--a substitui. Um Claude gerado também inicia sem servidores MCP (--strict-mcp-confige uma configuração vazia), já que cada servidor é um processo por sessão; um--mcp-configapós--mantém o seu. Claude e Codex, em vez disso, pedem para confiar em uma pasta que não viram; essa decisão é do humano, entãospawnrecusa o diálogo e para com o que fazer: abra esse agente no repo uma vez e confie nele.
Funções
| Mestre | Assistente | Consultor | |
|---|---|---|---|
| Possui | plano, instruções, consultas, revisão, decisões, o humano | a árvore de trabalho, testes, diagnóstico, evidências | crítica de design, segundas leituras, protótipos |
| Executa pstack como | enquadramento modo-poteto, como, arquiteto, habilidades de revisão | o playbook que cada instrução nomeia, com sua lista de tarefas | alternativas como, por que, arquiteto, postura interrogar, raio-explosão em diffs |
| Escreve | apenas o armazenamento trio | arquivos dentro do Escopo da instrução, mais seu log de progresso e relatórios | arquivos de conselho e uma árvore de trabalho temporária que ele remove |
| Lê a árvore | sempre, somente leitura; executa verificações no scratch em um commit | sempre | sempre, somente leitura |
| Fala através de | planos, instruções, direcionamentos, consultas, revisões, ordens permanentes, portões | linhas de progresso, relatórios | conselhos |
Entre em sua função. Mestre: references/master.md. Assistente: references/sidekick.md. Consultor: references/consultant.md.
Armazenamento trio
${XDG_STATE_HOME:-$HOME/.local/state}/pstack/trio/<slug>/, criado por pair.sh init. Um escritor por arquivo.
| Caminho | Escritor | Conteúdo |
|---|---|---|
pair.json | mestre via pair.sh | nomes dos agentes, ids dos painéis, tipos, cwd, raiz git, lista de scratch abertos, fallback e failovers do assistente, posicionamento do painel (split ou tab) |
standing-orders.md | mestre | restrições numeradas coladas por caminho em cada instrução |
plans/NNN-<slug>.md | mestre | uma rodada de plano, a partir do modelo de plano |
briefs/NNN-<slug>.md | mestre | uma unidade, a partir do modelo de instrução |
progress/NNN-<slug>.md | assistente via pair.sh progress | uma linha com carimbo de data/hora por etapa concluída ou mudança de abordagem |
steers/NNN-<slug>-s<k>.md | mestre | direção de meio-instrução k para a unidade NNN, a partir do modelo de direcionamento |
consults/NNN-<slug>-c<k>.md | mestre | pergunta k sobre a unidade NNN para o consultor, a partir do modelo de consulta, com um tipo: de design, descoberta, objeção ou revisão |
reports/NNN-<slug>-s<k>.md | assistente | objeção ao direcionamento k, a partir do modelo de resposta a direcionamento |
reports/NNN-<slug>.md | assistente | evidências para a instrução NNN, a partir do modelo de relatório, ou a resposta concordar/objetar ao plano NNN, a partir do modelo de resposta a plano |
advice/NNN-<slug>.md | consultor | crítica de design do plano NNN, a partir do modelo de conselho de plano |
advice/NNN-<slug>-c<k>.md | consultor | resposta à consulta k, a partir do modelo de conselho |
scratch/<id> | consultor ou mestre via pair.sh scratch | link para uma árvore de trabalho descartável para uma consulta (NNN-<slug>-c<k>) ou revisão (NNN-<slug>-review), em um commit ou estado ativo, mantida fora do repo em ${XDG_STATE_HOME:-~/.local/state}/pstack/scratch/ (PSTACK_SCRATCH_ROOT a move), que Claude e Codex devem confiar uma vez por host (kitchen.py doctor verifica); removida quando concluída |
reviews/NNN-<slug>.md | mestre | veredito sobre a unidade NNN, a partir do modelo de revisão; nomeia o conselho em que se baseou e qualquer anulação |
gates.md | mestre | perguntas em aberto para o humano |
decisions.tsv | mestre via pair.sh log | a trilha de mostre-seu-trabalho |
status.md | pair.sh status | tabela derivada; nunca editada manualmente |
queue | mestre via pair.sh queue e dispatch | o caminho da próxima instrução, um slot |
steps/NNN-<slug>.tsv | assistente via pair.sh step | uma linha por etapa commitada: número, commit, hora, notas que resolve, resumo |
notes/NNN-<slug>-n<k>.md | mestre via pair.sh new-note e note | revisão das etapas da unidade até a etapa k, a partir do modelo de nota: itens bloqueadores e acompanhamentos |
followups.md | mestre via pair.sh note | acompanhamentos de cada nota, para uma instrução posterior ou um problema |
session-handoff.md | mestre | contexto compacto de recuperação e próxima tarefa, lido na inicialização |
sessions/ | pair.sh spawn / rotate | relatórios prontos anteriores; exportações de sessão retidas e evidências de tempo |
events.tsv | todo comando pair.sh | uma linha por mensagem, relatório, ativação e entrada de log, lido por pair.sh metrics |
NNN é uma sequência preenchida com zeros compartilhada por plano ou instrução, relatório, conselho e revisão, para que os arquivos de uma unidade sejam classificados juntos.
Mensagens
| Texto do prompt | Direção | Ajudante do remetente | Ação do destinatário |
|---|---|---|---|
| bootstrap (nomeia a skill, a função e o armazenamento) | mestre para assistente e consultor | pair.sh spawn | etapas de bootstrap, reports/000-ready.md ou advice/000-ready.md, responder PRONTO |
pstack-trio PLAN <caminho-do-plano> | mestre para assistente e consultor ao mesmo tempo | pair.sh discuss | assistente fundamenta o plano no código; consultor critica o design; cada um escreve concordar ou objetar, encerra a vez |
pstack-trio BRIEF <caminho-da-instrução> | mestre para assistente | pair.sh dispatch | executar a instrução, escrever seu relatório, executar pair.sh finish, encerrar a vez com a linha RELATÓRIO |
pstack-trio BRIEF <caminho-da-instrução>, enfileirado | mestre para um assistente trabalhando | pair.sh queue | o mestre o despacha após uma sessão nova; pair.sh next recusa |
pstack-trio STEER <caminho-do-direcionamento> | mestre para um assistente trabalhando, ou pausado em uma objeção | pair.sh steer | ler entre chamadas de ferramenta; concordar e continuar, ou objetar com evidências e encerrar a vez |
pstack-trio CONSULT <caminho-da-consulta> | mestre para consultor | pair.sh consult | ler os arquivos nomeados, prototipar no scratch se necessário, escrever o conselho, encerrar a vez |
pstack-trio REPORT <caminho-do-relatório> | assistente para mestre | pair.sh finish (ou notify) | ler o relatório, revisar |
pstack-trio ADVICE <caminho-do-conselho> | consultor para mestre | pair.sh notify | ler o conselho, decidir |
pstack-trio STOP <armazenamento> | mestre para assistente e consultor | pair.sh stop | pausar com segurança, escrever um relatório de parada ou conselho |
discuss retorna quando ambos os agentes se estabelecem, com um caminho e status de resposta por função. Um assistente ocupado em uma unidade não segura a rodada: o consultor recebe o plano imediatamente, a metade do assistente é deferred (código de saída 4), e executar discuss novamente quando o assistente relatar envia apenas essa metade. consult retorna quando o consultor se estabelece em idle, done ou blocked. dispatch e wait retornam quando a resposta do assistente chega, o relatório é escrito desde a mensagem, ou quando está blocked; apenas um estabelecimento do multiplexador não é confiável: um assistente Devin mostra ocioso quando um prompt chega e entre etapas, e em um painel estreito pode mostrar concluído para uma execução inteira, então um estabelecimento é verificado contra a linha "esc para interromper" do painel, e um sem relatório que espera por um minuto encerra a espera com relatório: ausente. dispatch e wait também retornam no intervalo de check-in com um resumo. wait também retorna no momento em que o relatório de uma instrução despachada chega, mesmo quando o assistente já pegou a instrução enfileirada; running: então nomeia a instrução em que está. notify solicita o mestre apenas quando o mestre está ocioso. Uma mensagem que você recebe após a compactação ainda nomeia esta skill e o arquivo a ser lido, então recarregue a skill e continue desse arquivo.
Planeje primeiro
A implementação começa apenas a partir de um plano que o assistente concordou e o consultor aconselhou. O mestre rascunha plans/NNN-<slug>.md com o design escolhido, as alternativas que ponderou e seus prós e contras, e o envia com pair.sh discuss, que alcança ambos os agentes ao mesmo tempo. O assistente verifica cada etapa contra o código e responde concordar ou objetar com evidências. O consultor critica o design em si: forma dos dados, limites, o que a tabela de alternativas perde, e responde concordar ou objetar. O mestre mescla ambos na próxima rodada ou uma revisão com veredito acordado.
O consultor é consultivo. Um objeto do consultor não bloqueia acordado; o mestre pode anulá-lo com o motivo na seção Anulado da revisão e uma linha em decisões. Um arquivo de conselho para a rodada de plano deve existir, no entanto: pair.sh dispatch recusa uma instrução de funcionalidade, correção de bug, refatoração, problema de desempenho ou pstack-tdd cujo plano não tenha conselho do consultor registrado ou nenhuma revisão acordada. Instruções somente leitura e forenses não precisam de plano; a instrução de diagnóstico de um bug é executada antes de seu plano. Três rodadas sem acordo tornam-se um portão para o humano, com todas as posições em gates.md.
Consultas
Uma consulta é a pergunta do mestre ao consultor fora de uma rodada de plano. pair.sh new-consult <armazenamento> <NNN> --kind <tipo> cria o arquivo para a unidade NNN; pair.sh consult o envia e espera o conselho.
| Tipo | Quando | O consultor responde |
|---|---|---|
| design | o mestre pondera uma direção antes de um plano ou direcionamento | qual caminho e por quê, com as compensações |
| descoberta | um resumo de check-in, relatório ou diff revelou algo inesperado | se é o que parece, e o que muda |
| objeção | o assistente objetou a um direcionamento | quem está certo com base nas evidências, e a alternativa |
| revisão | um veredito é contestado ou uma unidade está em sua segunda revisão | aceitar, revisar ou rejeitar, com descobertas |
| olhadela | um check-in mostra o primeiro commit ou um diff grande em uma unidade cuja revisão custaria mais | em cinco minutos: a revisão diria revisar, e por quê, ou nenhum |
Consultas são obrigatórias antes de: um direcionamento que se afasta do design acordado, um direcionamento substituto após uma objeção do assistente e um veredito revisar na segunda tentativa de uma unidade. São opcionais em outros lugares, e nenhuma é enviada para a unidade de aterrissagem: toda discussão e revisão termina antes do aterrissagem. Três consultas por unidade; new-consult recusa uma quarta sem --force, porque uma quarta significa que o design está errado e pertence a uma rodada de plano. Uma olhadela fica fora desse limite, uma por unidade, e nunca é obrigatória: a cota do consultor é a escassa, então gaste-a onde uma revisão tardia custaria mais.
Cada consulta é executada a qualquer momento, o assistente trabalhando ou não. consult carimba o estado do assistente e HEAD no arquivo; o consultor lê o trabalho commitado nesse HEAD e qualquer coisa não commitada apenas por meio de um snapshot pair.sh scratch, nunca uma árvore que se move embaixo dele. Cada consulta carrega um limite de tempo, quinze minutos por padrão e cinco para uma olhadela; após isso, o consultor escreve conselho parcial e encerra a vez.
Check-ins e direcionamentos
Inalterado do pstack-pair: o assistente anexa linhas de progresso, dispatch e wait retornam um resumo de check-in no intervalo, e um direcionamento é a única mensagem que pode alcançar um assistente trabalhando. Dois direcionamentos novos por instrução, duas rodadas cada. O consultor adiciona uma etapa: quando um resumo ou objeção mostra uma descoberta que altera o design, o mestre consulta antes de direcionar, e a Direção do direcionamento cita o caminho do conselho.
Sessões de tarefa de todos os tipos
Um assistente de qualquer tipo (Claude, Codex, Devin, pi, Prime, Muse) usa uma conversa nova...