CommunityPesquisa e Análise de Dadosgithub.com

Comitê de Causa Raiz (pcommittee – dois agentes)

Use quando estiver travado, em loop ou com visão de túnel em um problema difícil — forma um comitê de dois agentes paseo contrastantes que o analisam em paralelo, debatem suas divergências e convergem para um plano. Dispara com "/pcommittee", "committee", "we are going in circles", "root cause still unclear after several attempts", "have two models look at this". Apenas análise; o comitê nunca edita arquivos.

O que é Comitê de Causa Raiz (pcommittee – dois agentes)?

O pcommittee é uma skill do ecossistema paseo projetada para resolver problemas complexos onde uma única perspectiva falhou. Ela cria um comitê de dois agentes de famílias de modelos diferentes (por padrão, Claude Opus e Codex), ambos rodando com raciocínio de alto custo (thinking xhigh) e contexto fresco, para analisar o mesmo problema de forma independente. O valor real está no passo de debate: após a análise inicial, cada agente recebe os argumentos do outro e é instruído a confrontá-los, levando a uma convergência informada ou a uma divergência genuína que revela incertezas reais sobre o problema. A skill é estritamente de análise — os agentes nunca editam arquivos ou escrevem código, e o usuário implementa o plano final. Suporta Claude Desktop e Codex CLI via paseo, garantindo contraste como mecanismo chave para evitar pontos cegos, com um prompt único e bem estruturado que isola fatos de hipóteses. O processo termina com a síntese dos pontos de concordância e discordância, arquivando os agentes para manter o workspace limpo.

Funciona com✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/evrenverse/agent-skills/tree/HEAD/skills/pcommittee

Installed? Explore more Pesquisa e Análise de Dados skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

pcommittee (comitê de causa raiz com dois agentes)

Visão Geral

Dois agentes, duas famílias de modelos, o mesmo problema, contexto fresco em ambos os lados. Eles analisam em paralelo; você os faz debater onde discordam; você sintetiza o que sobrevive. Depois VOCÊ implementa — o comitê nunca toca em arquivos.

Quando vale o custo: você deu duas voltas no mesmo loop, o bug não tem causa raiz óbvia, ou um plano é caro o suficiente para merecer uma segunda e terceira opinião antes de ser construído. Dois agentes xhigh não são baratos. Para uma opinião use padvisor; para delegar trabalho use pspawn ou phandoff.

O que os agentes gerados podem fazer. Ambos rodam sem prompts de permissão com o padrão da equipe (bypassPermissions no Claude, full-access no Codex), mas são somente leitura por instrução, não por modo: o sufixo 'sem edições' no prompt os impede de alterar arquivos. Uma equipe que queira mais pode solicitar no AGENTS.md do repositório, que também é uma instrução, ou bloquear com regras de permissions.deny do Claude Code, que ainda se aplicam em bypassPermissions.

Invocação

/pcommittee <problema> — o par padrão está abaixo; membros nomeados pelo usuário o substituem.

Composição

Contraste é o mecanismo, não um detalhe. Dois agentes da mesma família produzem o mesmo ponto cego duas vezes e chamam a concordância de confirmação.

O comitê padrão emparelha claude e codex; ambos devem aparecer como available e Enabled em paseo provider ls:

  • Membro A: o Opus mais recente que paseo provider models claude lista (por exemplo, claude/claude-opus-5-5) · raciocínio xhigh · modo bypassPermissions
  • Membro B: o modelo mais recente do Codex, o primeiro id em paseo provider models codex · raciocínio xhigh · modo full-access

Leia os ids dessas listas, nunca da memória. O membro claude usa o id simples, que é o modelo de 1M (pspawn explica por que sem [1m]). Ambos os membros rodam sem prompts de permissão, como todo spawn (padrão da equipe); o sufixo 'sem edições', não o modo, os impede de alterar arquivos.

Se o usuário nomear membros, use esses. Se apenas uma família estiver disponível, informe e execute padvisor em vez de fingir que um comitê de um membro é um comitê.

Passos

1. Escreva UM prompt de problema. Ambos os membros recebem o texto idêntico — prompts diferentes tornam a discordância um artefato da sua redação em vez de uma divergência real.

Escreva-o em um arquivo próprio e passe "$(cat <arquivo_prompt>)" para ambos os spawns. Digitar o mesmo heredoc duas vezes é como os textos silenciosamente divergem; um arquivo torna a identidade estrutural em vez de cuidado. Crie o arquivo com mktemp e use o caminho que ele imprime como <arquivo_prompt>: um nome fixo em /tmp colide com o comitê de outra sessão e é legível por qualquer usuário; um arquivo mktemp é novo para esta rodada e legível apenas por você.

Comece com o idioma da resposta, aquele em que a conversa do usuário está (Responda em <idioma>.) — os membros respondem no idioma em que o prompt está, e uma conversa em um idioma com dois relatórios em outro é atrito que você paga na hora da síntese.

[O idioma da conversa do usuário, como instrução: "Responda em <esse idioma>."]

## O problema
[O que está errado ou indeciso. Sintomas, não sua teoria — sua teoria é o que você quer testado.]

## O que se sabe
[Fatos, medições, mensagens de erro, ipsis litteris. Não conclusões.]

## O que foi tentado
- [Abordagem] — [o que aconteceu, por que foi abandonada]

## Onde olhar
- `/caminho/absoluto/arquivo.ts` — [o que é e por que importa]

## O que quero de volta
Uma análise de causa raiz e um plano. Declare sua confiança e nomeie o que falsificaria seu diagnóstico.
Se o problema, como enquadrado, for o problema errado, diga isso primeiro.

Isto é apenas análise. NÃO edite, crie ou exclua nenhum arquivo. NÃO escreva código.

Mantenha SUA própria hipótese FORA do prompt, ou você a receberá de volta duas vezes em palavras diferentes. Se precisar mencioná-la, marque-a como uma hipótese a ser atacada.

2. Gere ambos como filhos desta sessão. Disponibilidade do provedor primeiro, exatamente como no passo 1 do pspawn (<diretório base desta skill>/../pspawn/SKILL.md). Depois, na mesma resposta para que pensem em paralelo:

paseo run --no-wait --json --provider '<claude/opus-mais-recente>' --thinking xhigh \
  --mode bypassPermissions --title "[Comitê A] <tópico>" "$(cat <arquivo_prompt>)"
paseo run --no-wait --json --provider '<codex/mais-recente>' --thinking xhigh \
  --mode full-access --title "[Comitê B] <tópico>" "$(cat <arquivo_prompt>)"

No paseo, ambos caem no workspace desta sessão por conta própria, como filhos desta sessão — e permanecem assim: não os desanexe. O comitê pertence a esta pergunta; arquivar esta sessão os arquiva também, que é o que deve acontecer. Fora do paseo, adicione --workspace <id>, consultado uma vez como no passo 2 do pspawn.

3. Aguarde ambos — um paseo-notify por membro, depois encerre sua vez.

paseo-notify <id-a>; paseo-notify <id-b>

A mensagem de cada membro chega por conta própria. Se um já terminou e o outro ainda está processando, encerre sua vez novamente; a segunda mensagem o acorda. finished its turn → respondeu. is waiting for a permission → uma solicitação está esperando por você. stopped with an error → informe e leia seus logs; não o recrie silenciosamente. Um limite de uso não o acorda: paseo-limit-watch retoma o membro e reativa a vigília, onde sua linha cron está instalada (veja o README); sem ela, verifique o membro você mesmo após o reset. Os membros normalmente levam de 15 a 30 minutos. Nunca faça polling, nunca use sleep, nunca envie mensagens de pressa.

Fora do paseo (sem $PASEO_AGENT_ID): paseo wait <id-a> --json; paseo wait <id-b> --json em UMA chamada bash com run_in_background: true e leia cada status do JSON, nunca o código de saída.

Em caso de permission (raro em bypass e full-access, mas um rm -rf ainda pergunta) o membro para com ninguém vigiando. Leia (paseo permit ls), decida se está dentro do mandato que você deu, depois paseo permit allow <agent-id> <request-id> ou deny (ambos os ids de paseo permit ls) e ative paseo-notify novamente. Fora do mandato ou duvidoso → pergunte ao usuário, não aprove por ele.

4. Leia ambos.

paseo logs <id> --filter text --tail 3

pagent.py <id> -t -n 3 --full (<diretório base desta skill>/../pagent/) é mais rico, com carimbos de data/hora, e lê tanto o membro Claude quanto o Codex igualmente.

5. Faça-os debater. Este é o passo que torna um comitê melhor que dois agentes — pulá-lo deixa você com dois relatórios e nenhuma resolução.

Encontre onde eles realmente divergem — uma causa raiz diferente, uma correção diferente, uma avaliação de risco diferente. Ignore diferenças de redação e ênfase; essas não são discordâncias.

Para cada divergência real, envie a cada membro o argumento do OUTRO:

paseo send --behavior steer --no-wait <id-a> "O Membro B conclui <X>, com base nestes fundamentos: <raciocínio ipsis litteris>. Aborde isso diretamente: onde B está errado, ou onde você estava? Mude sua posição se B estiver certo — diga claramente se não."
paseo send --behavior steer --no-wait <id-b> "O Membro A conclui <Y>, com base nestes fundamentos: <raciocínio ipsis litteris>. Aborde isso diretamente: onde A está errado, ou onde você estava? Mude sua posição se A estiver certo — diga claramente se não."

Raciocínios longos ipsis litteris são mais fáceis de passar como arquivo: escreva a mensagem e use paseo send --behavior steer --no-wait --prompt-file <arquivo> <id>. Se o provedor não aceitar direcionamento (steering), pode recorrer à interrupção. paseo send revive um agente arquivado — verifique ArchivedAt em paseo inspect <id> --json primeiro; não reviva membros arquivados.

--no-wait é obrigatório aqui. paseo send simples BLOQUEIA até o agente terminar — dois envios bloqueantes executam os membros sequencialmente em vez de em paralelo, e só o primeiro já estoura o limite de 10 minutos do Bash em primeiro plano. Dispare ambos sem bloqueio, depois ative ambas as vigílias novamente (passo 3) e leia novamente (passo 4). Duas rodadas normalmente são suficientes. Se eles ainda discordarem após duas rodadas, pare e relate a discordância como resultado — uma divergência genuína e não resolvida entre dois modelos fortes é um achado real sobre o problema, e forçar consenso com uma terceira rodada o destrói.

6. Sintetize para o usuário:

  • No que ambos concordaram — esta é a parte estrutural
  • Onde divergiram e como se resolveu (ou que não se resolveu)
  • Sua própria leitura, marcada como sua
  • O plano que você seguiria agora

7. Arquive ambos — paseo archive <id> cada — a menos que o usuário queira continuar questionando-os.

Erros comuns

ErroCorreção
Dois membros da mesma família de provedorContraste é o mecanismo — claude + codex
Prompt diferente por membroUm arquivo, "$(cat …)" em ambos os spawns — dois heredocs divergem
Idioma da resposta não declaradoMembros respondem no idioma do prompt; comece com o do usuário
Sua própria hipótese declarada como fato no promptDeixe-a de fora, ou marque-a como hipótese a ser atacada
Pular a rodada de debateDois relatórios não são um comitê — o passo 5 é o valor
Forçar consenso na terceira rodadaUma divergência não resolvida entre dois modelos fortes É o achado
Confiar no código de saída de paseo waitEle é 0 para ocioso, permissão e erro igualmente — leia status de --json
Espera em primeiro planorun_in_background: true; o limite de 10 minutos do Bash mata a espera, não os agentes
Membro Codex deixado em seu modo padrão, ou claude em autocodex → full-access, claude → bypassPermissions (padrões da equipe); um membro em seu modo padrão para em prompts que ninguém responde
Polling / mensagens de pressapaseo-notify por membro e encerre sua vez; membros raciocinam por 15–30 minutos
paseo send simples na segunda rodadaEle BLOQUEIA até terminar — --no-wait para ambos, depois passo 3
Sufixo 'sem edições' omitidoAmbos os membros começam a implementar o que você pediu para analisar
Desanexar os membros, ou env -u PASEO_AGENT_IDEles são filhos desta sessão de propósito: vão embora quando ela é arquivada
Executar um comitê em uma pergunta pequenapadvisor — um agente, uma opinião, uma fração do custo

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

Habilidades Relacionadas