@fontdata/ai-harness 2.0.0 → 2.1.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.
Files changed (131) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +9 -2
  3. package/LICENSE +21 -0
  4. package/README.md +174 -140
  5. package/{src → dist}/catalog.js +5 -12
  6. package/dist/cli.js +174 -0
  7. package/dist/comentarios/command.js +74 -0
  8. package/dist/comentarios/instalar.js +33 -0
  9. package/dist/config/config.js +98 -0
  10. package/dist/contratos/artefatos.js +284 -0
  11. package/dist/contratos/eventos.js +103 -0
  12. package/dist/doctor/checks.js +424 -0
  13. package/dist/init.js +240 -0
  14. package/dist/install/atomic.js +51 -0
  15. package/dist/install/flags.js +99 -0
  16. package/dist/install/hooks.js +47 -0
  17. package/dist/install/lock.js +39 -0
  18. package/dist/install/plan.js +209 -0
  19. package/dist/install/selection.js +77 -0
  20. package/dist/install/settings.js +108 -0
  21. package/dist/memoria/indice.js +195 -0
  22. package/dist/migrar/migrar.js +426 -0
  23. package/dist/rastro/command.js +46 -0
  24. package/dist/run.js +86 -0
  25. package/dist/types.js +1 -0
  26. package/dist/update/legado.js +74 -0
  27. package/dist/update/update.js +284 -0
  28. package/package.json +17 -8
  29. package/templates/CLAUDE.md +59 -30
  30. package/templates/agents/auditor-plano.md +42 -0
  31. package/templates/agents/investigador.md +32 -0
  32. package/templates/agents/qa.md +44 -0
  33. package/templates/agents/revisor-testes.md +40 -0
  34. package/templates/catalog.json +24 -61
  35. package/templates/commands/atualizar-deps.md +43 -9
  36. package/templates/commands/diagrama.md +35 -10
  37. package/templates/commands/gerar-env.md +39 -10
  38. package/templates/commands/gerar-testes.md +42 -10
  39. package/templates/commands/git-commit-push.md +0 -0
  40. package/templates/commands/onboarding.md +44 -15
  41. package/templates/commands/refatorar.md +50 -10
  42. package/templates/commands/revisar-pr.md +56 -12
  43. package/templates/commands/sincronizar-claude-md.md +177 -9
  44. package/templates/commands/versao.md +0 -0
  45. package/templates/hooks/comentarios/check.mjs +210 -0
  46. package/templates/hooks/hooks.json +34 -0
  47. package/templates/hooks/lembrete.mjs +29 -0
  48. package/templates/hooks/lib/config.mjs +40 -0
  49. package/templates/hooks/lib/hook.mjs +85 -0
  50. package/templates/hooks/lib/rastro.mjs +130 -0
  51. package/templates/hooks/lib/segredos.mjs +91 -0
  52. package/templates/hooks/lib/temas.mjs +111 -0
  53. package/templates/hooks/lib/trabalho.mjs +94 -0
  54. package/templates/hooks/proteger-contratos.mjs +56 -0
  55. package/templates/hooks/segredo-no-commit.mjs +76 -0
  56. package/templates/hooks/sem-jargao.mjs +58 -0
  57. package/templates/hooks/task-so-fecha-verde.mjs +33 -0
  58. package/templates/legado/manifesto.json +1267 -0
  59. package/templates/rules/comentarios.md +166 -0
  60. package/templates/rules/harness-projeto.md +41 -0
  61. package/templates/skills/auditar-performance/SKILL.md +53 -0
  62. package/templates/skills/auditar-performance/references/pontos-quentes.md +35 -0
  63. package/templates/skills/auditar-performance/templates/relatorios/CLIENTE.md +26 -0
  64. package/templates/skills/auditar-performance/templates/relatorios/TECNICO.md +27 -0
  65. package/templates/skills/auditar-seguranca/SKILL.md +67 -0
  66. package/templates/skills/auditar-seguranca/references/seguranca-tecnica.md +23 -0
  67. package/templates/skills/auditar-seguranca/templates/relatorios/CLIENTE.md +30 -0
  68. package/templates/skills/auditar-seguranca/templates/relatorios/TECNICO.md +38 -0
  69. package/templates/skills/auditar-ui/SKILL.md +64 -0
  70. package/templates/skills/auditar-ui/references/lentes.md +33 -0
  71. package/templates/skills/auditar-ui/templates/relatorios/CLIENTE.md +26 -0
  72. package/templates/skills/auditar-ui/templates/relatorios/TECNICO.md +31 -0
  73. package/templates/skills/evoluir-harness/SKILL.md +81 -0
  74. package/templates/skills/evoluir-harness/references/agent.md +83 -0
  75. package/templates/skills/evoluir-harness/references/auditoria.md +107 -0
  76. package/templates/skills/evoluir-harness/references/code-reviewer.md +68 -0
  77. package/templates/skills/evoluir-harness/references/design-system.md +56 -0
  78. package/templates/skills/evoluir-harness/references/hook.md +95 -0
  79. package/templates/skills/evoluir-harness/references/rule.md +67 -0
  80. package/templates/skills/evoluir-harness/references/skill.md +63 -0
  81. package/templates/skills/executar-plan/SKILL.md +114 -0
  82. package/templates/skills/executar-plan/references/delegacao.md +43 -0
  83. package/templates/skills/executar-plan/references/retomada.md +33 -0
  84. package/templates/skills/executar-plan/templates/BLOQUEIOS.md +30 -0
  85. package/templates/skills/harness/SKILL.md +75 -0
  86. package/templates/skills/harness/references/auto-tag.md +118 -0
  87. package/templates/skills/harness/references/ignores.md +40 -0
  88. package/templates/skills/harness/references/scaffold.md +29 -0
  89. package/templates/skills/harness/references/validar-ideia.md +42 -0
  90. package/templates/skills/memoria/SKILL.md +52 -0
  91. package/templates/skills/nova-tarefa/SKILL.md +97 -0
  92. package/templates/skills/nova-tarefa/references/isso-ja-existe.md +24 -0
  93. package/templates/skills/nova-tarefa/references/regras-do-plano.md +33 -0
  94. package/templates/skills/nova-tarefa/templates/DECISOES.md +20 -0
  95. package/templates/skills/nova-tarefa/templates/PLAN.md +58 -0
  96. package/templates/skills/nova-tarefa/templates/SPEC.md +37 -0
  97. package/templates/skills/resolver-bug/SKILL.md +104 -0
  98. package/templates/skills/resolver-bug/references/relatorio-para-cliente.md +26 -0
  99. package/templates/skills/resolver-bug/templates/PLAN.md +62 -0
  100. package/templates/skills/resolver-bug/templates/relatorios/CLIENTE.md +29 -0
  101. package/templates/skills/resolver-bug/templates/relatorios/TECNICO.md +32 -0
  102. package/bin/cli.js +0 -122
  103. package/src/init.js +0 -317
  104. package/src/installer.js +0 -92
  105. package/src/run.js +0 -99
  106. package/templates/commands/auditar-performance.md +0 -27
  107. package/templates/commands/auditar-seguranca.md +0 -64
  108. package/templates/commands/auditar-ui.md +0 -38
  109. package/templates/commands/codigo-morto.md +0 -22
  110. package/templates/commands/configurar-auto-tag.md +0 -185
  111. package/templates/commands/configurar-comentarios.md +0 -543
  112. package/templates/commands/configurar-orquestrador.md +0 -13
  113. package/templates/commands/corrigir-review.md +0 -11
  114. package/templates/commands/criar-agents.md +0 -42
  115. package/templates/commands/criar-code-reviewer.md +0 -30
  116. package/templates/commands/criar-hooks.md +0 -32
  117. package/templates/commands/criar-rag.md +0 -25
  118. package/templates/commands/criar-rules.md +0 -31
  119. package/templates/commands/criar-skill.md +0 -22
  120. package/templates/commands/design-system.md +0 -27
  121. package/templates/commands/executar-plan.md +0 -36
  122. package/templates/commands/gerar-claude-md.md +0 -66
  123. package/templates/commands/gerar-ignore.md +0 -37
  124. package/templates/commands/gerar-spec.md +0 -33
  125. package/templates/commands/harness.md +0 -34
  126. package/templates/commands/nova-tarefa.md +0 -60
  127. package/templates/commands/resolver-bug.md +0 -25
  128. package/templates/commands/review-por-task.md +0 -16
  129. package/templates/commands/scaffold.md +0 -25
  130. package/templates/commands/validar-commands.md +0 -24
  131. package/templates/commands/validar-ideia.md +0 -36
@@ -0,0 +1,166 @@
1
+ # Estilo de comentários (todas as linguagens)
2
+
3
+ IMPORTANT: o padrão é **não comentar**. Comentário é exceção que precisa se justificar.
4
+
5
+ Antes de escrever qualquer comentário, responda:
6
+ **"quem editar esta linha daqui a 6 meses quebra o sistema sem esta informação?"**
7
+ Se a resposta não for um "sim" claro, **não comente**.
8
+
9
+ ## Orçamento (limites duros)
10
+
11
+ | Item | Limite |
12
+ |---|---|
13
+ | Bloco de comentário interno | **3 linhas** |
14
+ | Docstring de função/método público | **5 linhas** |
15
+ | Cabeçalho de arquivo | **proibido** |
16
+ | Comentários internos por função | **1** |
17
+ | Densidade do arquivo | **<= 10%** das linhas |
18
+
19
+ Se o porquê não cabe em 3 linhas, **ele não pertence ao código**.
20
+
21
+ ## Proibido
22
+
23
+ 1. **Banner/separador de seção** — `// ─── X ───`, `// ==== SEÇÃO ====`, `// ---- X ----`.
24
+ Arquivo que precisa de seções precisa ser **dividido**, não decorado.
25
+ 2. **Rastreabilidade de processo** — `Task 4.2.1`, `Fase 2`, `Plano 006`, `T2.1`, `SPEC 001`,
26
+ `docs/trabalhos/...`, `achado do @code-reviewer`, `commit c83bb4e0`, `bug de 2026-07-16`.
27
+ O git e `docs/` já guardam isso; no código vira lixo em três meses.
28
+ 3. **Narração do passo a passo** — `// Carrega o usuário`, `// Verifica se existe`, `// Monta o payload`.
29
+ 4. **Redundância com o identificador** — `// Mapa de nó por id` acima de `const nodeMap = new Map()`.
30
+ 5. **Ensaio/investigação** — medição, histórico do bug, o que foi tentado, o que foi rejeitado.
31
+ Isso vive nos relatórios do trabalho em `docs/trabalhos/`, não no código.
32
+ 6. **Ênfase tipográfica** — CAPS-LOCK (`NUNCA`, `IMPOSSÍVEL`), emoji, `⚠️ REGRA DE OURO`.
33
+ 7. **Código comentado** — apague; o git guarda.
34
+
35
+ ## Permitido (lista fechada)
36
+
37
+ - **Contrato não óbvio** de função/método público — docstring de até 5 linhas.
38
+ - **Armadilha real**: por que a abordagem óbvia quebra — até 3 linhas, **no presente**, sem contar a história.
39
+ - **`TODO:` / `FIXME:`** com o motivo real — 1 linha.
40
+ - **Referência externa** (RFC, issue da lib, doc de API) que justifica um workaround — 1 linha.
41
+
42
+ ## Para onde vai cada informação
43
+
44
+ | Informação | Onde mora | Nunca em |
45
+ |---|---|---|
46
+ | Por que a mudança foi feita | mensagem de commit | comentário |
47
+ | Task / fase / plano / spec | `PLAN.md` e `SPEC.md` do trabalho em `docs/trabalhos/<id>/` | comentário |
48
+ | Diagnóstico e correção de um defeito | trabalho do tipo `bug` em `docs/trabalhos/<id>/` | comentário |
49
+ | Investigação, medição, auditoria, paridade, comparação | relatórios do trabalho em `docs/trabalhos/<id>/relatorios/` | comentário |
50
+ | Achado de review | resposta do review, commit | comentário |
51
+ | Decisão de arquitetura | `SPEC.md` | comentário |
52
+ | Armadilha ao editar **aquela linha** | comentário de até 3 linhas | — |
53
+
54
+ **Que tipo de trabalho?** Defeito com os três — sintoma reproduzível, causa raiz identificada e
55
+ correção aplicada no código — é trabalho do tipo `bug` (`/resolver-bug`). Se falta qualquer um — é
56
+ auditoria, paridade com legado, medição, comparação, levantamento, handoff ou follow-up — é
57
+ `auditoria` ou `investigacao`. Se o documento descreve trabalho a fazer, é `feature` (`/nova-tarefa`).
58
+
59
+ Convenção: uma pasta por trabalho, `docs/trabalhos/<yyyy-mm-dd>-<slug>/`.
60
+
61
+ ## Antes e depois
62
+
63
+ **1. Ensaio de investigação → armadilha objetiva**
64
+
65
+ ```ts
66
+ // ANTES (7 linhas: medição, histórico e ênfase)
67
+ // Timeout PRÓPRIO (independente do timeout global de query do Baileys) para a busca
68
+ // da foto de perfil no recebimento. Medição real: com o timeout global em 60000ms,
69
+ // todo recebimento de contato LID (que não responde à query w:profile:picture)
70
+ // travava por ~60s; baixando para 15000ms o atraso caiu para 15.001ms — proporcional
71
+ // ao milissegundo. A foto é cosmética e NUNCA pode bloquear o recebimento; default
72
+ // SEGURO e curto, sem depender de NODE_ENV.
73
+ PROFILE_PIC_TIMEOUT_MS: z.coerce.number().default(3000),
74
+
75
+ // DEPOIS (2 linhas: só o que quebra ao editar esta linha)
76
+ // Contato LID nunca responde a essa query e a foto é cosmética — subir este timeout
77
+ // volta a travar o recebimento de mensagem.
78
+ PROFILE_PIC_TIMEOUT_MS: z.coerce.number().default(3000),
79
+ ```
80
+
81
+ **2. Cabeçalho de arquivo → nada**
82
+
83
+ ```ts
84
+ // ANTES (49 linhas antes do primeiro import)
85
+ /**
86
+ * Task 1.3.4 / Task 2.3.7 — AgentFlowExecutor
87
+ *
88
+ * Orquestra a execução de um AgentRun:
89
+ * 1. Carrega AgentRun escopado por id + companyId (multi-tenant)
90
+ * 2. Adquire lock por ticket
91
+ * ...
92
+ * GRAFO DINÂMICO (Fase 2):
93
+ * ROTEAMENTO POR builderMode (Plano 006 — modo simples, T2.1):
94
+ */
95
+ import { ... }
96
+
97
+ // DEPOIS
98
+ import { ... }
99
+ ```
100
+
101
+ O nome do arquivo, os exports e a assinatura pública já dizem o que ele é. A ordem dos passos está no
102
+ código; a história está no git.
103
+
104
+ **3. Banner + narração → código legível**
105
+
106
+ ```ts
107
+ // ANTES
108
+ // ── 1. Carrega AgentRun escopado por id + companyId ─────────────────
109
+ const run = await AgentRun.findOne({ where: { id, companyId } });
110
+ // ── 2. Adquire lock por ticket ──────────────────────────────────────
111
+ const lock = await acquireTicketLock(companyId, ticketId);
112
+
113
+ // DEPOIS
114
+ const run = await AgentRun.findOne({ where: { id, companyId } });
115
+ const lock = await acquireTicketLock(companyId, ticketId);
116
+ ```
117
+
118
+ **4. Docstring inflada → contrato**
119
+
120
+ ```ts
121
+ // ANTES (12 linhas)
122
+ /**
123
+ * Gera um novo par de chaves de API para a empresa.
124
+ * Task 7.3.1. Esta função foi criada no plano de 2026-07-28 depois que o
125
+ * @code-reviewer apontou que a chave estava sendo salva em texto puro.
126
+ * Primeiro gera bytes aleatórios, depois deriva o hash SHA-256, e por fim
127
+ * ...
128
+ */
129
+
130
+ // DEPOIS (4 linhas)
131
+ /**
132
+ * Gera um par (plainKey, keyHash).
133
+ * - plainKey: devolvido UMA única vez ao chamador, nunca persistido
134
+ * - keyHash: o que vai para o banco
135
+ */
136
+ ```
137
+
138
+ ## Sintaxe por linguagem
139
+
140
+ ```ts
141
+ /**
142
+ * Uma linha de propósito; entradas/saídas só quando não são óbvias.
143
+ */
144
+ export function hashApiKey(plainKey: string): string {}
145
+ ```
146
+
147
+ ```pascal
148
+ /// <summary>
149
+ /// Gera o hash SHA-256 de uma API Key.
150
+ /// </summary>
151
+ function HashApiKey(const APlainKey: string): string;
152
+ ```
153
+
154
+ - **TypeScript/JavaScript/Java/C#/C++/Go/Rust/PHP:** `/** ... */` no topo do símbolo **público**.
155
+ - **Python:** docstring `"""..."""` curta logo abaixo da assinatura.
156
+ - **Delphi/Pascal:** `///` (XMLDoc) nas rotinas públicas da `interface`; nunca repetir na `implementation`.
157
+ - **SQL/Shell/YAML:** somente regra de negócio ou pegadinha não evidente.
158
+
159
+ ## Enforcement
160
+
161
+ O hook `.claude/hooks/comentarios/check.mjs` roda a cada `Write`/`Edit` e **bloqueia** banner, rastreabilidade
162
+ de processo, data, cabeçalho de arquivo, código comentado e bloco acima do teto.
163
+
164
+ Arquivos que já existiam quando o padrão foi instalado estão em
165
+ `.claude/hooks/comentarios/baseline.json` (catraca): eles **não precisam ser limpos de uma vez**, só não
166
+ podem piorar. Quando melhoram, a catraca desce e não volta.
@@ -0,0 +1,41 @@
1
+ # Harness do projeto
2
+
3
+ Rule de convenção do ai-harness. As skills `/nova-tarefa`, `/resolver-bug` e `/executar-plan` e os agents `qa` e
4
+ `revisor-testes` leem este arquivo para saber o que é específico deste projeto. Preencha as seções que valem, apague
5
+ as que não valem e mantenha o texto curto: é contexto carregado em toda sessão.
6
+
7
+ ## Mapa de agents por domínio
8
+
9
+ Quem implementa cada área. O `/executar-plan` delega cada task ao agent do domínio dela.
10
+
11
+ | Domínio ou pasta | Agent | Observação |
12
+ |---|---|---|
13
+ | _ex.: `apps/api/`_ | _`backend-dev`_ | _mudança estrutural passa antes pelo `arquiteto`_ |
14
+
15
+ ## Portões extras
16
+
17
+ Portões que valem além de `revisor-testes` e `qa`, na ordem em que acontecem.
18
+
19
+ - _ex.: `code-reviewer` em contexto limpo ao fim de cada task_
20
+ - _ex.: aprovação humana antes de migration, webhook ou mudança multi-tenant_
21
+
22
+ ## Suíte de testes
23
+
24
+ - **Comando:** _ex.: `docker compose exec test composer test`_
25
+ - **Onde roda:** _ex.: container `test`; o PHP do host não serve_
26
+ - **Checagens extras:** _ex.: `phpstan` e `pint`_
27
+
28
+ ## Verificação manual
29
+
30
+ Para área sem testes automatizados, como Delphi sem build por linha de comando.
31
+
32
+ - **Onde vale:** _ex.: `Fontes/`_
33
+ - **Roteiro:** _os passos que o `qa` confere, cada um com evidência_
34
+
35
+ Nessa área, o `qa` registra `suite_verde` com `"comando":"manual"`, `total` igual ao número de itens do roteiro e
36
+ `falhas` igual a 0; com item reprovado, `suite_vermelha`.
37
+
38
+ ## Comandos legados a extrair
39
+
40
+ Comandos personalizados que o `update` renomeou para `-legado`. Leve para as seções acima o que for do projeto e
41
+ apague o arquivo.
@@ -0,0 +1,53 @@
1
+ ---
2
+ name: auditar-performance
3
+ description: Audita gargalos de performance — tela lenta, consulta que demora, travamento ou timeout — em queries, backend, bundle, renders e algoritmos, medindo antes de recomendar.
4
+ argument-hint: "[foco opcional: 'backend', 'frontend', 'tela X', 'endpoint Y']"
5
+ ---
6
+
7
+ # Auditoria de performance
8
+
9
+ Foco (opcional): $ARGUMENTS
10
+
11
+ Sem foco, analise o projeto como um todo e priorize os pontos de maior impacto. **Não altere código** e não
12
+ instale ferramentas novas sem perguntar.
13
+
14
+ ## Passo 1 — Criar o trabalho de auditoria
15
+
16
+ 1. Id `AAAA-MM-DD-auditoria-performance` (ou com o foco no slug).
17
+ 2. Registre o início:
18
+
19
+ ```bash
20
+ npx @fontdata/ai-harness evento trabalho_iniciado --trabalho <id> --nome auditar-performance --dados '{"trabalho_tipo":"auditoria"}'
21
+ ```
22
+
23
+ ## Passo 2 — Analisar
24
+
25
+ Identifique a stack e percorra os pontos quentes de `references/pontos-quentes.md`. **Meça em vez de adivinhar**
26
+ sempre que possível: profiler, `EXPLAIN`, análise de bundle, tempos em log ou teste de carga já existente.
27
+ Achado sem medição é marcado como estimativa.
28
+
29
+ Para cada achado: evidência (`arquivo:linha` e a medição), **impacto** (alto, médio, baixo), **esforço** de correção
30
+ e a correção recomendada.
31
+
32
+ ## Passo 3 — Relatório técnico
33
+
34
+ Grave `docs/trabalhos/<id>/relatorios/TECNICO.md` a partir de `templates/relatorios/TECNICO.md`, com os achados
35
+ priorizados por impacto e esforço e o que foi medido (comando e resultado). Preencha `arquivos`.
36
+
37
+ ## Passo 4 — Relatório para a gestão
38
+
39
+ Grave `docs/trabalhos/<id>/relatorios/CLIENTE.md` a partir de `templates/relatorios/CLIENTE.md`: onde as pessoas
40
+ esperam, quanto, o ganho esperado com cada prioridade e o esforço relativo — **sem jargão técnico**.
41
+
42
+ Registre os relatórios e o encerramento, e marque os dois como `final`:
43
+
44
+ ```bash
45
+ npx @fontdata/ai-harness evento relatorio_gerado --trabalho <id> --nome auditar-performance --dados '{"caminho":"docs/trabalhos/<id>/relatorios/TECNICO.md"}'
46
+ npx @fontdata/ai-harness evento relatorio_gerado --trabalho <id> --nome auditar-performance --dados '{"caminho":"docs/trabalhos/<id>/relatorios/CLIENTE.md"}'
47
+ npx @fontdata/ai-harness evento trabalho_concluido --trabalho <id> --nome auditar-performance
48
+ ```
49
+
50
+ ## Passo 5 — Próximos passos
51
+
52
+ As otimizações aprovadas seguem por `/nova-tarefa`, citando o id desta auditoria e a medição de referência, para
53
+ que o ganho seja comprovado depois.
@@ -0,0 +1,35 @@
1
+ # Pontos quentes de performance
2
+
3
+ ## Banco de dados
4
+
5
+ - Consultas N+1 (consulta dentro de laço, carregamento preguiçoso em lista).
6
+ - Falta de índice nas colunas de filtro, junção e ordenação — confirme com `EXPLAIN`.
7
+ - `SELECT *` trazendo colunas pesadas; paginação ausente em listagens.
8
+ - Transações longas e bloqueios; chamadas repetidas com os mesmos parâmetros.
9
+
10
+ ## Backend
11
+
12
+ - Trabalho síncrono bloqueante em requisição (arquivos, integrações, criptografia).
13
+ - Ausência de cache para dados que mudam pouco; cache sem expiração.
14
+ - Serialização cara ou repetida; I/O repetido no mesmo fluxo.
15
+ - Integração externa sem timeout, sem paralelismo onde é possível.
16
+
17
+ ## Frontend
18
+
19
+ - Tamanho do bundle e imports pesados carregados na primeira tela.
20
+ - Re-renderizações desnecessárias; listas grandes sem virtualização.
21
+ - Imagens sem otimização; ausência de carregamento sob demanda.
22
+
23
+ ## Algoritmos
24
+
25
+ - Complexidade evitável (O(n²) em laços aninhados sobre coleções grandes).
26
+ - Estrutura de dados inadequada (busca linear onde cabe mapa ou conjunto).
27
+
28
+ ## Como medir
29
+
30
+ | Camada | Ferramenta típica |
31
+ |---|---|
32
+ | Banco | `EXPLAIN`/`EXPLAIN ANALYZE`, log de consultas lentas |
33
+ | Backend | profiler da linguagem, tempos por etapa em log |
34
+ | Frontend | análise de bundle, painel de performance do navegador |
35
+ | Ponta a ponta | teste de carga já existente no projeto |
@@ -0,0 +1,26 @@
1
+ ---
2
+ schema_versao: 1
3
+ tipo: relatorio_cliente
4
+ id: "{{id}}"
5
+ trabalho_tipo: auditoria
6
+ titulo: "{{titulo}}"
7
+ status: rascunho
8
+ criado_em: "{{data}}"
9
+ atualizado_em: "{{data}}"
10
+ arquivos: []
11
+ ---
12
+
13
+ # {{titulo}}
14
+
15
+ ## Onde as pessoas esperam
16
+
17
+ As telas e operações mais demoradas e quanto tempo levam hoje.
18
+
19
+ ## O que ganhamos com cada melhoria
20
+
21
+ 1. Primeira prioridade: ganho esperado e esforço relativo.
22
+ 2. Segunda prioridade.
23
+ 3. Terceira prioridade.
24
+
25
+ ## O que já está bom
26
+
@@ -0,0 +1,27 @@
1
+ ---
2
+ schema_versao: 1
3
+ tipo: relatorio_tecnico
4
+ id: "{{id}}"
5
+ trabalho_tipo: auditoria
6
+ titulo: "{{titulo}}"
7
+ status: rascunho
8
+ criado_em: "{{data}}"
9
+ atualizado_em: "{{data}}"
10
+ arquivos: []
11
+ ---
12
+
13
+ # Auditoria de performance — {{titulo}}
14
+
15
+ ## Escopo e medições
16
+
17
+ O que foi analisado, com quais ferramentas e os números de referência.
18
+
19
+ ## Achados priorizados
20
+
21
+ | # | Achado | Evidência | Medição | Impacto | Esforço | Correção recomendada |
22
+ |---|---|---|---|---|---|---|
23
+ | 1 | | `arquivo:linha` | | alto | baixo | |
24
+
25
+ ## Estimativas sem medição
26
+
27
+ Achados que precisam de medição antes de virar trabalho.
@@ -0,0 +1,67 @@
1
+ ---
2
+ name: auditar-seguranca
3
+ description: Auditoria de segurança e LGPD — procura vulnerabilidade, segredo ou token exposto, dados pessoais sem proteção, dependências vulneráveis, inputs sem validação e configurações inseguras.
4
+ argument-hint: "[foco opcional: 'só segurança', 'só lgpd', 'autenticação'...]"
5
+ ---
6
+
7
+ # Auditoria de segurança e LGPD
8
+
9
+ Foco (opcional): $ARGUMENTS
10
+
11
+ Auditoria **defensiva** do próprio projeto, em duas frentes: **segurança técnica** e **conformidade com a LGPD**.
12
+ Se o foco restringir o escopo, respeite-o; sem foco, rode as duas frentes. **Não altere código.**
13
+
14
+ ## Passo 1 — Criar o trabalho de auditoria
15
+
16
+ 1. Id `AAAA-MM-DD-auditoria-seguranca` (ou com o foco no slug).
17
+ 2. Registre o início:
18
+
19
+ ```bash
20
+ npx @fontdata/ai-harness evento trabalho_iniciado --trabalho <id> --nome auditar-seguranca --dados '{"trabalho_tipo":"auditoria"}'
21
+ ```
22
+
23
+ ## Passo 2 — Segurança técnica
24
+
25
+ Siga o checklist de `references/seguranca-tecnica.md`: segredos, dependências, validação de entrada,
26
+ autenticação e autorização, configuração. Classifique cada achado em **CRÍTICO / ALTO / MÉDIO / BAIXO**, com
27
+ evidência (`arquivo:linha`) e correção recomendada. **Nunca** copie o valor de um segredo para o relatório — só a
28
+ localização.
29
+
30
+ ## Passo 3 — Conformidade com a LGPD
31
+
32
+ Use a skill **`lgpd-checker`** (no plugin, `fontdata:lgpd-checker`) e siga as fases dela:
33
+
34
+ - **Reconhecimento:** tipo de aplicação, stack e se o sistema trata dados pessoais. Se não tratar, registre a
35
+ justificativa e pule esta frente.
36
+ - **Análise por categoria** (CAT-1 a CAT-11), com busca ativa no código — não presuma conformidade.
37
+ - **Severidade e veredito:** cada achado com o artigo da LGPD e recomendação concreta; veredito ✅ CONFORME,
38
+ ⚠️ PARCIALMENTE CONFORME ou ❌ NÃO CONFORME.
39
+
40
+ A CAT-4 (segurança técnica) se sobrepõe ao Passo 2: registre o achado uma vez no Passo 2 e referencie-o na CAT-4.
41
+ Categoria sem código para avaliar é dita explicitamente, não presumida.
42
+
43
+ ## Passo 4 — Relatório técnico
44
+
45
+ Grave `docs/trabalhos/<id>/relatorios/TECNICO.md` a partir de `templates/relatorios/TECNICO.md`: sumário por
46
+ severidade e veredito LGPD, achados críticos primeiro, segurança técnica, conformidade LGPD por categoria (no
47
+ formato do relatório da `lgpd-checker`), pontos positivos e plano de ação priorizado. Preencha `arquivos` com os
48
+ arquivos citados.
49
+
50
+ ## Passo 5 — Relatório para a gestão
51
+
52
+ Grave `docs/trabalhos/<id>/relatorios/CLIENTE.md` a partir de `templates/relatorios/CLIENTE.md`: os riscos em
53
+ linguagem de negócio (o que pode acontecer, com quem, qual a exposição legal), o veredito LGPD e as três
54
+ prioridades — **sem jargão técnico**.
55
+
56
+ Registre os relatórios e o encerramento, e marque os dois como `final`:
57
+
58
+ ```bash
59
+ npx @fontdata/ai-harness evento relatorio_gerado --trabalho <id> --nome auditar-seguranca --dados '{"caminho":"docs/trabalhos/<id>/relatorios/TECNICO.md"}'
60
+ npx @fontdata/ai-harness evento relatorio_gerado --trabalho <id> --nome auditar-seguranca --dados '{"caminho":"docs/trabalhos/<id>/relatorios/CLIENTE.md"}'
61
+ npx @fontdata/ai-harness evento trabalho_concluido --trabalho <id> --nome auditar-seguranca
62
+ ```
63
+
64
+ ## Passo 6 — Próximos passos
65
+
66
+ Achados que viram correção seguem por `/resolver-bug` (defeito pontual) ou `/nova-tarefa` (adequação maior),
67
+ citando o id desta auditoria.
@@ -0,0 +1,23 @@
1
+ # Checklist de segurança técnica
2
+
3
+ 1. **Segredos:** chaves de API, senhas, tokens e credenciais no código e no histórico recente
4
+ (`git log -p` nos arquivos de configuração). `.env` fora do controle de versão; `.env.example` só com
5
+ valores de exemplo.
6
+ 2. **Dependências:** rode o auditor da stack quando disponível (`npm audit`, `pip-audit`, `dotnet list package
7
+ --vulnerable`, `osv-scanner`) e liste as vulnerabilidades por severidade. Não instale ferramenta nova sem
8
+ perguntar.
9
+ 3. **Validação de entrada:** inputs sem validação ou sanitização — injeção (SQL, comando, XSS), path traversal,
10
+ desserialização insegura, upload sem verificação de tipo e tamanho.
11
+ 4. **Autenticação e autorização:** rotas sem proteção, checagem de permissão ausente ou só no front, sessão ou
12
+ token com segredo fraco ou sem expiração, isolamento entre empresas/tenants, CORS permissivo demais.
13
+ 5. **Configuração:** modo debug em produção, cabeçalhos de segurança ausentes, TLS, stack trace exposto ao
14
+ usuário, logs com dados pessoais ou segredos.
15
+
16
+ ## Severidade
17
+
18
+ | Nível | Quando |
19
+ |---|---|
20
+ | **CRÍTICO** | Exploração direta, sem autenticação, com vazamento ou alteração de dados |
21
+ | **ALTO** | Exploração exige alguma condição (usuário autenticado, rede interna), com impacto relevante |
22
+ | **MÉDIO** | Enfraquece a defesa, mas não é explorável sozinho |
23
+ | **BAIXO** | Boa prática ausente, impacto pequeno |
@@ -0,0 +1,30 @@
1
+ ---
2
+ schema_versao: 1
3
+ tipo: relatorio_cliente
4
+ id: "{{id}}"
5
+ trabalho_tipo: auditoria
6
+ titulo: "{{titulo}}"
7
+ status: rascunho
8
+ criado_em: "{{data}}"
9
+ atualizado_em: "{{data}}"
10
+ arquivos: []
11
+ ---
12
+
13
+ # {{titulo}}
14
+
15
+ ## Situação geral
16
+
17
+ Resumo em poucas frases e a situação em relação à Lei Geral de Proteção de Dados.
18
+
19
+ ## Principais riscos
20
+
21
+ O que pode acontecer, com quem e qual a exposição para a empresa.
22
+
23
+ ## Prioridades
24
+
25
+ 1. O que resolver primeiro e por quê.
26
+ 2. Segunda prioridade.
27
+ 3. Terceira prioridade.
28
+
29
+ ## O que já está bem
30
+
@@ -0,0 +1,38 @@
1
+ ---
2
+ schema_versao: 1
3
+ tipo: relatorio_tecnico
4
+ id: "{{id}}"
5
+ trabalho_tipo: auditoria
6
+ titulo: "{{titulo}}"
7
+ status: rascunho
8
+ criado_em: "{{data}}"
9
+ atualizado_em: "{{data}}"
10
+ arquivos: []
11
+ ---
12
+
13
+ # Auditoria de segurança e LGPD — {{titulo}}
14
+
15
+ ## Sumário
16
+
17
+ | Frente | Crítico | Alto | Médio | Baixo |
18
+ |---|---|---|---|---|
19
+ | Segurança técnica | 0 | 0 | 0 | 0 |
20
+ | LGPD | 0 | 0 | 0 | 0 |
21
+
22
+ Veredito LGPD: CONFORME, PARCIALMENTE CONFORME ou NÃO CONFORME.
23
+
24
+ ## Achados críticos
25
+
26
+ ## Segurança técnica
27
+
28
+ Cada achado: severidade, `arquivo:linha`, descrição e correção recomendada.
29
+
30
+ ## Conformidade LGPD
31
+
32
+ Achados por categoria (CAT-1 a CAT-11), com o artigo da lei e a recomendação.
33
+
34
+ ## Pontos positivos
35
+
36
+ ## Plano de ação
37
+
38
+ Em ordem de prioridade.
@@ -0,0 +1,64 @@
1
+ ---
2
+ name: auditar-ui
3
+ description: Navega a aplicação via Playwright MCP e audita UX/UI e/ou acessibilidade (a11y, WCAG AA), gerando relatório técnico por tela e severidade e um resumo para a gestão.
4
+ argument-hint: "[lente ux|a11y|tudo] [url] [usuário] [senha]"
5
+ ---
6
+
7
+ # Auditoria de interface via navegador
8
+
9
+ Parâmetros: $ARGUMENTS
10
+
11
+ Usando o **MCP do Playwright**, abra o navegador **na tela do usuário**, para que ele acompanhe a navegação.
12
+ **Não altere código** — apenas reporte o que precisa ser criado ou melhorado.
13
+
14
+ ## Passo 0 — Parâmetros
15
+
16
+ São necessários quatro. O que **não** veio nos parâmetros, **pergunte antes de abrir o navegador**, oferecendo o
17
+ exemplo como padrão:
18
+
19
+ - **Lente:** `ux`, `a11y` ou `tudo` — padrão `tudo`;
20
+ - **URL** da aplicação (ex.: `http://localhost:3000`);
21
+ - **Usuário** para login (ex.: `admin@admin.com.br`);
22
+ - **Senha** para login (ex.: `admin`).
23
+
24
+ A senha nunca vai para os relatórios nem para o rastro.
25
+
26
+ ## Passo 1 — Criar o trabalho de auditoria
27
+
28
+ 1. Id `AAAA-MM-DD-auditoria-ui` (ou `-a11y`, conforme a lente).
29
+ 2. Registre o início:
30
+
31
+ ```bash
32
+ npx @fontdata/ai-harness evento trabalho_iniciado --trabalho <id> --nome auditar-ui --dados '{"trabalho_tipo":"auditoria"}'
33
+ ```
34
+
35
+ ## Passo 2 — Navegar e auditar
36
+
37
+ 1. Faça login e percorra **todas** as telas, clicando em todos os menus e botões.
38
+ 2. Em cada tela, aplique a lente escolhida com o checklist de `references/lentes.md`.
39
+ 3. Classifique cada achado: **CRÍTICO** (bloqueia o uso), **SÉRIO**, **MODERADO** ou **MENOR**, citando o critério
40
+ **WCAG** nos achados de acessibilidade.
41
+
42
+ ## Passo 3 — Relatório técnico
43
+
44
+ Grave `docs/trabalhos/<id>/relatorios/TECNICO.md` a partir de `templates/relatorios/TECNICO.md`: achados agrupados
45
+ por **tela** e **severidade**, cada um com o elemento afetado, o critério WCAG (quando houver) e a correção
46
+ recomendada.
47
+
48
+ ## Passo 4 — Relatório para a gestão
49
+
50
+ Grave `docs/trabalhos/<id>/relatorios/CLIENTE.md` a partir de `templates/relatorios/CLIENTE.md`: quais perfis de
51
+ pessoas têm dificuldade, em quais tarefas, e as prioridades — **sem jargão técnico**.
52
+
53
+ Registre os relatórios e o encerramento, e marque os dois como `final`:
54
+
55
+ ```bash
56
+ npx @fontdata/ai-harness evento relatorio_gerado --trabalho <id> --nome auditar-ui --dados '{"caminho":"docs/trabalhos/<id>/relatorios/TECNICO.md"}'
57
+ npx @fontdata/ai-harness evento relatorio_gerado --trabalho <id> --nome auditar-ui --dados '{"caminho":"docs/trabalhos/<id>/relatorios/CLIENTE.md"}'
58
+ npx @fontdata/ai-harness evento trabalho_concluido --trabalho <id> --nome auditar-ui
59
+ ```
60
+
61
+ ## Passo 5 — Próximos passos
62
+
63
+ Correções aprovadas seguem por `/nova-tarefa` (conjunto de melhorias) ou `/resolver-bug` (tela que não funciona),
64
+ citando o id desta auditoria.
@@ -0,0 +1,33 @@
1
+ # Lentes da auditoria de interface
2
+
3
+ ## UX/UI
4
+
5
+ - Clareza e consistência visual: componentes, espaçamentos, tipografia e cores iguais para a mesma função.
6
+ - Hierarquia: a ação principal da tela é a mais evidente.
7
+ - Feedback das ações: carregando, sucesso e erro sempre visíveis.
8
+ - Estados de vazio, erro e carregamento tratados.
9
+ - Fluxos confusos: passos desnecessários, rótulos ambíguos, ações destrutivas sem confirmação.
10
+ - Responsividade nas larguras usadas pelo público da aplicação.
11
+
12
+ ## Acessibilidade (WCAG AA)
13
+
14
+ | Verificação | Critério WCAG |
15
+ |---|---|
16
+ | Contraste de texto e de componentes | 1.4.3, 1.4.11 |
17
+ | Texto alternativo em imagens | 1.1.1 |
18
+ | Labels associados aos campos de formulário | 1.3.1, 3.3.2 |
19
+ | Hierarquia de títulos | 1.3.1 |
20
+ | Navegação por teclado e ordem de tabulação | 2.1.1, 2.4.3 |
21
+ | Foco visível | 2.4.7 |
22
+ | Foco preso e devolvido corretamente em modais | 2.4.3 |
23
+ | Uso correto de ARIA e roles | 4.1.2 |
24
+ | Mensagens de erro identificáveis e com sugestão | 3.3.1, 3.3.3 |
25
+
26
+ ## Severidade
27
+
28
+ | Nível | Quando |
29
+ |---|---|
30
+ | **CRÍTICO** | Impede concluir uma tarefa (inclusive para quem usa teclado ou leitor de tela) |
31
+ | **SÉRIO** | Conclui a tarefa com muita dificuldade ou erro frequente |
32
+ | **MODERADO** | Atrapalha, mas há contorno simples |
33
+ | **MENOR** | Inconsistência ou refinamento |
@@ -0,0 +1,26 @@
1
+ ---
2
+ schema_versao: 1
3
+ tipo: relatorio_cliente
4
+ id: "{{id}}"
5
+ trabalho_tipo: auditoria
6
+ titulo: "{{titulo}}"
7
+ status: rascunho
8
+ criado_em: "{{data}}"
9
+ atualizado_em: "{{data}}"
10
+ arquivos: []
11
+ ---
12
+
13
+ # {{titulo}}
14
+
15
+ ## Quem tem dificuldade hoje
16
+
17
+ Perfis de pessoas e as tarefas em que elas travam ou erram.
18
+
19
+ ## Prioridades
20
+
21
+ 1. O que melhorar primeiro e para quem.
22
+ 2. Segunda prioridade.
23
+ 3. Terceira prioridade.
24
+
25
+ ## O que já está bom
26
+
@@ -0,0 +1,31 @@
1
+ ---
2
+ schema_versao: 1
3
+ tipo: relatorio_tecnico
4
+ id: "{{id}}"
5
+ trabalho_tipo: auditoria
6
+ titulo: "{{titulo}}"
7
+ status: rascunho
8
+ criado_em: "{{data}}"
9
+ atualizado_em: "{{data}}"
10
+ arquivos: []
11
+ ---
12
+
13
+ # Auditoria de interface — {{titulo}}
14
+
15
+ ## Escopo
16
+
17
+ Lente, URL auditada, perfil usado e telas percorridas.
18
+
19
+ ## Resumo por severidade
20
+
21
+ | Crítico | Sério | Moderado | Menor |
22
+ |---|---|---|---|
23
+ | 0 | 0 | 0 | 0 |
24
+
25
+ ## Achados por tela
26
+
27
+ ### Nome da tela
28
+
29
+ | Severidade | Elemento | Problema | Critério WCAG | Correção recomendada |
30
+ |---|---|---|---|---|
31
+ | | | | | |