@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.
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +9 -2
- package/LICENSE +21 -0
- package/README.md +174 -140
- package/{src → dist}/catalog.js +5 -12
- package/dist/cli.js +174 -0
- package/dist/comentarios/command.js +74 -0
- package/dist/comentarios/instalar.js +33 -0
- package/dist/config/config.js +98 -0
- package/dist/contratos/artefatos.js +284 -0
- package/dist/contratos/eventos.js +103 -0
- package/dist/doctor/checks.js +424 -0
- package/dist/init.js +240 -0
- package/dist/install/atomic.js +51 -0
- package/dist/install/flags.js +99 -0
- package/dist/install/hooks.js +47 -0
- package/dist/install/lock.js +39 -0
- package/dist/install/plan.js +209 -0
- package/dist/install/selection.js +77 -0
- package/dist/install/settings.js +108 -0
- package/dist/memoria/indice.js +195 -0
- package/dist/migrar/migrar.js +426 -0
- package/dist/rastro/command.js +46 -0
- package/dist/run.js +86 -0
- package/dist/types.js +1 -0
- package/dist/update/legado.js +74 -0
- package/dist/update/update.js +284 -0
- package/package.json +17 -8
- package/templates/CLAUDE.md +59 -30
- package/templates/agents/auditor-plano.md +42 -0
- package/templates/agents/investigador.md +32 -0
- package/templates/agents/qa.md +44 -0
- package/templates/agents/revisor-testes.md +40 -0
- package/templates/catalog.json +24 -61
- package/templates/commands/atualizar-deps.md +43 -9
- package/templates/commands/diagrama.md +35 -10
- package/templates/commands/gerar-env.md +39 -10
- package/templates/commands/gerar-testes.md +42 -10
- package/templates/commands/git-commit-push.md +0 -0
- package/templates/commands/onboarding.md +44 -15
- package/templates/commands/refatorar.md +50 -10
- package/templates/commands/revisar-pr.md +56 -12
- package/templates/commands/sincronizar-claude-md.md +177 -9
- package/templates/commands/versao.md +0 -0
- package/templates/hooks/comentarios/check.mjs +210 -0
- package/templates/hooks/hooks.json +34 -0
- package/templates/hooks/lembrete.mjs +29 -0
- package/templates/hooks/lib/config.mjs +40 -0
- package/templates/hooks/lib/hook.mjs +85 -0
- package/templates/hooks/lib/rastro.mjs +130 -0
- package/templates/hooks/lib/segredos.mjs +91 -0
- package/templates/hooks/lib/temas.mjs +111 -0
- package/templates/hooks/lib/trabalho.mjs +94 -0
- package/templates/hooks/proteger-contratos.mjs +56 -0
- package/templates/hooks/segredo-no-commit.mjs +76 -0
- package/templates/hooks/sem-jargao.mjs +58 -0
- package/templates/hooks/task-so-fecha-verde.mjs +33 -0
- package/templates/legado/manifesto.json +1267 -0
- package/templates/rules/comentarios.md +166 -0
- package/templates/rules/harness-projeto.md +41 -0
- package/templates/skills/auditar-performance/SKILL.md +53 -0
- package/templates/skills/auditar-performance/references/pontos-quentes.md +35 -0
- package/templates/skills/auditar-performance/templates/relatorios/CLIENTE.md +26 -0
- package/templates/skills/auditar-performance/templates/relatorios/TECNICO.md +27 -0
- package/templates/skills/auditar-seguranca/SKILL.md +67 -0
- package/templates/skills/auditar-seguranca/references/seguranca-tecnica.md +23 -0
- package/templates/skills/auditar-seguranca/templates/relatorios/CLIENTE.md +30 -0
- package/templates/skills/auditar-seguranca/templates/relatorios/TECNICO.md +38 -0
- package/templates/skills/auditar-ui/SKILL.md +64 -0
- package/templates/skills/auditar-ui/references/lentes.md +33 -0
- package/templates/skills/auditar-ui/templates/relatorios/CLIENTE.md +26 -0
- package/templates/skills/auditar-ui/templates/relatorios/TECNICO.md +31 -0
- package/templates/skills/evoluir-harness/SKILL.md +81 -0
- package/templates/skills/evoluir-harness/references/agent.md +83 -0
- package/templates/skills/evoluir-harness/references/auditoria.md +107 -0
- package/templates/skills/evoluir-harness/references/code-reviewer.md +68 -0
- package/templates/skills/evoluir-harness/references/design-system.md +56 -0
- package/templates/skills/evoluir-harness/references/hook.md +95 -0
- package/templates/skills/evoluir-harness/references/rule.md +67 -0
- package/templates/skills/evoluir-harness/references/skill.md +63 -0
- package/templates/skills/executar-plan/SKILL.md +114 -0
- package/templates/skills/executar-plan/references/delegacao.md +43 -0
- package/templates/skills/executar-plan/references/retomada.md +33 -0
- package/templates/skills/executar-plan/templates/BLOQUEIOS.md +30 -0
- package/templates/skills/harness/SKILL.md +75 -0
- package/templates/skills/harness/references/auto-tag.md +118 -0
- package/templates/skills/harness/references/ignores.md +40 -0
- package/templates/skills/harness/references/scaffold.md +29 -0
- package/templates/skills/harness/references/validar-ideia.md +42 -0
- package/templates/skills/memoria/SKILL.md +52 -0
- package/templates/skills/nova-tarefa/SKILL.md +97 -0
- package/templates/skills/nova-tarefa/references/isso-ja-existe.md +24 -0
- package/templates/skills/nova-tarefa/references/regras-do-plano.md +33 -0
- package/templates/skills/nova-tarefa/templates/DECISOES.md +20 -0
- package/templates/skills/nova-tarefa/templates/PLAN.md +58 -0
- package/templates/skills/nova-tarefa/templates/SPEC.md +37 -0
- package/templates/skills/resolver-bug/SKILL.md +104 -0
- package/templates/skills/resolver-bug/references/relatorio-para-cliente.md +26 -0
- package/templates/skills/resolver-bug/templates/PLAN.md +62 -0
- package/templates/skills/resolver-bug/templates/relatorios/CLIENTE.md +29 -0
- package/templates/skills/resolver-bug/templates/relatorios/TECNICO.md +32 -0
- package/bin/cli.js +0 -122
- package/src/init.js +0 -317
- package/src/installer.js +0 -92
- package/src/run.js +0 -99
- package/templates/commands/auditar-performance.md +0 -27
- package/templates/commands/auditar-seguranca.md +0 -64
- package/templates/commands/auditar-ui.md +0 -38
- package/templates/commands/codigo-morto.md +0 -22
- package/templates/commands/configurar-auto-tag.md +0 -185
- package/templates/commands/configurar-comentarios.md +0 -543
- package/templates/commands/configurar-orquestrador.md +0 -13
- package/templates/commands/corrigir-review.md +0 -11
- package/templates/commands/criar-agents.md +0 -42
- package/templates/commands/criar-code-reviewer.md +0 -30
- package/templates/commands/criar-hooks.md +0 -32
- package/templates/commands/criar-rag.md +0 -25
- package/templates/commands/criar-rules.md +0 -31
- package/templates/commands/criar-skill.md +0 -22
- package/templates/commands/design-system.md +0 -27
- package/templates/commands/executar-plan.md +0 -36
- package/templates/commands/gerar-claude-md.md +0 -66
- package/templates/commands/gerar-ignore.md +0 -37
- package/templates/commands/gerar-spec.md +0 -33
- package/templates/commands/harness.md +0 -34
- package/templates/commands/nova-tarefa.md +0 -60
- package/templates/commands/resolver-bug.md +0 -25
- package/templates/commands/review-por-task.md +0 -16
- package/templates/commands/scaffold.md +0 -25
- package/templates/commands/validar-commands.md +0 -24
- 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
|
+
| | | | | |
|