clean-code
Ajuda seu agente a transformar código funcional em código limpo e organizado. Segue os princípios do "Clean Code" para melhor legibilidade.
O que ela faz
Esta ferramenta ajuda a transformar código de computador que funciona, mas é difícil de entender, em código limpo e fácil de ler. Ela segue as melhores práticas para tornar o código mais organizado e compreensível para outros programadores.
Quando usar
- ✓Ao escrever código novo para garantir qualidade desde o início.
- ✓Ao revisar o código de outras pessoas para dar sugestões de melhoria.
- ✓Ao tentar consertar ou melhorar códigos antigos e complicados.
Exemplo do que pedir para a IA
“Transforme este código para que fique mais limpo e fácil de entender, mantendo a mesma funcionalidade.”
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 IA analisa o código que você fornece e aplica regras de 'código limpo'. Isso inclui usar nomes mais claros para variáveis e funções, dividir códigos longos em partes menores e mais focadas, e remover comentários desnecessários, tornando o código mais legível.
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 sickn33/agentic-awesome-skills --skill clean-codeOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/clean-code/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.
Habilidade de Código Limpo
Esta habilidade incorpora os princípios de "Código Limpo" de Robert C. Martin (Uncle Bob). Use-a para transformar "código que funciona" em "código que é limpo".
🧠 Filosofia Central
"Código é limpo se puder ser lido e aprimorado por um desenvolvedor diferente de seu autor original." — Grady Booch
Quando Usar
Use esta habilidade quando:
- Escrever código novo: Para garantir alta qualidade desde o início.
- Revisar Pull Requests: Para fornecer feedback construtivo baseado em princípios.
- Refatorar código legado: Para identificar e remover "code smells" (cheiros de código).
- Melhorar padrões da equipe: Para alinhar com as melhores práticas do setor.
1. Nomes Significativos
- Use Nomes que Revelam a Intenção:
elapsedTimeInDaysem vez ded. - Evite Desinformação: Não use
accountListse for realmente umMap. - Faça Distinções Significativas: Evite
ProductDatavsProductInfo. - Use Nomes Pronunciáveis/Pesquisáveis: Evite
genymdhms. - Nomes de Classes: Use substantivos (
Customer,WikiPage). EviteManager,Data. - Nomes de Métodos: Use verbos (
postPayment,deletePage).
2. Funções
- Pequenas!: Funções devem ser menores do que você pensa.
- Faça Uma Coisa Só: Uma função deve fazer apenas uma coisa e fazê-la bem.
- Um Nível de Abstração: Não misture lógica de negócios de alto nível com detalhes de baixo nível (como regex).
- Nomes Descritivos:
isPasswordValidé melhor quecheck. - Argumentos: 0 é o ideal, 1-2 é aceitável, 3+ requer uma justificativa muito forte.
- Sem Efeitos Colaterais: Funções não devem alterar secretamente o estado global.
3. Comentários
- Não Comente Código Ruim — Reescreva-o: A maioria dos comentários é um sinal de falha em nos expressarmos em código.
- Explique-se em Código:
vs# Check if employee is eligible for full benefits if employee.flags & HOURLY and employee.age > 65:if employee.isEligibleForFullBenefits(): - Bons Comentários: Legais, Informativos (intenção de regex), Esclarecimento (bibliotecas externas), TODOs.
- Comentários Ruins: Murmúrios, Redundantes, Enganosos, Obrigatórios, Ruído, Marcadores de Posição.
4. Formatação
- A Metáfora do Jornal: Conceitos de alto nível no topo, detalhes na parte inferior.
- Densidade Vertical: Linhas relacionadas devem estar próximas umas das outras.
- Distância: Variáveis devem ser declaradas perto de seu uso.
- Indentaçao: Essencial para legibilidade estrutural.
5. Objetos e Estruturas de Dados
- Abstração de Dados: Oculte a implementação por trás de interfaces.
- A Lei de Deméter: Um módulo não deve conhecer os detalhes internos dos objetos que manipula. Evite
a.getB().getC().doSomething(). - Data Transfer Objects (DTO): Classes com variáveis públicas e sem funções.
6. Tratamento de Erros
- Use Exceções em Vez de Códigos de Retorno: Mantém a lógica limpa.
- Escreva Try-Catch-Finally Primeiro: Define o escopo da operação.
- Não Retorne Null: Força o chamador a verificar null toda vez.
- Não Passe Null: Leva a
NullPointerException.
7. Testes de Unidade
- As Três Leis do TDD:
- Não escreva código de produção até ter um teste de unidade falhando.
- Não escreva mais de um teste de unidade do que o suficiente para falhar.
- Não escreva mais código de produção do que o suficiente para passar no teste que falhou.
- Princípios F.I.R.S.T.: Fast (Rápido), Independent (Independente), Repeatable (Repetível), Self-Validating (Auto-Validável), Timely (Oportuno).
8. Classes
- Pequenas!: Classes devem ter uma única responsabilidade (SRP).
- A Regra de Descida: Queremos que o código seja lido como uma narrativa de cima para baixo.
9. Cheiros e Heurísticas
- Rigidez: Difícil de mudar.
- Fragilidade: Quebra em muitos lugares.
- Imobilidade: Difícil de reutilizar.
- Viscosidade: Difícil de fazer a coisa certa.
- Complexidade/Repetição Desnecessária.
🛠️ Checklist de Implementação
- Esta função tem menos de 20 linhas?
- Esta função faz exatamente uma coisa?
- Todos os nomes são pesquisáveis e revelam a intenção?
- Evitei comentários tornando o código mais claro?
- Estou passando muitos argumentos?
- Existe um teste falhando para esta mudança?
Exemplo
Solicitação do usuário:
Refatore este código funcional para nomes mais claros, unidades menores, erros explícitos e comportamento preservado; verifique-o com testes focados.
Limitações
- Use esta habilidade apenas quando a tarefa corresponder claramente ao escopo descrito acima.
- Não trate a saída como substituta para validação específica do ambiente, testes ou revisão de especialistas.
…
Perguntas frequentes
O que é 'código limpo'?
Código limpo é aquele que é fácil de ler e entender por qualquer programador, mesmo que não tenha sido ele quem escreveu originalmente.
Por que usar nomes mais claros no código?
Nomes claros ajudam a entender o que o código faz sem precisar de explicações extras. Por exemplo, 'tempoDecorridoEmDias' é melhor que 'd'.
O que são 'cheiros de código'?
São sinais em um código que indicam que algo pode estar errado ou que ele pode ser melhorado, como nomes confusos, funções muito longas ou código repetido.
Detalhes
Descrição original do autor
This skill embodies the principles of \"Clean Code\" by Robert C. Martin (Uncle Bob). Use it to transform \"code that works\" into \"code that is clean.\
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #2537
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-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