From impact-analysis
Use when planning a specific implementation and you need to understand current pain points, affected code flows, and risks before writing any code. Use when the user says "quero implementar", "preciso mudar", "vou alterar", "quero refatorar", "preciso adicionar", or describes a feature, bugfix, or refactor that touches existing code. Also use when the user asks "o que vai ser afetado?", "qual o impacto?", "o que preciso cuidar?", or wants to understand dependencies and side effects before making changes. Triggers on: impact analysis, pre-implementation, dependency mapping, affected flows, breaking changes, risk assessment, code discovery.
How this skill is triggered — by the user, by Claude, or both
Slash command
/impact-analysis:impact-analysisThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Skill que conduz uma análise profunda do código existente antes de qualquer implementação.
Skill que conduz uma análise profunda do código existente antes de qualquer implementação. Usa busca semântica via LSP/Serena para mapear dependências, faz perguntas assertivas sobre as partes envolvidas, e entrega diagramas Mermaid dos fluxos afetados + checklist de cuidados.
Nunca implemente antes de entender o que vai quebrar.
digraph impact_flow {
rankdir=TB;
node [shape=box, style=rounded];
start [label="Usuário descreve a implementação", shape=doublecircle];
clarify [label="1. Clarificar escopo e intenção"];
discover [label="2. Descoberta semântica (LSP/Serena)"];
questions [label="3. Perguntas assertivas"];
diagram [label="4. Diagramas Mermaid dos fluxos afetados"];
risks [label="5. Checklist de riscos e cuidados"];
deliver [label="6. Entrega consolidada", shape=doublecircle];
start -> clarify;
clarify -> discover;
discover -> questions;
questions -> discover [label="respostas revelam\nnova área afetada", style=dashed];
questions -> diagram;
diagram -> risks;
risks -> deliver;
}
Antes de tocar em qualquer ferramenta, entenda o que o usuário quer.
Pergunte:
Não avance sem respostas claras. Se o usuário for vago, reformule a pergunta com exemplos concretos.
Use ferramentas LSP e Serena para mapear o código envolvido. Não leia arquivos inteiros — use busca simbólica inteligente.
1. get_symbols_overview → Visão geral dos símbolos no arquivo/módulo alvo
2. find_symbol → Localizar classes, métodos, interfaces mencionados pelo usuário
3. find_referencing_symbols → Quem CHAMA ou DEPENDE desses símbolos?
4. find_symbol (expandir) → Ler bodies apenas dos símbolos críticos
5. search_for_pattern → Buscar padrões quando nome exato é desconhecido
| Dimensão | Ferramenta | Objetivo |
|---|---|---|
| Entry points | find_symbol | Onde o fluxo começa (controllers, handlers, endpoints) |
| Dependências diretas | find_referencing_symbols | Quem chama o código que vai mudar |
| Dependências inversas | find_referencing_symbols | Quem o código alterado chama |
| Interfaces/Contratos | get_symbols_overview | Interfaces que podem quebrar |
| Testes existentes | search_for_pattern | Testes que cobrem o código afetado |
| Configurações | search_for_pattern | Config files, env vars, feature flags relacionados |
get_symbols_overview resolveCom base no que descobriu na Fase 2, faça perguntas específicas e fundamentadas ao usuário.
[Contexto do que encontrou] → [Pergunta específica] → [Por que importa]
Exemplos:
Encontrei que
OrderService.ProcessPayment()é chamado por 3 controllers diferentes e depende deIPaymentGateway. A mudança que você quer fazer altera a assinatura desse método ou só a implementação interna? Isso define se precisamos atualizar os 3 consumers ou não.
Vi que
UserRepositoryimplementaICacheablee tem um decorator de cache com TTL de 5min. A alteração no modelo de User vai invalidar entradas de cache existentes? Se sim, precisamos de uma estratégia de invalidação no deploy.
| Categoria | Exemplo |
|---|---|
| Contrato | A interface pública muda? Quem consome essa API? |
| Estado | Há cache, sessão ou estado persistido que será afetado? |
| Concorrência | Múltiplos consumers acessam isso? Há race conditions? |
| Dados | Precisa de migração de banco? Dados existentes são compatíveis? |
| Integrações | Serviços externos dependem desse contrato? |
| Testes | Os testes existentes cobrem o cenário alterado? |
| Rollback | Se der problema em produção, como reverter? |
Se uma resposta do usuário revela uma nova área afetada que não foi mapeada:
Gere diagramas que mostrem visualmente o que será afetado. Use os tipos de diagrama apropriados para cada situação.
graph TD
A[Controller] --> B[Service]
B --> C[Repository]
B --> D[External API]
C --> E[(Database)]
style B fill:#ff6b6b,stroke:#333,color:#fff
style C fill:#ffa07a,stroke:#333
Legenda:
sequenceDiagram
participant Client
participant Controller
participant Service
participant DB
Client->>Controller: Request
Controller->>Service: Process()
Note over Service: ⚠️ Lógica alterada aqui
Service->>DB: Query
DB-->>Service: Result
Service-->>Controller: Response
Controller-->>Client: 200 OK
Use quando a mudança envolve alteração de interfaces, herança, ou composição.
Quando a mudança é significativa, mostre dois diagramas lado a lado:
Isso torna o impacto visualmente óbvio.
Entregue uma checklist estruturada baseada na análise.
## 🔍 Análise de Impacto: [Nome da Implementação]
### Resumo
- **Escopo**: [1-2 frases]
- **Arquivos afetados**: [contagem]
- **Nível de risco**: [Baixo | Médio | Alto | Crítico]
### Símbolos Diretamente Alterados
| Símbolo | Arquivo | Tipo de Mudança |
|---------|---------|-----------------|
| `NomeClasse.Metodo()` | `path/file.cs` | Assinatura alterada |
### Dependências Afetadas (Efeito Cascata)
| Símbolo Dependente | Arquivo | Impacto |
|---------------------|---------|---------|
| `Consumer.Call()` | `path/other.cs` | Precisa atualizar chamada |
### [Diagramas Mermaid aqui]
### ⚠️ Cuidados Obrigatórios
- [ ] **Breaking change**: [descrever se aplica]
- [ ] **Migração de dados**: [descrever se aplica]
- [ ] **Cache invalidation**: [descrever se aplica]
- [ ] **Feature flag**: [recomendar se necessário]
- [ ] **Backward compatibility**: [descrever estratégia]
- [ ] **Testes a atualizar**: [listar testes afetados]
- [ ] **Configurações**: [env vars, config files a alterar]
- [ ] **Rollback plan**: [como reverter se der problema]
### 📋 Ordem de Implementação Sugerida
1. [Passo mais seguro primeiro]
2. [Próximo passo]
3. [...]
Esta skill funciona melhor com acesso a:
Se LSP/Serena não estiver disponível, use Grep + Glob como fallback para busca por padrões, mas avise o usuário que a análise será menos precisa.
npx claudepluginhub xamuavila/golden-skills --plugin impact-analysisAnalyzes impact of changes to files, APIs, components, or models. Provides dependency analysis, risk assessment, breaking changes, migration checklist, and test coverage gaps before modifications.
Analyzes code change impact and blast radius using OntoIndex. Answers what will break before editing, with dependency depth and risk assessment.