Files
gh-wasabeef-claude-code-coo…/commands/analyze-dependencies.md
2025-11-30 09:05:43 +08:00

159 lines
4.5 KiB
Markdown

## Análise de Dependências
Analisa as dependências do projeto e avalia a saúde da arquitetura.
### Uso
```bash
/dependency-analysis [opções]
```
### Opções
- `--visual` : Exibe as dependências visualmente
- `--circular` : Detecta apenas dependências circulares
- `--depth <número>` : Especifica a profundidade da análise (padrão: 3)
- `--focus <caminho>` : Foca em um módulo/diretório específico
### Exemplos Básicos
```bash
# Análise completa das dependências do projeto
/dependency-analysis
# Detecção de dependências circulares
/dependency-analysis --circular
# Análise detalhada de um módulo específico
/dependency-analysis --focus src/core --depth 5
```
### Itens de Análise
#### 1. Matriz de Dependências
Exibe as dependências entre módulos de forma numerizada:
- Dependências diretas
- Dependências indiretas
- Profundidade das dependências
- Fan-in/Fan-out
#### 2. Detecção de Violações Arquiteturais
- Violações de camadas (camada inferior dependendo da superior)
- Dependências circulares
- Acoplamento excessivo (alta dependência)
- Módulos isolados
#### 3. Verificação de Conformidade com Clean Architecture
- Independência da camada de domínio
- Separação adequada da camada de infraestrutura
- Direção das dependências da camada de casos de uso
- Status da aplicação de interfaces
### Exemplo de Saída
```text
Relatório de Análise de Dependências
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📊 Resumo de Métricas
├─ Total de módulos: 42
├─ Média de dependências: 3.2
├─ Profundidade máxima de dependências: 5
└─ Dependências circulares: 2 detectadas
⚠️ Violações Arquiteturais
├─ [HIGH] src/domain/user.js → src/infra/database.js
│ └─ Camada de domínio depende diretamente da camada de infraestrutura
├─ [MED] src/api/auth.js ⟲ src/services/user.js
│ └─ Dependência circular detectada
└─ [LOW] src/utils/helper.js → 12 módulos
└─ Fan-out excessivo
✅ Ações Recomendadas
1. Introduzir interface UserRepository
2. Redesenhar as responsabilidades do serviço de autenticação
3. Dividir funções auxiliares por funcionalidade
📈 Gráfico de Dependências
[Exibe diagrama visual de dependências em ASCII art]
```
### Exemplos de Uso Avançado
```bash
# Verificação automática em pipeline CI/CD
/dependency-analysis --circular --fail-on-violation
# Definição e verificação de regras arquiteturais
/dependency-analysis --rules .architecture-rules.yml
# Rastreamento de mudanças nas dependências ao longo do tempo
/dependency-analysis --compare HEAD~10
```
### Exemplo de Arquivo de Configuração (.dependency-analysis.yml)
```yaml
rules:
- name: "Domain Independence"
source: "src/domain/**"
forbidden: ["src/infra/**", "src/api/**"]
- name: "API Layer Dependencies"
source: "src/api/**"
allowed: ["src/domain/**", "src/application/**"]
forbidden: ["src/infra/**"]
thresholds:
max_dependencies: 8
max_depth: 4
coupling_threshold: 0.7
ignore:
- "**/test/**"
- "**/mocks/**"
```
### Ferramentas de Integração
- `madge` : Visualização de dependências JavaScript/TypeScript
- `dep-cruiser` : Validação de regras de dependências
- `nx` : Gerenciamento de dependências em monorepo
- `plato` : Análise integrada de complexidade e dependências
### Integração com Claude
```bash
# Análise incluindo package.json
cat package.json
/analyze-dependencies
「Analise os problemas de dependências deste projeto」
# Combinando com código-fonte de módulo específico
ls -la src/core/
/analyze-dependencies --focus src/core
「Avalie em detalhes as dependências do módulo core」
# Comparação com documentação de arquitetura
cat docs/architecture.md
/analyze-dependencies --visual
「Verifique a divergência entre o documento de design e a implementação」
```
### Observações
- **Pré-requisitos**: Deve ser executado na raiz do projeto
- **Limitações**: Em projetos grandes, a análise pode demorar
- **Recomendação**: Se dependências circulares forem encontradas, considere ação imediata
### Melhores Práticas
1. **Análise regular**: Verifique a saúde das dependências semanalmente
2. **Formalização de regras**: Gerencie regras arquiteturais em arquivos de configuração
3. **Melhoria gradual**: Evite refatorações em larga escala, melhore progressivamente
4. **Rastreamento de métricas**: Monitore a complexidade das dependências ao longo do tempo