Coroid não utiliza um único agente de propósito geral. Cada etapa do caminho desde a descrição até o pull request é gerenciada por um agente com uma função específica e um conjunto de ferramentas deliberadamente restrito.
Essas restrições são o objetivo principal. Um agente que não pode escrever código não vai acidentalmente escrever código.
As funções
| Função | Etapa | Pode modificar seu código |
|---|---|---|
| Arquiteto | Especificação e planejamento | Não |
| Desenvolvedor | Criar | Sim |
| QA | Verificar | Não |
| Revisor | Revisão | Não |
| Testador web | Verificar fluxos do navegador | Não |
| Explorador | Pesquisar, em qualquer etapa | Não |
| Analisador de dependências | Análise | Não |
Os quatro primeiros formam o pipeline que você vê em todas as tarefas, nesta ordem:
Arquiteto → Desenvolvedor → QA → Revisor
Apenas uma função — o desenvolvedor — pode alterar arquivos no seu repositório. Todos os demais agentes apenas leem, executam, relatam ou criam tarefas de acompanhamento.
Arquiteto
Transforma sua descrição em uma especificação e a especificação em um plano. Ele lê o código-fonte para alinhar o plano ao que realmente existe, mas não escreve código.
Sua saída é o item que você aprova antes do início da compilação.
Desenvolvedor
Realiza o trabalho: lê o código relevante, faz a alteração, escreve ou atualiza os testes e os executa localmente na área de trabalho até que sejam aprovados.
Quando o Revisor envia os achados de volta, o Desenvolvedor é a função que age com base neles.
QA
Executa a verificação de forma independente do agente que escreveu o código — sua suíte de testes, os critérios de qualidade configurados para o projeto e os critérios de aceitação da especificação.
O QA emite um veredito. Ele não corrige o que encontra; as falhas são encaminhadas de volta ao Desenvolvedor como retrabalho.
Revisor
Lê o diff finalizado e produz achados, aplicando quaisquer regras de revisão configuradas pela sua organização. Os achados são encaminhados de volta ao desenvolvedor como retrabalho ou anexados ao pull request para sua análise.
Testador web
Utiliza um navegador real para testar uma prévia em execução do seu aplicativo e verificar fluxos de usuário de ponta a ponta. É usado quando uma afirmação sobre o comportamento não pode ser feita apenas a partir do código.
Explorador
Uma função de pesquisa somente de leitura. Outros agentes o utilizam para responder perguntas sobre o código-fonte sem precisar carregar tudo em seu próprio contexto — "onde a autenticação é tratada", "quem chama essa função".
Analisador de dependências
Examina as dependências e como as alterações se propagam pelo código-fonte, incluindo entre projetos com dependências cruzadas configuradas.
Por que essa separação é importante
Três propriedades resultam dessa divisão do trabalho:
- A verificação é independente. O agente que checa o trabalho não é o mesmo que o escreveu, portanto não tem interesse pessoal no resultado.
- O raio de impacto é limitado. Apenas a função de desenvolvedor possui ferramentas para escrever código; assim, uma falha na revisão ou análise não pode corromper seu repositório.
- Cada função utiliza um modelo adequado a ela. O planejamento beneficia-se de amplo conhecimento geral; escrever código que compila requer algo diferente. Um AI profile contém um modelo por função exatamente por esse motivo.
Próximo
Voltar para Como uma tarefa se torna um pull request para ver em quais etapas essas funções se aplicam, ou O que é o Coroid para obter uma visão geral mais resumida.