refactor: remover extensões .md de todos os artefatos — v3.0.0
- 55 arquivos .md renomeados para sem extensão - Convenção: artefatos de conhecimento sem extensão, scripts (.sh) e dados (.json) mantêm extensão - Scripts atualizados: gerar-manifesto.sh, atualizar-agente.sh, atualizar-agente.global.sh, gerar-agent-json.sh, verificar-linhas.sh - Documentação reescrita: AGENTS, README, EXTEND para refletir uso como submodule .agent direto - manifesto.json regenerado v3.0.0 - Todas as referências internas entre artefatos atualizadas BREAKING CHANGE: arquivos não possuem mais extensão .md
This commit is contained in:
parent
22023df81e
commit
bf9be375e2
58 changed files with 506 additions and 514 deletions
145
agents/ag-refatorar/skills/diagnosticar-code-smells/SKILL
Normal file
145
agents/ag-refatorar/skills/diagnosticar-code-smells/SKILL
Normal file
|
|
@ -0,0 +1,145 @@
|
|||
---
|
||||
name: diagnosticar-code-smells
|
||||
description: >
|
||||
Análise sistemática de código para identificar code smells, violações SOLID
|
||||
e oportunidades de aplicação de Design Patterns GoF.
|
||||
scope: local
|
||||
---
|
||||
|
||||
# Skill: Diagnosticar Code Smells
|
||||
|
||||
## Objetivo
|
||||
|
||||
Analisar um arquivo, módulo ou pacote para produzir um relatório de saúde estrutural com:
|
||||
- Code smells identificados
|
||||
- Violações SOLID detectadas
|
||||
- Design Patterns recomendados
|
||||
- Prioridade de cada refatoração
|
||||
|
||||
## Pré-condições
|
||||
|
||||
- Código existente para analisar (arquivo, pasta ou pacote)
|
||||
- Acesso de leitura ao código e seus testes
|
||||
|
||||
## Etapas
|
||||
|
||||
### 1. Coletar Contexto
|
||||
|
||||
```sh
|
||||
# Identificar tamanho e estrutura
|
||||
wc -l <arquivo_ou_pasta>/**/*.ts
|
||||
wc -l <arquivo_ou_pasta>/**/*.vue
|
||||
|
||||
# Verificar cobertura de testes
|
||||
find <pasta_testes> -name "*.spec.ts" -o -name "*.test.ts"
|
||||
```
|
||||
|
||||
### 2. Verificar Smells de Volume
|
||||
|
||||
Para cada arquivo, verificar:
|
||||
|
||||
| Verificação | Comando/Ação |
|
||||
|-------------|-------------|
|
||||
| Linhas > 250 | `wc -l <arquivo>` |
|
||||
| Funções > 30 linhas | Ler e contar manualmente |
|
||||
| Parâmetros > 3 por função | `grep_search` por assinaturas |
|
||||
| Imports excessivos (> 10) | Contar linhas de import |
|
||||
|
||||
### 3. Verificar Smells de Acoplamento
|
||||
|
||||
| Verificação | Indicador |
|
||||
|-------------|-----------|
|
||||
| Feature Envy | Função usa `outro.` mais que `this.` ou dados locais |
|
||||
| Intimidade Inapropriada | Acesso a internos de outro módulo (não-exportados) |
|
||||
| Cadeia de Mensagens | `a.b.c.d` com 3+ níveis |
|
||||
| Import circular | Módulo A importa B que importa A |
|
||||
|
||||
### 4. Verificar Conformidade SOLID
|
||||
|
||||
Para cada princípio, aplicar o checklist:
|
||||
|
||||
```
|
||||
□ S — Este arquivo tem apenas 1 razão para mudar?
|
||||
□ O — Posso adicionar nova variação sem editar este arquivo?
|
||||
□ L — Subtipos são substituíveis pelo tipo base?
|
||||
□ I — Interfaces são específicas para cada consumidor?
|
||||
□ D — Lógica de negócio depende de abstrações, não de implementações?
|
||||
```
|
||||
|
||||
### 5. Mapear Oportunidades de Padrão
|
||||
|
||||
Cruzar smells detectados com o guia de decisão:
|
||||
|
||||
```
|
||||
switch crescente → Strategy
|
||||
criação condicional → Factory Method
|
||||
construção complexa → Builder
|
||||
comportamento por estado → State
|
||||
pipeline de validações → Chain of Responsibility
|
||||
comportamento adicional → Decorator
|
||||
interface incompatível → Adapter
|
||||
subsistema complexo → Facade
|
||||
notificação de mudanças → Observer
|
||||
```
|
||||
|
||||
### 6. Gerar Relatório
|
||||
|
||||
Produzir relatório no formato:
|
||||
|
||||
```markdown
|
||||
# Diagnóstico de Code Smells — [nome do módulo]
|
||||
|
||||
## Resumo
|
||||
- **Arquivos analisados:** N
|
||||
- **Smells encontrados:** N
|
||||
- **Violações SOLID:** N
|
||||
- **Padrões recomendados:** N
|
||||
|
||||
## Smells Detectados
|
||||
|
||||
### 🔴 Crítico
|
||||
| Arquivo | Smell | Linha(s) | Ação Recomendada |
|
||||
|---------|-------|----------|-----------------|
|
||||
|
||||
### 🟡 Moderado
|
||||
| Arquivo | Smell | Linha(s) | Ação Recomendada |
|
||||
|---------|-------|----------|-----------------|
|
||||
|
||||
### 🟢 Baixo
|
||||
| Arquivo | Smell | Linha(s) | Ação Recomendada |
|
||||
|---------|-------|----------|-----------------|
|
||||
|
||||
## Violações SOLID
|
||||
| Princípio | Arquivo | Descrição | Severidade |
|
||||
|-----------|---------|-----------|------------|
|
||||
|
||||
## Design Patterns Recomendados
|
||||
| Problema | Padrão | Justificativa | Esforço |
|
||||
|----------|--------|---------------|---------|
|
||||
|
||||
## Plano de Ação (priorizado)
|
||||
1. [Crítico] ...
|
||||
2. [Crítico] ...
|
||||
3. [Moderado] ...
|
||||
```
|
||||
|
||||
## Critérios de Severidade
|
||||
|
||||
| Severidade | Critério |
|
||||
|------------|----------|
|
||||
| 🔴 Crítico | Violação SOLID + acoplamento alto + afeta 3+ arquivos |
|
||||
| 🟡 Moderado | Code smell isolado + afeta 1-2 arquivos |
|
||||
| 🟢 Baixo | Melhoria estética + sem impacto funcional |
|
||||
|
||||
## Pós-condições
|
||||
|
||||
- Relatório salvo em `.agent/memoria/` ou entregue diretamente
|
||||
- Plano de ação priorizado gerado
|
||||
- `@ag-testes` notificado sobre trechos sem cobertura
|
||||
|
||||
## Referências
|
||||
|
||||
- Persona: `agents/ag-refatorar/persona`
|
||||
- Rule: `agents/ag-refatorar/rules/solid-compliance`
|
||||
- Rule: `agents/ag-refatorar/rules/design-patterns-pragmatico`
|
||||
- Refactoring.Guru — https://refactoring.guru/pt-br/refactoring/smells
|
||||
Loading…
Add table
Add a link
Reference in a new issue