code-simplification
Simplifica o código para torná-lo mais fácil de entender e manter. É útil quando o código funciona, mas está complicado demais, ajudando a melhorar a clareza.
O que ela faz
Esta ferramenta ajuda a deixar códigos de programação mais fáceis de ler e entender. Ela melhora a clareza sem mudar o que o código faz.
Quando usar
- ✓Quando um código funciona, mas é difícil de ler.
- ✓Durante a revisão de códigos que ficaram complicados demais.
- ✓Ao encontrar lógicas muito complexas ou nomes pouco claros.
Exemplo do que pedir para a IA
“Simplifique este código para que fique mais fácil de entender:”
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 ferramenta analisa o código e procura maneiras de torná-lo mais direto, como usar nomes melhores ou organizar a lógica. Ela garante que o código continue funcionando exatamente da mesma forma.
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 code-simplificationOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/addyosmani/agent-skills/main/skills/code-simplification/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.
Simplificação de Código
Inspirado pelo plugin Claude Code Simplifier. Adaptado aqui como uma habilidade agnóstica de modelo e orientada a processos para qualquer agente de codificação de IA.
Visão Geral
Simplifique o código reduzindo a complexidade, mas preservando o comportamento exato. O objetivo não é ter menos linhas — é ter um código mais fácil de ler, entender, modificar e depurar. Cada simplificação deve passar em um teste simples: "Um novo membro da equipe entenderia isso mais rápido do que o original?"
Quando Usar
- Depois que uma funcionalidade estiver funcionando e os testes passarem, mas a implementação parecer mais pesada do que o necessário
- Durante a revisão de código, quando problemas de legibilidade ou complexidade forem sinalizados
- Ao encontrar lógica profundamente aninhada, funções longas ou nomes pouco claros
- Ao refatorar código escrito sob pressão de tempo
- Ao consolidar lógica relacionada espalhada por vários arquivos
- Após mesclar alterações que introduziram duplicação ou inconsistência
Quando NÃO usar:
- O código já está limpo e legível — não simplifique por simplificar
- Você ainda não entende o que o código faz — compreenda antes de simplificar
- O código é crítico para o desempenho e a versão "mais simples" seria mensuravelmente mais lenta
- Você está prestes a reescrever o módulo inteiro — simplificar código descartável desperdiça esforço
Os Cinco Princípios
1. Preservar o Comportamento Exatamente
Não mude o que o código faz — apenas como ele se expressa. Todas as entradas, saídas, efeitos colaterais, comportamento de erro e casos extremos devem permanecer idênticos. Se você não tem certeza se uma simplificação preserva o comportamento, não a faça.
ASK BEFORE EVERY CHANGE:
→ Does this produce the same output for every input?
→ Does this maintain the same error behavior?
→ Does this preserve the same side effects and ordering?
→ Do all existing tests still pass without modification?
2. Seguir as Convenções do Projeto
Simplificar significa tornar o código mais consistente com a base de código, não impor preferências externas. Antes de simplificar:
1. Read CLAUDE.md / project conventions
2. Study how neighboring code handles similar patterns
3. Match the project's style for:
- Import ordering and module system
- Function declaration style
- Naming conventions
- Error handling patterns
- Type annotation depth
Simplificação que quebra a consistência do projeto não é simplificação — é confusão.
3. Preferir Clareza a Sagacidade
Código explícito é melhor do que código compacto quando a versão compacta exige uma pausa mental para ser interpretada.
// UNCLEAR: Dense ternary chain
const label = isNew ? 'New' : isUpdated ? 'Updated' : isArchived ? 'Archived' : 'Active';
// CLEAR: Readable mapping
function getStatusLabel(item: Item): string {
if (item.isNew) return 'New';
if (item.isUpdated) return 'Updated';
if (item.isArchived) return 'Archived';
return 'Active';
}
// UNCLEAR: Chained reduces with inline logic
const result = items.reduce((acc, item) => ({
...acc,
[item.id]: { ...acc[item.id], count: (acc[item.id]?.count ?? 0) + 1 }
}), {});
// CLEAR: Named intermediate step
const countById = new Map<string, number>();
for (const item of items) {
countById.set(item.id, (countById.get(item.id) ?? 0) + 1);
}
4. Manter o Equilíbrio
A simplificação tem um modo de falha: a super-simplificação. Fique atento a essas armadilhas:
- Inline excessivo — remover um helper que deu nome a um conceito torna o local da chamada mais difícil de ler
- Combinar lógica não relacionada — duas funções simples mescladas em uma função complexa não é mais simples
- Remover abstração "desnecessária" — algumas abstrações existem para extensibilidade ou testabilidade, não para complexidade
- Otimizar para contagem de linhas — menos linhas não é o objetivo; compreensão mais fácil é
5. Escopo ao que Foi Alterado
Por padrão, simplifique o código modificado recentemente. Evite refatorações "de passagem" de código não relacionado, a menos que seja explicitamente solicitado a ampliar o escopo. Simplificação sem escopo cria ruído nas diferenças e arrisca regressões não intencionais.
O Processo de Simplificação
Passo 1: Entender Antes de Tocar (A Cerca de Chesterton)
Antes de alterar ou remover qualquer coisa, entenda por que ela existe. Isso é a Cerca de Chesterton: se você vê uma cerca em uma estrada e não entende por que ela está lá, não a derrube. Primeiro, entenda o motivo e, em seguida, decida se o motivo ainda se aplica.
ANTES DE SIMPLIFICAR, RESPONDA:
- Qual é a responsabilidade deste código?
…
Perguntas frequentes
Isso muda o funcionamento do código?
Não, o objetivo é apenas melhorar a clareza. O código fará exatamente as mesmas coisas que fazia antes.
Preciso saber programar para usar?
É útil ter uma noção básica de programação para entender o que o código faz, mas a ferramenta é projetada para simplificar, tornando-o mais acessível.
Posso usar para deixar o código menor?
O foco principal é a clareza e a facilidade de entendimento, não necessariamente a redução do número de linhas. Às vezes, um código um pouco maior pode ser mais simples de ler.
Detalhes
Descrição original do autor
Simplifies code for clarity. Use when refactoring code for clarity without changing behavior. Use when code works but is harder to read, maintain, or extend than it should be. Use when reviewing code that has accumulated unnecessary complexity.
repo: addyosmani/agent-skills
Popularidade
- Estrelas no GitHub
- 107 mil
- Posição no ranking
- #344
- 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