incremental-implementation
Entrega mudanças pequenas e testáveis de cada vez. Facilita a implementação de novas funcionalidades e a correção de erros sem quebrar tudo.
O que ela faz
Essa habilidade ajuda a dividir grandes tarefas de programação em passos menores e gerenciáveis. Ela garante que cada passo seja testado e funcione antes de passar para o próximo, tornando o processo de desenvolvimento mais seguro e organizado.
Quando usar
- ✓Ao implementar uma nova funcionalidade que afeta várias partes do código.
- ✓Quando uma tarefa parece grande demais para ser feita de uma vez.
- ✓Ao refatorar (melhorar) código existente.
Exemplo do que pedir para a IA
“Divida a implementação da funcionalidade de login em passos pequenos. Primeiro, crie a tela de login. Depois, adicione a validação de email e senha. Por fim, conecte ao sistema de autenticação.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
A ideia é fazer um pedacinho de cada vez: escrever um pouco de código, testar se funciona, verificar se está correto e salvar o progresso. Repita isso para cada pequeno pedaço até a tarefa completa.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add addyosmani/agent-skills --skill incremental-implementationOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/addyosmani/agent-skills/main/skills/incremental-implementation/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Implementação Incremental
Visão Geral
Construa em fatias verticais finas — implemente uma parte, teste-a, verifique-a e, em seguida, expanda. Evite implementar um recurso inteiro de uma vez. Cada incremento deve deixar o sistema em um estado funcional e testável. Esta é a disciplina de execução que torna recursos grandes gerenciáveis.
Quando Usar
- Implementando qualquer alteração em vários arquivos
- Construindo um novo recurso a partir de um detalhamento de tarefas
- Refatorando código existente
- Sempre que você for tentado a escrever mais de ~100 linhas antes de testar
Quando NÃO usar: Alterações em um único arquivo e em uma única função, onde o escopo já é mínimo.
O Ciclo de Incremento
┌──────────────────────────────────────┐
│ │
│ Implement ──→ Test ──→ Verify ──┐ │
│ ▲ │ │
│ └───── Commit ◄─────────────┘ │
│ │ │
│ ▼ │
│ Next slice │
│ │
└──────────────────────────────────────┘
Para cada fatia:
- Implemente a menor peça completa de funcionalidade
- Teste — execute a suíte de testes (ou escreva um teste se nenhum existir)
- Verifique — confirme se a fatia funciona como esperado (testes passam, compilação bem-sucedida, verificação manual)
- Commit — salve seu progresso com uma mensagem descritiva (veja
git-workflow-and-versioningpara orientação sobre commits atômicos) - Passe para a próxima fatia — continue, não reinicie
Estratégias de Fatiamento
Fatias Verticais (Preferencial)
Construa um caminho completo através da pilha:
Slice 1: Create a task (DB + API + basic UI)
→ Tests pass, user can create a task via the UI
Slice 2: List tasks (query + API + UI)
→ Tests pass, user can see their tasks
Slice 3: Edit a task (update + API + UI)
→ Tests pass, user can modify tasks
Slice 4: Delete a task (delete + API + UI + confirmation)
→ Tests pass, full CRUD complete
Cada fatia entrega funcionalidade ponta a ponta funcionando.
Fatiamento Baseado em Contrato (Contract-First)
Quando backend e frontend precisam se desenvolver em paralelo:
Slice 0: Define the API contract (types, interfaces, OpenAPI spec)
Slice 1a: Implement backend against the contract + API tests
Slice 1b: Implement frontend against mock data matching the contract
Slice 2: Integrate and test end-to-end
Fatiamento Baseado em Risco (Risk-First)
Aborde a parte mais arriscada ou incerta primeiro:
Slice 1: Prove the WebSocket connection works (highest risk)
Slice 2: Build real-time task updates on the proven connection
Slice 3: Add offline support and reconnection
Se a Fatia 1 falhar, você a descobrirá antes de investir nas Fatias 2 e 3.
Regras de Implementação
Regra 0: Simplicidade em Primeiro Lugar
Antes de escrever qualquer código, pergunte: "Qual é a coisa mais simples que pode funcionar?"
Após escrever o código, revise-o com base nestas verificações:
- Isso pode ser feito em menos linhas?
- Essas abstrações justificam sua complexidade?
- Um engenheiro sênior olharia para isso e diria "por que você não fez simplesmente..."?
- Estou construindo para requisitos futuros hipotéticos ou para a tarefa atual?
SIMPLICITY CHECK:
✗ Generic EventBus with middleware pipeline for one notification
✓ Simple function call
✗ Abstract factory pattern for two similar components
✓ Two straightforward components with shared utilities
✗ Config-driven form builder for three forms
✓ Three form components
Três linhas de código semelhantes são melhores do que uma abstração prematura. Implemente a versão ingênua e obviamente correta primeiro. Otimize apenas depois que a correção for comprovada com testes.
Regra 0.5: Disciplina de Escopo
Toque apenas no que a tarefa exige.
NÃO:
- "Limpar" código adjacente à sua alteração
- Refatorar importações em arquivos que você não está modificando
- Remover comentários que você não entende completamente
- Adicionar recursos que não estão na especificação porque "parecem úteis"
- Modernizar a sintaxe em arquivos que você está apenas lendo
Se você notar algo que vale a pena melhorar fora do escopo da sua tarefa, anote — não corrija:
NOTICED BUT NOT TOUCHING:
- src/utils/format.ts has an unused import (unrelated to this task)
- The auth middleware could use better error messages (separate task)
→ Want me to create tasks for these?
Regra 1: Uma Coisa de Cada Vez
Cada incremento altera uma coisa lógica. Não misture preocupações:
Ruim: Um commit que adiciona um novo componente, refatora um existente e atualiza a configuração de build.
Bom: Três commits separados — um para cada alteração.
Regra 2: Mantenha Compilável
…
Perguntas frequentes
Por que dividir em passos pequenos?
Torna tarefas grandes menos assustadoras, permite encontrar erros mais cedo e facilita a reversão de mudanças se algo der errado.
O que significa 'verificável'?
Significa que após cada passo, você pode confirmar que o código funciona como esperado, geralmente rodando testes ou verificando manualmente.
Posso fazer melhorias no código enquanto divido a tarefa?
É melhor focar apenas no que a tarefa pede. Se notar algo que precisa de melhoria fora do escopo, anote para fazer depois, em outra tarefa.
Detalhes
Descrição original do autor
Delivers changes incrementally in thin, verifiable slices. Use when implementing any feature or change that touches more than one file, or when picking up the next task from a plan. Use when rolling a change out behind a feature flag, when you're about to write a large amount of code at once, or when a task feels too big to land in one step.
repo: addyosmani/agent-skills
Popularidade
- Estrelas no GitHub
- 107 mil
- Posição no ranking
- #354
- Licença
- MIT
- Atualizada em
- 13/10/2026
Comentários
- …
Mais skills deste repositório
api-and-interface-design
Ajuda a criar APIs e interfaces bem definidas. É útil ao projetar como diferentes partes de um software vão se comunicar.
addyosmani/agent-skills
browser-testing-with-devtools
Ajuda seu agente a testar código diretamente em navegadores reais. É útil para verificar como algo funciona no ambiente onde será usado, encontrando erros e problemas de performance.
addyosmani/agent-skills
ci-cd-and-automation
Ensina seu agente de IA a automatizar tarefas repetitivas e colocar projetos no ar e cuidar da infraestrutura.
addyosmani/agent-skills
code-review-and-quality
Realiza revisões de código detalhadas em várias frentes. É útil antes de juntar novas mudanças para garantir a qualidade e evitar problemas futuros.
addyosmani/agent-skills
Skills parecidas
benchmark-optimization-loop
Faz seu agente melhorar a velocidade de algo de forma medida. Ele testa várias versões e escolhe a mais rápida que ainda funciona corretamente.
affaan-m/ECC
change-impact
Ajuda seu agente a analisar o impacto de mudanças no código antes de fazê-las. Ele compara o planejado com o real depois, cobrindo caminhos, dados, testes e documentação. É útil para mudanças arriscadas ou que afetam várias partes do sistema.
affaan-m/ECC
click-path-audit
Faz seu agente rastrear todos os botões e interações do usuário para achar bugs. Ele encontra problemas onde funções parecem funcionar sozinhas, mas falham juntas. Útil quando bugs persistem mesmo após depuração.
affaan-m/ECC