test-driven-development
por addyosmaniA skill test-driven-development ajuda você a modificar código escrevendo primeiro um teste que falha e, depois, fazendo a menor correção possível para passar. Use em mudanças de lógica, correção de bugs, regressões e casos de borda em que a prova vale mais do que um conserto apenas plausível.
Esta skill recebe nota 84/100, o que a torna uma boa opção no diretório para quem quer um fluxo de TDD amigável para agentes, com gatilhos claros e orientação passo a passo. Ela deve ajudar agentes a escolher e executar a skill com menos suposições do que um prompt genérico, embora ainda seja uma skill de arquivo único, sem scripts ou referências de apoio.
- Boa capacidade de acionamento: a descrição aponta explicitamente para implementação de nova lógica, correções de bugs e mudanças de comportamento.
- Fluxo operacional claro: apresenta o ciclo RED-GREEN-REFACTOR e indica quando usar ou evitar a skill.
- Boa profundidade prática: o conteúdo é substancial, com várias seções, restrições e exemplos de código em vez de texto placeholder.
- Sem arquivos de apoio ou comando de instalação: o usuário recebe apenas o SKILL.md, então a adoção depende de ler o documento com atenção.
- Marcada como experimental/teste e sem referências externas, então a confiança depende do próprio conteúdo, não de ferramentas ou citações.
Visão geral da skill de test-driven-development
A skill test-driven-development ajuda você a बदल? by proving behavior first, then implementing the smallest fix that makes the test pass. Ela é ideal para desenvolvedores e agentes que trabalham com mudanças de lógica, correções de bugs, casos de borda e regressões, quando “parece certo” não basta. Se você precisa da test-driven-development skill para reduzir suposições, este guia mostra quando ela faz sentido e o que ela realmente melhora: edições mais seguras, requisitos mais claros e menos retrabalho depois de um patch inicial.
Para que esta skill serve
Use test-driven-development quando a tarefa alterar comportamento: novas funções, condições modificadas, reprodução de bug ou qualquer coisa que possa quebrar silenciosamente código existente. Ela é especialmente útil quando o repositório já tem testes e você quer que o agente trabalhe dentro do sistema de validação do projeto, em vez de inventar comportamento do zero.
O que a torna diferente
O valor principal é a disciplina: primeiro escreva um teste que falha, depois implemente apenas o que o teste comprova. Isso dá ao agente um alvo concreto, expõe suposições faltantes cedo e ajuda a manter as correções enxutas. Para test-driven-development for Skill Testing, isso costuma ser a diferença entre um patch plausível e um patch verificado.
Quando ela não é uma boa escolha
Não use esta skill para mudanças que não tenham comportamento em runtime: correções de texto, atualizações de conteúdo estático ou ajustes puramente de configuração. Se o projeto tiver pouca ou nenhuma cobertura de testes, a skill ainda pode ajudar, mas a adoção será mais lenta porque o próprio harness de testes pode precisar de preparação antes que o fluxo comece a dar retorno.
Como usar a skill test-driven-development
Instale e inspecione a skill
Use o fluxo de instalação do repositório para test-driven-development install:
npx skills add addyosmani/agent-skills --skill test-driven-development
Depois da instalação, comece por SKILL.md. Neste repositório, não há pastas extras rules/, resources/ ou scripts/ para apoiar o trabalho, então a principal tarefa é ler o arquivo da skill com atenção e traduzir suas orientações para a sua base de código.
Transforme uma tarefa vaga em um prompt testável
O melhor test-driven-development usage começa com uma descrição de comportamento, não com um pedido de solução. Um bom input soa assim: “Adicione um teste que falhe para validação de e-mail vazio e depois implemente a correção mínima em src/auth.ts.” Um input fraco soa assim: “Melhore o login.” Inclua o resultado observável, o arquivo ou módulo, se souber, e o risco de regressão que te preocupa.
Siga o ciclo RED-GREEN-REFACTOR
Use a skill como fluxo de trabalho: primeiro escreva um teste que falhe no código atual, depois faça a menor mudança de código que o faça passar e, por fim, refatore apenas se o teste continuar passando. Se a falha for difícil de reproduzir, pare e refine o caso de teste antes de mexer na implementação. A skill funciona melhor quando o caso que falha é específico o bastante para comprovar o bug.
Leia os arquivos certos primeiro
Para este repositório, a primeira leitura mais importante é SKILL.md. Depois, inspecione a configuração local de testes no projeto de destino: configuração do test runner, convenções de testes já existentes e os testes mais próximos do código que você pretende alterar. Se o projeto já tiver padrões fortes, siga-os à risca; se não tiver, mantenha o teste mínimo e explícito.
FAQ da skill test-driven-development
Isso é só para engenheiros experientes?
Não. Pessoas iniciantes também podem usar test-driven-development, mas precisam de um ponto de partida claro: um comportamento, um teste que falha e uma correção mínima. A skill é mais fácil de aprender em correções pequenas de bugs do que em trabalhos amplos de feature.
Em que isso difere de um prompt normal?
Um prompt normal pode pedir código que “funcione”. Esta skill pede prova. O test-driven-development guide leva o agente a definir sucesso como um teste passando, o que reduz ambiguidades e facilita a revisão.
Quando eu não devo escolher essa skill?
Evite-a para documentação, formatação ou mudanças que não possam ser expressas como comportamento em runtime. Evite também se o projeto não tiver um harness de testes viável e você só precisar de uma edição rápida que não altere comportamento.
Ela serve para todos os ecossistemas?
Em princípio, sim, mas os comandos de teste, as asserções e a estrutura de arquivos exatos dependem da stack. A skill é agnóstica em relação ao framework; as convenções do seu repositório local é que definem se você vai usar Jest, Vitest, pytest, JUnit ou outro runner.
Como melhorar a skill test-driven-development
Dê ao agente um caso de falha mais preciso
O input mais forte nomeia o comportamento que falha, o resultado esperado e a condição de contorno. Exemplo: “Quando parseDate("") rodar, ele deve lançar InvalidDateError; adicione o teste primeiro e depois ajuste o parser.” Isso ajuda a test-driven-development skill a evitar suposições vagas de implementação.
Compartilhe o estilo de testes existente
Mencione os arquivos de teste próximos, padrões de nomenclatura e quaisquer helpers ou fixtures já usados no projeto. Se o repositório usa testes orientados por tabela, mocks ou testes de integração para comportamentos parecidos, diga isso. Seguir a convenção local aumenta a confiança e ajuda a manter a saída fácil de incorporar no merge.
Fique atento aos modos de falha mais comuns
Os erros mais comuns são implementar antes do teste, usar um teste que já passa e ampliar demais a correção além do caso que falha. Se a primeira saída vier ampla demais, peça o menor teste possível que falhe e apenas um patch mínimo. Esse costuma ser o caminho mais rápido para um test-driven-development usage confiável.
Itere com evidências, não com suposições
Depois da primeira passada, peça o próximo ponto de prova: outro caso de borda, um teste de regressão ou um refactor que preserve os testes passando. Se o bug for sutil, solicite um resumo de comportamento antes/depois junto com o nome exato do teste a adicionar. Isso mantém o fluxo ancorado em comportamento observável, e não em suposições.
