# Troubleshoot - Buscar Soluções para Erros

Busca soluções para erros e problemas comuns no desenvolvimento .NET/Blazor/Azure.

## Uso

```
/morph-troubleshoot <descrição do erro ou keywords>
```

## Exemplos

```bash
/morph-troubleshoot blazor.web.js 404
/morph-troubleshoot DbContext second operation
/morph-troubleshoot Azure.Identity NU1605
/morph-troubleshoot Include retorna vazio
/morph-troubleshoot PendingModelChanges
```

## Workflow de 3 Níveis

### Nível 1: Índice JSON (Primário)

Primeiro, execute o comando CLI para buscar no índice de problemas conhecidos:

```bash
npx morph-spec troubleshoot {keywords}

# Opções
--category <cat>     # Filtrar por categoria (blazor, efcore, azure)
--verbose            # Mostrar conteúdo completo da solução
--list-categories    # Listar categorias disponíveis
```

### Nível 2: Grep nos Standards (Automático)

Se o índice retornar poucos resultados, o CLI automaticamente busca nos arquivos:
- `framework/standards/*.md`
- `.morph/standards/*.md`

### Nível 3: Web Search (Se necessário)

**IMPORTANTE:** Se os níveis 1 e 2 não encontrarem solução, use o tool **WebSearch** nativo do Claude Code para buscar nas seguintes fontes:

**Queries recomendadas:**

```
# GitHub Issues (.NET)
site:github.com/dotnet/aspnetcore {erro}
site:github.com/dotnet/efcore {erro}

# Stack Overflow
site:stackoverflow.com [blazor] {erro}
site:stackoverflow.com [entity-framework-core] {erro}
site:stackoverflow.com [azure] {erro}

# Documentação Microsoft
site:learn.microsoft.com {erro}
site:learn.microsoft.com/azure {erro}
```

**Exemplo de uso do WebSearch:**

Se o usuário perguntar sobre um erro de SignalR:
1. Primeiro: `npx morph-spec troubleshoot SignalR connection`
2. Se não encontrar: WebSearch com `site:github.com/dotnet/aspnetcore SignalR connection closed`
3. Retornar links relevantes formatados

## Categorias Disponíveis

| Categoria | Descrição |
|-----------|-----------|
| `blazor` | Blazor Server/WASM, componentes, lifecycle, renderização |
| `efcore` | Entity Framework Core, DbContext, migrations, queries |
| `azure` | Azure services, deploy, identity, Key Vault |
| `auth` | Authentication, authorization, tokens, claims |
| `deploy` | Deployment, CI/CD, pipelines, containers |

## Formato de Output

Ao encontrar uma solução, apresente no seguinte formato:

```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

🔴 CRITICAL: {título do problema}

📁 Arquivo: {caminho do arquivo com solução}
📂 Seção: {seção específica}

❌ Erro:
   {padrão de erro que identifica o problema}

💡 Causa:
   {explicação da causa raiz}

✅ Solução:
   {código ou passos para resolver}

📚 Ver completo: morph-spec read {arquivo}

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
```

## Troubleshooting Rápido

### Problemas Mais Comuns

| Erro | Solução Rápida |
|------|----------------|
| `blazor.web.js 404` | `<RequiresAspNetWebAssets>true</RequiresAspNetWebAssets>` |
| `PendingModelChangesWarning` | `dotnet ef migrations add <Name>` antes de update |
| `DbContext second operation` | Usar `IDbContextFactory` para background tasks |
| `Include() vazio` | Usar `HasMany(x => x.Nav)` em vez de `HasMany<T>()` |
| `Azure.Identity NU1605` | Especificar versão explícita no .csproj |
| `Key Vault não carrega` | Não condicionar ao ambiente (IsDevelopment) |
| `DefaultAzureCredential lento` | Desabilitar credenciais não usadas |

---

**Input:** $ARGUMENTS
