PT EN
Instalar

Teto de diff: como parar um agente que reescreve o repositório

Limites de arquivos, linhas e duplicação ajudam a manter a implementação perto do escopo pedido.

Read in English Versão em Markdown

Folha branca presa por um grampo laranja em uma bancada de aço num hangar teal.

O que um teto de diff faz

Um teto de diff é um limite configurável para o tamanho de uma implementação. No T25, max_files_changed limita quantos arquivos a task pode alterar e max_diff_lines limita as linhas de diff. max_duplicate_line_ratio acrescenta uma verificação contra repetição excessiva em arquivos de produção.

Essas regras não entendem a intenção do código. Servem para chamar atenção quando uma mudança cresce além do que o projeto está disposto a revisar em uma única tarefa. A revisão de findings e o gate humano continuam necessários; veja por que o APPROVE do modelo não é o merge.

Os limites padrão

No momento, os valores padrão documentados são:

Chave Padrão O que conta
max_files_changed 40 Arquivos alterados pela task
max_diff_lines 2000 Linhas alteradas no diff
max_duplicate_line_ratio 0.5 Maior razão de linhas duplicadas entre arquivos de produção

A razão de duplicação é calculada por arquivo e a maior razão é comparada ao teto. Arquivos de teste em test/, tests/, ou com nomes .test. e .spec. não entram nessa conta. Em modo bootstrap, o T25 pula somente essa métrica; os limites de arquivos e linhas continuam valendo.

Ajuste os limites ao tamanho do seu projeto

O bloco limits no t25.yaml permite ajustar esses valores:

limits:
  max_files_changed: 40
  max_diff_lines: 2000
  max_duplicate_line_ratio: 0.5

Esses números são os padrões documentados, não uma receita para todo repositório. Se o seu time revisa tarefas menores, reduza os tetos. Se uma tarefa legítima precisa passar deles, prefira dividir o trabalho em entregas revisáveis antes de abrir a exceção. Um teto mais alto aceita diffs maiores; um teto muito baixo pode rejeitar trabalho válido.

O que acontece quando o limite é ultrapassado

Depois da implementação, o T25 coleta as estatísticas do workspace e compara cada métrica configurada com seu limite. Se alguma regra falhar, grava um artefato handoff.md com o motivo e os números observados e marca a task como falha. O agente não segue silenciosamente para QA como se o diff estivesse dentro da política.

O handoff explica o bloqueio para que a equipe decida o próximo passo. Pode reduzir o escopo, dividir a tarefa ou revisar o limite do projeto. A fábrica não corta arquivos do diff nem altera os limites por conta própria.

O T25 registra a falha e o handoff para a equipe decidir o próximo passo. Consulte o estado da tarefa e os artefatos disponíveis no seu ambiente antes de retomar o trabalho.

O que essa barreira não verifica

Um diff pequeno ainda pode conter um bug sério, uma regressão ou uma falha de segurança. E uma mudança grande pode ser necessária para uma migração ou uma tarefa de bootstrap. Por isso, teto de diff complementa spec, testes, QA, review e controles de risco; não substitui nenhum deles.

Para separar cada tarefa em uma branch e worktree próprios, veja uma ordem, um worktree. Os nomes e descrições das opções estão na referência de configuração.

Perguntas frequentes

O T25 apaga ou reverte o diff quando o teto é excedido?

Não. A task falha e recebe um resumo de handoff. A equipe decide se reduz o escopo, divide o trabalho ou ajusta a política.

As linhas dos arquivos de teste contam?

Elas contam para max_diff_lines. Ficam excluídas apenas do cálculo de max_duplicate_line_ratio.

O modo bootstrap ignora todos os limites?

Não. Ele pula a verificação de duplicação; limites de arquivos e de linhas continuam ativos.

Um diff dentro do teto está pronto para merge?

Não. O teto mede tamanho e, opcionalmente, repetição. QA, revisão e o gate humano ainda precisam fazer seu trabalho.

Devo aumentar o teto para uma tarefa grande?

Considere primeiro dividir a tarefa. Se o escopo maior for legítimo, ajuste a política do projeto deliberadamente e mantenha a revisão humana do resultado.

Teste o T25 na sua máquina.

O acesso é por convite: o link pessoal de download chega por e-mail, o instalador verifica o checksum do pacote e o doctor --evaluation valida o ambiente. Gratuito durante os 30 dias do programa de early evaluators. O orquestrador, o banco e as worktrees rodam na sua máquina; a T25 não coleta seu código, prompts, logs ou credenciais. Os CLIs de agente enviam dados aos próprios provedores, na sua conta e conforme as políticas deles.

t25 doctor --evaluation
t25 create "Add retry with backoff to the HTTP client"

Solicitar convite

O APPROVE do modelo não é o merge

Um agente de code review escreve APPROVE, mas quem decide o merge? Veja como o T25 recalcula o veredito a partir dos findings, o bug que nos ensinou isso e como montar um gate humano que não depende do modelo.