jarvis-ai-framework 5.7.0 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,60 @@
1
+ # Caso investigar
2
+
3
+ O `/eng.debug` recebeu um **sintoma concreto**: chave ou URL do card, mensagem de erro, stack trace ou "X acontece quando Y". Aqui o objetivo é achar a causa de **um** bug e propor a correção, sem mexer em nada. Siga o método e a política de acesso do [`SKILL.md`](../SKILL.md).
4
+
5
+ ## 1. Coletar o sintoma
6
+
7
+ - **Card:** se `TASK_MANAGER` estiver preenchido, leia o card no board (só leitura). Sem acesso, peça ao usuário para colar o conteúdo. Nunca comente no card.
8
+ - Do card ou da mensagem, registre: título, passos para reproduzir, ambiente (local, staging, produção), serviços citados, identificador de correlação (correlation ID ou request ID) e logs ou stack trace anexados.
9
+ - Pergunte só o que falta: identificador de correlação, frequência (sempre, às vezes, uma vez), mudança recente (deploy, feature flag, migração, infraestrutura), logs não anexados.
10
+
11
+ ## 2. Ler o código antes de levantar hipóteses
12
+
13
+ Obrigatório: hipótese sem leitura de código é especulação.
14
+
15
+ 1. **Ponto de entrada:** com arquivo:linha no stack trace, leia ao redor dessa linha; só com a rota, a fila ou o nome da função, localize o handler buscando pelo nome nos repositórios do workspace.
16
+ 2. **Leia o fluxo:** quem recebe (handler, consumidor, job), quem processa (serviço, regra de negócio) e o ponto exato do erro (o que a linha faz e que estado espera).
17
+ 3. **O que procurar:**
18
+
19
+ | O que procurar | Por que importa |
20
+ |----------------|-----------------|
21
+ | Tratamento de erro ausente ou genérico | Pode estar engolindo o erro real |
22
+ | Chamada a outro serviço sem tempo limite | Bug intermitente por lentidão |
23
+ | Operação assíncrona sem espera ou sem tratamento | Condição de corrida ou erro perdido |
24
+ | Validação de entrada ausente | Dado inválido chegando na camada errada |
25
+ | Dependência de estado externo (cache, banco, outro serviço) | Falha intermitente por estado inconsistente |
26
+ | Identificador de correlação não repassado | Rastreio entre serviços vira trabalho manual |
27
+
28
+ 4. **Registre o que leu** (vai para "Código lido" do relatório): arquivo:linha, fluxo e o trecho mais suspeito (até 10 linhas). Sem acesso ao repositório, peça o trecho ao usuário.
29
+
30
+ ## 3. Hipóteses e cruzamento de serviços
31
+
32
+ - Levante as hipóteses como diz o método do `SKILL.md`.
33
+ - **Se o bug cruza serviços** (o usuário cita outro serviço; o stack trace tem URL de outro serviço, nome de fila ou erro de cliente HTTP; funciona isolado e falha no fluxo completo; falha intermitente que some na retentativa) **e** `eng-backend-microservices-trace` está registrada em `BACKEND_SPECIALIZATIONS`: chame-a com `{serviço-de-entrada} {sintoma-ou-chave}`. As hipóteses rankeadas do `ms-trace-report.md` substituem as suas, e a investigação segue pela fronteira de maior risco. Sem a especialização, aplique [`fronteiras-entre-componentes.md`](fronteiras-entre-componentes.md) à mão.
34
+
35
+ ## 4. Plano de investigação e evidências
36
+
37
+ - Monte um plano incremental e seguro: logs e métricas a observar, consultas sem risco, testes que o usuário pode rodar. Diga sempre o que é só leitura e o que exigiria alterar código, configuração ou dados (e, então, em que ambiente, pela política de acesso).
38
+ - A cada evidência, atualize as hipóteses (descartadas, fortalecidas). Ao convergir, explique o mecanismo do bug, por que não aparecia antes (se for o caso) e o impacto em outros fluxos.
39
+
40
+ ## 5. Correção proposta
41
+
42
+ Só com evidência razoável:
43
+
44
+ - Descreva a mudança, os componentes afetados e os testes para depois dela.
45
+ - Correção arriscada: proponha uma alternativa mais conservadora, um contorno temporário e como fazer deploy e rollback.
46
+
47
+ ## 6. Próximo passo: `/eng.work` ou `/eng.plan`
48
+
49
+ **Vá direto ao `/eng.work`** só se **tudo** for verdade: uma única correção clara, impacto cirúrgico (um arquivo, uma função), sem risco de efeito colateral, correção trivial (ex.: valor errado, condição invertida). Diga ao usuário que o `/eng.plan` está sendo pulado e por quê.
50
+
51
+ **Passe pelo `/eng.plan`** se **qualquer** um for verdade: mais de uma abordagem com trade-offs; mais de um componente ou serviço; risco de regressão; causa com decisão de arquitetura; mudança de infraestrutura, banco ou configuração; categoria `BUG-CRÍTICO` ou `SEGURANÇA`. Neste caso, grave também `$SESSIONS_DIR/eng/{TASK_MANAGER_KEY}/architecture.md` no template `templates/engineering/architecture-template.md`, na forma curta do tipo `bugfix` (contexto, causa raiz, estado atual e proposto, componentes, riscos, testes) e com as alternativas de correção como **Questões em Aberto**. É esse arquivo que o `/eng.plan` exige.
52
+
53
+ ## 7. Relatório
54
+
55
+ Grave `$SESSIONS_DIR/eng/{TASK_MANAGER_KEY}/debug-report.md` no template `templates/engineering/debug-report-template.md`, sempre, com qualquer veredito:
56
+
57
+ - **Teste de regressão:** descreva, com a base `eng-qa` (tema 5, Automação de Testes) e a especialização de `QA_SPECIALIZATIONS`, se houver, o teste que reproduz o bug (falha antes da correção, passa depois, cobre o caso que causou o bug). Ele é escrito no `/eng.work`.
58
+ - **Plano de validação:** testes antes do deploy, passos em staging, o que observar depois (logs com o identificador de correlação, métricas, alertas que deveriam ter disparado).
59
+ - **Critério de resolvido:** comportamento confirmado nos passos de reprodução e sem nova ocorrência por 24h (P0), 48h (P1) ou 1 semana (P2).
60
+ - **Débitos e melhorias:** observabilidade, tratamento de erro, tempo limite, retentativa, fila de falhas, identificador de correlação (regra de `eng-rules.md`), testes que teriam evitado o bug. Estruture cada um com a base `eng-qa` (tema 14, Gestão de Testes e de Defeitos) como **card pronto** (`DÉBITO-TÉCNICO P{0-3}`, vinculado ao `{TASK_MANAGER_KEY}`). Separe o que entra na correção atual do que fica para depois.
@@ -0,0 +1,67 @@
1
+ # Caso varrer
2
+
3
+ O `/eng.debug` recebeu um **escopo sem sintoma**: pasta, módulo, `--all` ou um pedido como "quais os riscos de…". Aqui o objetivo é achar **suspeitos** (bugs latentes, falhas de segurança, problemas de performance, débito técnico) e priorizá-los, sem mexer em nada. Siga a política de acesso do [`SKILL.md`](../SKILL.md). Usos típicos: entrar num projeto legado, revisão depois de um incidente, check-up periódico, preparação para um refactor grande ou análise de risco antes de uma mudança crítica.
4
+
5
+ ## 1. Escopo
6
+
7
+ - Confirme o escopo: pasta, módulo, `--all` (todos os repositórios do workspace; em `WORKSPACE_MODE=workspace`, só as subpastas com `.git/`, sem a pasta da IDE, `.jarvis/`, `.vscode/` e `node_modules/`).
8
+ - Se não estiver claro, pergunte (uma pergunta por vez): o propósito do módulo, as áreas críticas (autenticação, pagamentos, dados sensíveis), áreas com problemas conhecidos e a prioridade (bugs funcionais, performance, segurança).
9
+ - Identifique a stack pelos manifestos (`package.json`, `pyproject.toml`, `go.mod`, `pom.xml`…) e pelo `CDD-MIND-MAP.md`, e aplique a regra de especializações da área.
10
+
11
+ ## 2. Sequência ou paralelo
12
+
13
+ Conte os arquivos de código do escopo (sem dependências instaladas nem arquivos gerados). Com `--all` **ou mais de 200 arquivos**, pergunte com `AskUserQuestion`: **"Varrer em sequência ou em paralelo?"** — **Em sequência (padrão)** / **Em paralelo** (mais rápido; um subagente por categoria, no máximo 4; custo maior em tokens). Abaixo disso, varra em sequência sem perguntar. Em paralelo, cada subagente recebe o escopo, uma categoria e esta política de acesso, e só lê.
14
+
15
+ ## 3. Verificações locais
16
+
17
+ Teste e lint locais rodam livres (política de acesso): use os comandos que o **projeto já define** (scripts do manifesto, `Makefile`), sem instalar nada. Sem comando definido, registre "não configurado" no relatório. Nada que altere estado, e nada em produção.
18
+
19
+ ## 4. O que procurar
20
+
21
+ Busque por padrão de risco, na linguagem do projeto, e confirme cada achado lendo o trecho (achado não lido não entra):
22
+
23
+ | Categoria | Sinais |
24
+ |-----------|--------|
25
+ | Bugs funcionais | tratamento de erro vazio ou genérico; comparação frouxa onde a linguagem distingue; variável usada antes de ter valor; log de depuração esquecido em código de produção |
26
+ | Code smells | funções ou arquivos muito grandes; duplicação; acoplamento alto; complexidade alta |
27
+ | Segurança | consulta ou comando montado concatenando entrada; HTML montado com entrada sem sanitizar; segredo no código; endpoint sem autenticação |
28
+ | Performance | consultas dentro de laços (N+1); listas sem paginação; laços aninhados sobre dados grandes; recursos abertos sem fechar ou ouvintes sem remover |
29
+ | Débito técnico | TODO, FIXME e HACK; código comentado; dependências desatualizadas ou com vulnerabilidade conhecida (pela ferramenta do projeto) |
30
+ | Arquitetura | separação de responsabilidades, estrutura de pastas, modularidade, consistência de padrões |
31
+
32
+ ## 5. Classificar e priorizar
33
+
34
+ | Categoria | Descrição |
35
+ |-----------|-----------|
36
+ | `BUG-CRÍTICO` | Afeta produção, segurança ou causa perda de dados |
37
+ | `BUG-ALTO` | Quebra funcionalidade importante |
38
+ | `BUG-MÉDIO` | Comportamento inesperado não crítico |
39
+ | `BUG-BAIXO` | Caso de borda, problema visual menor |
40
+ | `CODE-SMELL` | Código difícil de manter |
41
+ | `DÉBITO-TÉCNICO` | Código desatualizado, falta de testes |
42
+ | `SEGURANÇA` | Vulnerabilidade potencial |
43
+ | `PERFORMANCE` | Lentidão ou uso excessivo de recursos |
44
+
45
+ **Severidade** = impacto × probabilidade × esforço de correção (cada um de 1 a 5).
46
+
47
+ | Prioridade | Critério |
48
+ |------------|----------|
49
+ | P0 | Severidade ≥ 60, `BUG-CRÍTICO` ou `SEGURANÇA` |
50
+ | P1 | Severidade ≥ 40, `BUG-ALTO` |
51
+ | P2 | Severidade ≥ 20, `BUG-MÉDIO` ou `CODE-SMELL` |
52
+ | P3 | Severidade < 20, `BUG-BAIXO` ou `DÉBITO-TÉCNICO` |
53
+
54
+ Não relate falso positivo sem validar, nem severidade sem análise. Com mais de 100 suspeitos, detalhe P0 e P1 e liste o resto num anexo, sugerindo varrer por áreas.
55
+
56
+ ## 6. Relatório
57
+
58
+ Grave o relatório no template `templates/engineering/bug-audit-report-template.md`:
59
+
60
+ - com chave: `$SESSIONS_DIR/eng/{TASK_MANAGER_KEY}/bug-audit-report.md`;
61
+ - sem chave: calcule **uma vez** o nome `bug-audit-{AAAAMMDD-HHMMSS}`, guarde-o e use-o em todos os arquivos e na mensagem final: `$SESSIONS_DIR/eng/{nome}/bug-audit-report.md`.
62
+
63
+ Cada suspeito P0 e P1 (e os demais, se o usuário pedir) traz o **card pronto**, estruturado com a base `eng-qa` (tema 14, Gestão de Testes e de Defeitos): título, tipo, prioridade, labels, comportamento atual × esperado, localização, impacto e sugestão de correção. O comando **não abre** os cards.
64
+
65
+ ## 7. Depois do relatório
66
+
67
+ Ofereça com `AskUserQuestion` investigar um suspeito (os P0 primeiro): o escolhido segue no [caso investigar](caso-investigar.md), no mesmo comando, e ganha o próprio `debug-report.md`. Sugira abrir os cards P0 e P1 no board e priorizar os P2 e P3 no backlog.
@@ -0,0 +1,36 @@
1
+ # Fronteiras entre componentes
2
+
3
+ Quando o sistema tem várias partes encadeadas, o bug costuma estar numa **fronteira**: um componente entrega algo diferente do que o seguinte espera. Antes de propor correção, descubra **qual** fronteira falha.
4
+
5
+ ## Exemplos de fronteira
6
+
7
+ | Cadeia | Fronteiras |
8
+ |--------|------------|
9
+ | Serviço A → HTTP → Serviço B | requisição que sai de A; requisição que chega em B; resposta de volta |
10
+ | Produtor → fila → consumidor | mensagem publicada; mensagem consumida; o que acontece quando o consumo falha |
11
+ | Pipeline de CI → build → deploy | variáveis e segredos disponíveis em cada etapa; artefato gerado; artefato publicado |
12
+ | Interface → API → banco | dado enviado; dado validado; dado gravado |
13
+
14
+ ## Passo a passo
15
+
16
+ 1. **Desenhe a cadeia** do fluxo afetado, do ponto de entrada ao ponto em que o sintoma aparece. Use o código, não a memória: ache quem chama quem (rotas, clientes HTTP, publicação e consumo de mensagens, etapas do pipeline).
17
+ 2. **Para cada fronteira, confira:**
18
+ - o formato do que sai e do que chega (campos, tipos, nomes, versão do contrato);
19
+ - se a configuração e o ambiente chegam iguais dos dois lados (URL, variável, segredo, fuso, idioma);
20
+ - o que acontece em erro, demora ou falta de resposta (tempo limite, retentativa, fila de falhas, erro engolido);
21
+ - se o identificador de correlação passa adiante (é ele que liga os registros dos dois lados).
22
+ 3. **Junte evidência de onde quebra.** Pela leitura, compare o contrato dos dois lados. No ambiente local, se preciso, registre o que entra e sai em cada fronteira e rode uma vez (política de acesso do `SKILL.md`). Em produção, só leitura: logs e métricas que já existem.
23
+ 4. **Investigue só a fronteira que falha.** Com ela identificada, volte às hipóteses do `SKILL.md`.
24
+
25
+ ## Sinais típicos
26
+
27
+ | Sinal | Fronteira suspeita |
28
+ |-------|--------------------|
29
+ | Funciona isolado, falha no fluxo completo | contrato ou configuração entre os componentes |
30
+ | Falha intermitente que some na retentativa | tempo limite, concorrência, estado compartilhado |
31
+ | "Não chega" sem erro | erro engolido ou mensagem descartada sem fila de falhas |
32
+ | Funciona local, falha no pipeline | variável, segredo ou versão diferente no ambiente |
33
+
34
+ ## Quando há muitos serviços
35
+
36
+ Se o fluxo cruza microsserviços (HTTP e mensageria) e a especialização `eng-backend-microservices-trace` está registrada em `BACKEND_SPECIALIZATIONS`, o caso investigar do `/eng.debug` a usa para mapear a cadeia e rankear as hipóteses por fronteira.
@@ -0,0 +1,34 @@
1
+ # Rastrear para trás
2
+
3
+ Quando o erro aparece fundo na pilha, corrigir onde ele explode trata o sintoma. A causa está onde o valor ruim **nasceu**. Esta técnica segue o valor de volta, chamada por chamada, até a origem.
4
+
5
+ ## Quando usar
6
+
7
+ - O erro acontece longe de onde o dado entrou (ex.: "valor vazio" ao gravar, mas o valor veio de três chamadas antes).
8
+ - Um valor inválido (vazio, nulo, no formato errado) chega a uma função que não deveria recebê-lo.
9
+ - Não está claro qual caminho do código levou até o erro.
10
+
11
+ ## Passo a passo
12
+
13
+ 1. **Observe o sintoma.** Anote a mensagem e o ponto exato (arquivo:linha) onde o erro aparece.
14
+ 2. **Ache a causa imediata.** Qual linha produziu o erro e com qual valor? Ex.: `salvar(registro)` falha porque `registro.id` está vazio.
15
+ 3. **Pergunte: quem chamou isto com esse valor?** Leia quem chama a função e de onde vem o argumento.
16
+ 4. **Continue subindo.** Repita a pergunta a cada nível até achar o ponto em que o valor deixou de ser válido, ou em que nunca foi validado.
17
+ 5. **Ache o gatilho original.** É ali que a correção vale: na origem, não no sintoma.
18
+
19
+ ```
20
+ salvar(registro) ← erro: id vazio
21
+ ← montarRegistro(entrada) ← id copiado de entrada.id
22
+ ← lerEntrada(requisicao) ← entrada.id nunca preenchido quando o campo vem com outro nome
23
+ ↑ gatilho original: corrigir aqui
24
+ ```
25
+
26
+ ## Quando não dá para seguir pela leitura
27
+
28
+ Se não for possível descobrir quem chamou só lendo o código, **no ambiente local** acrescente um registro temporário logo antes do ponto do erro, com o valor recebido e a pilha de chamadas (o recurso equivalente da linguagem). Rode uma vez, leia a saída e remova o registro. Em produção, não altere nada: peça os logs que já existem (política de acesso do `SKILL.md`).
29
+
30
+ ## Depois de achar a origem
31
+
32
+ - Corrija na origem.
33
+ - Considere validar também nas camadas por onde o valor passa (entrada, regra de negócio, gravação), para o mesmo erro não voltar por outro caminho.
34
+ - Descreva no relatório o caminho percorrido (do sintoma até a origem): é a evidência do veredito.
@@ -0,0 +1,81 @@
1
+ ---
2
+ # Card ou número de controle, se houver; sem chave, o nome da pasta da sessão.
3
+ task_key: {TASK-123 | bug-audit-AAAAMMDD-HHMMSS}
4
+
5
+ # Data da varredura (YYYY-MM-DD).
6
+ created_at: {YYYY-MM-DD}
7
+
8
+ # Escopo varrido: pasta, módulo ou --all.
9
+ escopo: {escopo}
10
+
11
+ # Como a varredura rodou. Opções: sequência | paralelo (com o número de subagentes)
12
+ execucao: {sequência | paralelo (N subagentes)}
13
+ ---
14
+
15
+ # Varredura: {escopo}
16
+
17
+ > Relatório do `/eng.debug` (caso varrer). Fica na sessão; o comando não abre nem comenta card. Cada suspeito traz o card pronto para o usuário abrir.
18
+
19
+ ## Resumo
20
+
21
+ - **Suspeitos:** {N} — P0: {N} · P1: {N} · P2: {N} · P3: {N}
22
+ - **Por categoria:** BUG-CRÍTICO {N} · BUG-ALTO {N} · BUG-MÉDIO {N} · BUG-BAIXO {N} · CODE-SMELL {N} · DÉBITO-TÉCNICO {N} · SEGURANÇA {N} · PERFORMANCE {N}
23
+ - **Verificações locais:** lint {ok | n problemas | não configurado} · testes {ok | n falhando | não configurados}
24
+ - **Fora do escopo ou não analisado:** {o que ficou de fora e por quê}
25
+
26
+ ## Suspeitos por prioridade
27
+
28
+ > Um suspeito é um problema provável, ainda não confirmado como bug. Para confirmar, investigue-o com o `/eng.debug` (caso investigar).
29
+
30
+ ### P0 — ação imediata
31
+
32
+ #### {n}. {título}
33
+
34
+ - **Categoria:** {BUG-CRÍTICO | SEGURANÇA | …}
35
+ - **Localização:** `{arquivo}:{linha}`
36
+ - **O que foi visto:** {trecho ou padrão encontrado}
37
+ - **Impacto:** {no usuário ou no negócio}
38
+ - **Sugestão de correção:** {como corrigir}
39
+
40
+ **Card pronto:**
41
+
42
+ ```
43
+ Título: {título claro}
44
+ Tipo: {Bug | Task | Security}
45
+ Prioridade: P0
46
+ Labels: bug-audit, {categoria}
47
+ Descrição:
48
+ Comportamento atual: {…}
49
+ Comportamento esperado: {…}
50
+ Localização: {arquivo}:{linha}
51
+ Impacto: {…}
52
+ Sugestão de correção: {…}
53
+ ```
54
+
55
+ ### P1 — próxima sprint
56
+
57
+ {mesma estrutura}
58
+
59
+ ### P2 — backlog
60
+
61
+ {mesma estrutura}
62
+
63
+ ### P3 — débito técnico
64
+
65
+ {mesma estrutura}
66
+
67
+ ## Áreas de risco
68
+
69
+ - **Áreas críticas sem testes:** {área}: {motivo}
70
+ - **Código complexo:** `{arquivo}`: {sinal}
71
+ - **Dependências com problema conhecido:** {dependência, versão atual, versão segura}
72
+
73
+ ## Recomendações
74
+
75
+ - **Curto prazo (1–2 sprints):** {…}
76
+ - **Médio prazo (3–6 meses):** {…}
77
+ - **Prevenção:** {testes, observabilidade, regras de lint, hooks}
78
+
79
+ ## Próximo passo
80
+
81
+ {Investigar o suspeito {n} com o `/eng.debug` (caso investigar) | abrir os cards P0 e P1 no board | nova varredura em {área}}
@@ -0,0 +1,95 @@
1
+ ---
2
+ # Card ou número de controle da tarefa (TASK_MANAGER do ENV.md; freelance = número de controle).
3
+ task_key: {TASK-123}
4
+
5
+ # Data em que a investigação foi feita (YYYY-MM-DD).
6
+ created_at: {YYYY-MM-DD}
7
+
8
+ # O que o usuário passou ao /eng.debug: chave ou URL do card, mensagem de erro, stack trace ou descrição.
9
+ entrada: {entrada}
10
+
11
+ # Veredito da investigação (skill eng-global-investigation). Opções: confirmado | provável | inconclusivo
12
+ veredito: {confirmado | provável | inconclusivo}
13
+
14
+ # Etapas usadas do orçamento pela urgência do context.md (alta 5 | normal 10 | baixa 15).
15
+ orcamento: {usadas}/{teto}
16
+ ---
17
+
18
+ # Investigação: {título curto do bug}
19
+
20
+ > Relatório do `/eng.debug` (caso investigar). Fica na sessão; nada daqui é publicado no card.
21
+
22
+ ## Sintoma
23
+
24
+ {O que acontece, o que era esperado e em que condição. Ambiente (local, staging, produção), frequência (sempre, às vezes, uma vez) e mudança recente, se houver.}
25
+
26
+ **Reprodução:**
27
+
28
+ 1. {passo}
29
+ 2. {passo}
30
+
31
+ {Se não foi reproduzido: o que falta para reproduzir.}
32
+
33
+ ## Código lido
34
+
35
+ | Arquivo:linha | O que faz | O que chamou atenção |
36
+ |---------------|-----------|----------------------|
37
+ | `{caminho}:{linha}` | {papel no fluxo} | {observação} |
38
+
39
+ **Fluxo lido:** {entrada} → {camada} → {dependências}
40
+
41
+ ## Hipóteses
42
+
43
+ | # | Hipótese | Evidência (trecho lido) | Como confirmar ou descartar | Situação |
44
+ |---|----------|-------------------------|-----------------------------|----------|
45
+ | 1 | {causa provável e por quê} | `{arquivo}:{linha}` | {verificação} | {confirmada \| descartada \| aberta} |
46
+
47
+ ## Evidências
48
+
49
+ {O que foi verificado e o resultado: leitura, reprodução, logs ou métricas (produção só leitura). Inclua o caminho do sintoma até a origem, quando houver.}
50
+
51
+ ## Veredito
52
+
53
+ **{confirmado | provável | inconclusivo}** — {causa em uma ou duas frases}
54
+
55
+ {Passe crítico: o que poderia derrubar esta conclusão e por que ela se mantém (ou por que foi rebaixada).}
56
+
57
+ ## Correção proposta
58
+
59
+ **Preferida:** {mudança, arquivos e componentes afetados}
60
+
61
+ **Alternativas** (se houver): {alternativa e trade-off}
62
+
63
+ **Risco:** {regressão, migração, performance, segurança}
64
+
65
+ ## Teste de regressão
66
+
67
+ {Teste que reproduz o bug: deve falhar antes da correção e passar depois, cobrindo o caso específico que causou o bug. Descrito aqui e escrito no `/eng.work`, no framework de testes do projeto.}
68
+
69
+ ## Plano de validação
70
+
71
+ - **Antes do deploy:** {testes do fluxo afetado}
72
+ - **Em staging:** {passos de reprodução}
73
+ - **Depois do deploy:** {logs, métricas e alertas a observar}
74
+
75
+ ## Critério de resolvido
76
+
77
+ Comportamento esperado confirmado nos passos de reprodução e sem nova ocorrência por **{24h (P0) | 48h (P1) | 1 semana (P2)}**.
78
+
79
+ ## Débitos e melhorias
80
+
81
+ Cards prontos para o usuário abrir no board (o comando não abre card):
82
+
83
+ ### {título do card}
84
+
85
+ - **Tipo:** {Bug | Task | Security}
86
+ - **Prioridade:** {P0 | P1 | P2 | P3}
87
+ - **Localização:** `{arquivo}:{linha}`
88
+ - **Comportamento atual:** {…}
89
+ - **Comportamento esperado:** {…}
90
+ - **Ambiente:** {…}
91
+ - **Vinculado a:** {TASK-123}
92
+
93
+ ## Próximo passo
94
+
95
+ {`/eng.work {TASK-123}` (correção trivial: um arquivo, sem alternativa) | `/eng.plan {TASK-123}` (alternativas ou risco; o `architecture.md` curto foi gravado na sessão) | coletar mais dados: {quais}}
@@ -30,8 +30,7 @@ workflows/
30
30
  ├── eng.pre-pr.md # Validação pré-PR
31
31
  ├── eng.pr.md # Criação de PR
32
32
  ├── eng.review.md # Revisão
33
- ├── eng.debug.md # Debug/incident
34
- ├── eng.bug-audit.md # Auditoria de bugs
33
+ ├── eng.debug.md # Debug: investiga um bug ou varre um escopo
35
34
  ├── eng.docs.md # Documentação (engenharia)
36
35
  ├── eng.create-ard.md # Criar ARD
37
36
  ├── eng.create-ard-from-code.md
@@ -88,14 +87,13 @@ workflows/
88
87
  | `eng.pre-pr.md` | Validação final antes do PR |
89
88
  | `eng.pr.md` | Criar branch, commit e Pull Request |
90
89
  | `eng.review.md` | Revisão de solução/PR |
91
- | `eng.debug.md` | Debug e investigação de incidentes |
90
+ | `eng.debug.md` | Investiga um bug ou varre um escopo atrás de problemas |
92
91
  | `eng.docs.md` | Atualizar documentação de engenharia |
93
92
  | `eng.create-ard.md` | Criar ARD (Architecture Review Document) |
94
93
  | `eng.create-ard-from-code.md` | Criar ARD a partir do código |
95
94
  | `eng.create-rfc.md` | Criar RFC (Request For Comments) |
96
95
  | `eng.build-tech-spec.md` | Criar especificação técnica |
97
96
  | `eng.breakdown-subtasks.md` | Quebrar tech spec em subtarefas |
98
- | `eng.bug-audit.md` | Auditoria e análise de bugs |
99
97
  | `eng.light-arch.md` | Design arquitetural leve |
100
98
  | `eng.rpa.robot.md` | Criar robô novo ou manter existente — análise, scaffolding, impl, docs, PR |
101
99
  | `eng.frontend-component.md` | Criar ou refatorar componente frontend com qualidade (design system vs remote, a11y, testes) |