agent-engineering-skills 1.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.
Files changed (48) hide show
  1. package/AGENTS.md +249 -0
  2. package/LICENSE +21 -0
  3. package/README.md +113 -0
  4. package/bin/cli.js +223 -0
  5. package/docs/agent-integration.md +200 -0
  6. package/docs/philosophy.md +131 -0
  7. package/docs/reference-authoring.md +117 -0
  8. package/docs/skill-authoring.md +126 -0
  9. package/examples/authorization-bypass.md +191 -0
  10. package/examples/frontend-review.md +244 -0
  11. package/examples/race-condition.md +128 -0
  12. package/examples/xp-reward-loop.md +123 -0
  13. package/package.json +45 -0
  14. package/references/engineering.yaml +88 -0
  15. package/references/frontend.yaml +139 -0
  16. package/references/product.yaml +54 -0
  17. package/references/research.yaml +88 -0
  18. package/references/security.yaml +85 -0
  19. package/references/ux.yaml +37 -0
  20. package/scripts/validate.py +454 -0
  21. package/skills/audit/adversarial-review/SKILL.md +190 -0
  22. package/skills/audit/business-logic-audit/SKILL.md +182 -0
  23. package/skills/audit/edge-case-hunter/SKILL.md +159 -0
  24. package/skills/audit/error-flow-audit/SKILL.md +184 -0
  25. package/skills/audit/state-consistency-audit/SKILL.md +174 -0
  26. package/skills/audit/user-flow-audit/SKILL.md +161 -0
  27. package/skills/frontend/accessibility-review/SKILL.md +186 -0
  28. package/skills/frontend/animation-review/SKILL.md +171 -0
  29. package/skills/frontend/interaction-design/SKILL.md +162 -0
  30. package/skills/frontend/ux-review/SKILL.md +172 -0
  31. package/skills/frontend/visual-quality-review/SKILL.md +160 -0
  32. package/skills/meta/research-router/SKILL.md +184 -0
  33. package/skills/meta/skill-router/SKILL.md +206 -0
  34. package/skills/product/gamification-audit/SKILL.md +213 -0
  35. package/skills/reliability/data-integrity-audit/SKILL.md +187 -0
  36. package/skills/reliability/idempotency-audit/SKILL.md +191 -0
  37. package/skills/reliability/race-condition-hunter/SKILL.md +181 -0
  38. package/skills/research/github-reference-research/SKILL.md +197 -0
  39. package/skills/research/implementation-research/SKILL.md +181 -0
  40. package/skills/research/market-research/SKILL.md +202 -0
  41. package/skills/research/reference-research/SKILL.md +186 -0
  42. package/skills/security/api-abuse-audit/SKILL.md +178 -0
  43. package/skills/security/authorization-audit/SKILL.md +176 -0
  44. package/skills/security/input-trust-audit/SKILL.md +178 -0
  45. package/templates/audit-report.md +89 -0
  46. package/templates/bug-report.md +107 -0
  47. package/templates/design-review.md +122 -0
  48. package/templates/research-report.md +96 -0
@@ -0,0 +1,200 @@
1
+ # Agent Integration
2
+
3
+ Como um agente de IA integra este repositório: a ordem de operação, a composição de
4
+ skills, os workflows, e os anti-padrões. Este documento é a ponte entre as peças
5
+ (`AGENTS.md`, `skills/`, `references/`, `templates/`) e a execução real.
6
+
7
+ ---
8
+
9
+ ## 1. Visão geral
10
+
11
+ ```text
12
+ AGENT
13
+
14
+
15
+ SKILL ROUTER ← skills/meta/skill-router/
16
+
17
+ ┌───────────┼───────────┐
18
+ ↓ ↓ ↓
19
+ AUDIT PRODUCT FRONTEND ← skills/audit, security, reliability,
20
+ │ │ │ product, frontend
21
+ └───────────┼───────────┘
22
+
23
+ RESEARCH ROUTER ← skills/meta/research-router/
24
+
25
+ ┌─────────────┼─────────────┐
26
+ ↓ ↓ ↓
27
+ GitHub Products References ← skills/research/* + references/*.yaml
28
+ │ │ │
29
+ └─────────────┼─────────────┘
30
+
31
+ SYNTHESIS ← formato de síntese (AGENTS.md § 5)
32
+
33
+
34
+ IMPLEMENT
35
+
36
+
37
+ ADVERSARIAL TEST ← skills/audit/adversarial-review
38
+
39
+
40
+ VERIFY
41
+
42
+
43
+ REPORT ← templates/*
44
+ ```
45
+
46
+ O agente não "executa todas as skills". Ele **rota** — escolhe o subconjunto relevante
47
+ pelo `skill-router`, pesquisa pelo `research-router`, implementa, ataca a própria
48
+ implementação, verifica, e reporta.
49
+
50
+ ---
51
+
52
+ ## 2. Ordem de operação
53
+
54
+ ### 2.1 Workflow completo (auditoria / feature não-trivial)
55
+
56
+ ```text
57
+ REQUEST → UNDERSTAND → CLASSIFY → SKILL ROUTER → RESEARCH ROUTER → RESEARCH →
58
+ ANALYZE → IMPLEMENT → ADVERSARIAL TEST → VERIFY → REPORT
59
+ ```
60
+
61
+ | Etapa | O que o agente faz | Onde |
62
+ |---|---|---|
63
+ | REQUEST | Recebe o pedido | — |
64
+ | UNDERSTAND | Reformula o pedido: sistema, fluxo, mudança, risco | — |
65
+ | CLASSIFY | Categoria dominante (audit/security/reliability/product/frontend/research) + sinais (valor transferível, estado compartilhado, permissões) | — |
66
+ | SKILL ROUTER | Seleciona o conjunto ordenado de skills | `skills/meta/skill-router/` |
67
+ | RESEARCH ROUTER | Decide onde pesquisar | `skills/meta/research-router/` + `references/` |
68
+ | RESEARCH | Coleta + sintetiza (nunca só links) | skills de research + `AGENTS.md` § 5 |
69
+ | ANALYZE | Aplica as skills selecionadas ao alvo | skills selecionadas |
70
+ | IMPLEMENT | Faz a mudança (se aplicável) | — |
71
+ | ADVERSARIAL TEST | Ataca a própria implementação | `adversarial-review` + skills relevantes |
72
+ | VERIFY | Confirma evidência; sobe/desce confiança | escala de evidência `AGENTS.md` § 2 |
73
+ | REPORT | Produz o relatório | `templates/audit-report.md` etc. |
74
+
75
+ ### 2.2 Pesquisa antes de implementar (regra §13)
76
+
77
+ ```text
78
+ UNDERSTAND → CLASSIFY → RESEARCH → COMPARE → DECIDE → IMPLEMENT
79
+ ```
80
+
81
+ Não:
82
+
83
+ ```text
84
+ UNDERSTAND → IMPLEMENT
85
+ ```
86
+
87
+ **Mas proporcional:** um botão simples não precisa de pesquisa; uma arquitetura nova
88
+ provavelmente precisa; concorrência em pagamentos certamente. Critério:
89
+
90
+ ```text
91
+ uncertainty + impact + irreversibility
92
+ ```
93
+
94
+ quanto maior, maior o nível de pesquisa (`none` / `proportional` / `full`).
95
+
96
+ ---
97
+
98
+ ## 3. Como o agente escolhe skills
99
+
100
+ 1. Leia o frontmatter de cada skill candidata (`triggers`, `category`, `priority`).
101
+ 2. Cruze com a tabela de composição do `skill-router` (§14/§22).
102
+ 3. Ordena: hipóteses (adversarial-review) → confirmação (race, idempotência, etc.) →
103
+ domínio específico (frontend, product).
104
+ 4. **Justifique** a seleção e o que foi descartado (evita overengineering e mostra
105
+ cobertura).
106
+
107
+ Exemplo (do `skill-router`):
108
+
109
+ ```text
110
+ "Adicionar reações que dão XP"
111
+
112
+ gamification-audit
113
+ business-logic-audit
114
+ idempotency-audit
115
+ race-condition-hunter
116
+ api-abuse-audit
117
+ user-flow-audit
118
+ ```
119
+
120
+ ---
121
+
122
+ ## 4. Como o agente pesquisa
123
+
124
+ 1. Determine o tipo de problema (animation/ux/architecture/security/...).
125
+ 2. Consulte `references/*.yaml` do domínio (`use_when` × problema).
126
+ 3. Respeite `type` (methodology/heuristic/inspiration/implementation/discovery) e
127
+ `authority` (established > vendor > community > curated).
128
+ 4. Despache para a research skill correta.
129
+ 5. **Sintetize** — nunca retorne lista de links. Formato: Reference / Relevant
130
+ Pattern / Why It Matters / Adaptation / Trade-offs / Recommendation.
131
+ 6. **Não copie** — extraia princípios, adapte, avalie trade-offs (`AGENTS.md` § 1).
132
+
133
+ ---
134
+
135
+ ## 5. Como o agente reporta
136
+
137
+ - **Auditoria completa** → `templates/audit-report.md` (findings com Severity,
138
+ Confidence, Reprodução, Causa raiz, etc. + dedup entre skills).
139
+ - **Bug individual** → `templates/bug-report.md`.
140
+ - **Frontend/design** → `templates/design-review.md` (dimensões + checklist WCAG).
141
+ - **Pesquisa** → `templates/research-report.md` (síntese obrigatória + fontes +
142
+ autoridade + confiança).
143
+
144
+ Todo finding carrega um nível de confiança:
145
+
146
+ ```text
147
+ CONFIRMED reproduzido com evidência direta
148
+ HIGH CONFIDENCE forte indício técnico, sem reprodução
149
+ POSSIBLE plausível, exige investigação
150
+ SPECULATIVE hipótese sem evidência → seção "riscos", não bugs
151
+ ```
152
+
153
+ ---
154
+
155
+ ## 6. Deduplicação entre skills
156
+
157
+ Múltiplas skills podem apontar o mesmo defeito (ex: race → idempotency; authorization
158
+ → input-trust). Regras:
159
+
160
+ 1. **Consolidar** — um finding único com a análise combinada (ex: "raça + falta de
161
+ idempotência na criação de pedido").
162
+ 2. **Atribuir a skill mais específica** — a que explica a causa raiz (ex:
163
+ `race-condition-hunter` explica o *mecanismo*; `idempotency-audit` explica o *efeito*).
164
+ 3. **Não duplicar** — se duas skills apontam o mesmo, cite ambas na seção de
165
+ deduplicação do relatório.
166
+
167
+ ---
168
+
169
+ ## 7. Anti-padrões
170
+
171
+ | Anti-padrão | Correto |
172
+ |---|---|
173
+ | Executar todas as skills sempre | Rotear pelo `skill-router`, proporcional ao risco |
174
+ | Pesquisar tudo sempre | Research proporcional (uncertainty + impact + irreversibility) |
175
+ | Relatórios gigantes | Concisos, priorizados, acionáveis |
176
+ | Consultar referências irrelevantes | Cruzar `use_when` × problema |
177
+ | Transformar qualquer coisa estranha em bug | Aplicar a seção "False Positives" de cada skill |
178
+ | Tratar inspiração como evidência | Fontes `inspiration`/`curated` só calibram gosto |
179
+ | Copiar código/layout de referências | Extrair princípios, adaptar |
180
+ | Reportar SPECULATIVE como bug | Listar como risco a verificar |
181
+ | Inventar skill inexistente | Verificar `skills/`; marcar gap |
182
+
183
+ ---
184
+
185
+ ## 8. Referência rápida
186
+
187
+ | Precisa de… | Onde |
188
+ |---|---|
189
+ | Regras globais + escala de evidência | `AGENTS.md` |
190
+ | Seleção de skills | `skills/meta/skill-router/` |
191
+ | Seleção de fontes | `skills/meta/research-router/` + `references/` |
192
+ | Como escrever uma skill | `docs/skill-authoring.md` |
193
+ | Como adicionar referência | `docs/reference-authoring.md` |
194
+ | Princípios do projeto | `docs/philosophy.md` |
195
+ | Relatório de auditoria | `templates/audit-report.md` |
196
+ | Bug report | `templates/bug-report.md` |
197
+ | Design review | `templates/design-review.md` |
198
+ | Research report | `templates/research-report.md` |
199
+ | Exemplos reais | `examples/` |
200
+ | Validação do repositório | `python3 scripts/validate.py` |
@@ -0,0 +1,131 @@
1
+ # Philosophy
2
+
3
+ > **Don't just review the code. Attack the assumptions behind the system.`
4
+
5
+ A filosofia deste repositório é que uma skill não é uma lista de comandos. É uma
6
+ **estrutura de raciocínio** que ensina o agente a descobrir problemas que ele não sabia
7
+ que deveria procurar.
8
+
9
+ ---
10
+
11
+ ## 1. Skills ensinam como pensar
12
+
13
+ Uma skill fornece:
14
+
15
+ * **modelo mental** — a lente através da qual enxergar o sistema;
16
+ * **perguntas** — o que questionar quando algo parece normal demais;
17
+ * **heurísticas** — atalhos de decisão baseados em padrões conhecidos;
18
+ * **padrões de ataque** — sequências concretas de operações que expõem defeitos;
19
+ * **processo de investigação** — a ordem em que investigar;
20
+ * **critérios de evidência** — o que conta como confirmação;
21
+ * **critérios de falso positivo** — quando um comportamento estranho é aceitável;
22
+ * **formato de saída** — como reportar de forma acionável.
23
+
24
+ Nenhuma skill deve depender de conhecimento implícito que não esteja documentado ou
25
+ disponível através das referências.
26
+
27
+ ## 2. Referências ensinam onde olhar
28
+
29
+ Sites, projetos, produtos e documentações externas não ficam espalhados pelas skills.
30
+ Elas vivem em um catálogo centralizado em `references/`, classificadas por classe de
31
+ conhecimento e nível de autoridade.
32
+
33
+ ```text
34
+ skills/ como pensar
35
+ knowledge/ o que considerar
36
+ references/ onde pesquisar
37
+ ```
38
+
39
+ Isto mantém as skills focadas em raciocínio e evita que se tornem um dump de URLs.
40
+
41
+ ## 3. Pesquisar antes de reinventar
42
+
43
+ Para tarefas não triviais, o agente pergunta:
44
+
45
+ > "Alguém já resolveu esse problema?"
46
+
47
+ E pesquisa, em ordem de confiabilidade:
48
+
49
+ 1. código existente no projeto;
50
+ 2. documentação oficial;
51
+ 3. GitHub;
52
+ 4. produtos reais;
53
+ 5. design systems;
54
+ 6. sites especializados;
55
+ 7. artigos técnicos;
56
+ 8. galerias de inspiração.
57
+
58
+ ## 4. Referências não são especificações
59
+
60
+ O agente extrai princípios, padrões, decisões, trade-offs, soluções e problemas
61
+ conhecidos. Não copia cegamente código, layout, branding, identidade visual, conteúdo
62
+ ou componentes proprietários.
63
+
64
+ Inspiração, não cópia.
65
+
66
+ ## 5. Evidência > especulação
67
+
68
+ Todo finding é classificado em um destes níveis:
69
+
70
+ ```text
71
+ CONFIRMED — reproduzido com evidência direta
72
+ HIGH CONFIDENCE — forte indício técnico, sem reprodução completa
73
+ POSSIBLE — plausível, exige mais investigação
74
+ SPECULATIVE — hipótese sem evidência; risco a verificar, não bug
75
+ ```
76
+
77
+ Nunca transformar uma hipótese em bug confirmado. Ver `AGENTS.md` § 2.
78
+
79
+ ## 6. Evitar overengineering
80
+
81
+ ```text
82
+ uncertainty + impact + irreversibility
83
+ ```
84
+
85
+ quanto maiores, maior o nível de pesquisa. Pesquisa é proporcional à complexidade —
86
+ não é um ritual aplicado a tudo.
87
+
88
+ O sistema deve evitar: pesquisar tudo sempre, executar todas as skills, produzir
89
+ relatórios gigantes, consultar referências irrelevantes, transformar qualquer
90
+ comportamento estranho em bug, adicionar dependências desnecessárias.
91
+
92
+ ## 7. Visão final
93
+
94
+ ```text
95
+ AGENT
96
+
97
+
98
+ SKILL ROUTER
99
+
100
+ ┌───────────┼───────────┐
101
+ ↓ ↓ ↓
102
+ AUDIT PRODUCT FRONTEND
103
+ │ │ │
104
+ └───────────┼───────────┘
105
+
106
+ RESEARCH ROUTER
107
+
108
+ ┌─────────────┼─────────────┐
109
+ ↓ ↓ ↓
110
+ GitHub Products References
111
+ │ │ │
112
+ └─────────────┼─────────────┘
113
+
114
+ SYNTHESIS
115
+
116
+
117
+ IMPLEMENT
118
+
119
+
120
+ ADVERSARIAL TEST
121
+
122
+
123
+ VERIFY
124
+
125
+
126
+ REPORT
127
+ ```
128
+
129
+ O objetivo final não é criar um agente que **sabe mais**.
130
+ É criar um agente que **sabe como descobrir mais, onde procurar, quais perguntas fazer
131
+ e como verificar se está certo**.
@@ -0,0 +1,117 @@
1
+ # Reference Authoring
2
+
3
+ Como adicionar fontes externas ao catálogo. As referências são centralizadas em
4
+ `references/` — nunca embutidas em skills — para que o `research-router` possa
5
+ despachar para elas e o `scripts/validate.py` possa validar o schema.
6
+
7
+ ## Por que centralizado
8
+
9
+ Sites, projetos, produtos e documentações externas não ficam espalhados pelas skills.
10
+ Isto evita:
11
+
12
+ * URLs duplicadas e que apodrecem em múltiplas skills;
13
+ * skills que viram um dump de links em vez de raciocínio;
14
+ * inconsistência sobre quais fontes são confiáveis.
15
+
16
+ ```text
17
+ skills/ como pensar
18
+ references/ onde pesquisar
19
+ ```
20
+
21
+ ## Arquivos
22
+
23
+ ```text
24
+ references/
25
+ ├── frontend.yaml
26
+ ├── ux.yaml
27
+ ├── engineering.yaml
28
+ ├── security.yaml
29
+ ├── product.yaml
30
+ └── research.yaml
31
+ ```
32
+
33
+ Cada arquivo é uma lista YAML de entradas. Um arquivo por domínio.
34
+
35
+ ## Schema de cada entrada
36
+
37
+ ```yaml
38
+ - name: Example
39
+ url: https://example.com
40
+ type: methodology
41
+ category: ux
42
+ authority: established
43
+ use_when:
44
+ - reviewing usability
45
+ - designing flows
46
+ avoid_when:
47
+ - unrelated backend task
48
+ search_queries:
49
+ - "example usability heuristics"
50
+ - "example flow design patterns"
51
+ ```
52
+
53
+ | Campo | Tipo | Valores |
54
+ |---|---|---|
55
+ | `name` | string | Nome reconhecível da fonte. |
56
+ | `url` | string | URL canônica. |
57
+ | `type` | enum | `methodology` \| `heuristic` \| `inspiration` \| `implementation` \| `discovery` |
58
+ | `category` | string | Domínio — corresponde ao arquivo (`frontend`, `ux`, `engineering`, `security`, `product`, `research`). |
59
+ | `authority` | enum | `established` \| `community` \| `vendor` \| `curated` (ver abaixo). |
60
+ | `use_when` | list[string] | Situações em que a fonte é relevante. |
61
+ | `avoid_when` | list[string] | Situações em que não é útil ou é misleading. |
62
+ | `search_queries` | list[string] | Queries prontas para alimentar busca. |
63
+
64
+ ## Classes de conhecimento (`type`)
65
+
66
+ Não tratar todas as fontes como iguais. O `type` diz **que tipo de coisa** a fonte
67
+ oferece:
68
+
69
+ | `type` | O que é | Exemplo |
70
+ |---|---|---|
71
+ | `methodology` | Um método ou framework estruturado | Laws of UX |
72
+ | `heuristic` | Heurísticas e princípios aplicáveis | Impeccable |
73
+ | `inspiration` | Inspiração visual, não prescritiva | Dribbble |
74
+ | `implementation` | Código/padrões concretos de implementação | Animate UI |
75
+ | `discovery` | Ferramenta de descoberta de mais fontes | LazyWeb, Shoogle |
76
+
77
+ ## Níveis de autoridade (`authority`)
78
+
79
+ Nem toda fonte tem o mesmo peso. O `authority` diz **quanto confiar**:
80
+
81
+ | `authority` | Significado |
82
+ |---|---|
83
+ | `established` | Autoridade reconhecida, padrão de fato, documentação oficial. Maior peso. |
84
+ | `vendor` | Documentação de um vendor/framework específico. Confiável dentro do seu domínio. |
85
+ | `community` | Sabedoria da comunidade, curadoria coletiva. Útil mas verificar. |
86
+ | `curated` | Coleção curada (galerias, agregadores). Inspiração; não prescritivo. |
87
+
88
+ Ao sintetizar pesquisa, fontes `established` e `vendor` pesam mais que `curated` e
89
+ `inspiration`. Ver `AGENTS.md` § 5 (síntese) e § 1 (distinguir inspiração de evidência).
90
+
91
+ ## Regras
92
+
93
+ 1. **Uma fonte, uma entrada.** Não duplicar URLs entre arquivos. Se uma fonte serve a
94
+ múltiplos domínios, escolha o domínio primário e referencie-o do router.
95
+ 2. **`search_queries` sempre preenchido.** O `research-router` e as research skills
96
+ usam estas queries; entradas sem queries são inacionáveis.
97
+ 3. **`use_when`/`avoid_when` específicos.** "Quando útil" genérico não ajuda o router a
98
+ decidir entre fontes.
99
+ 4. **Inspiração ≠ evidência.** Fontes `type: inspiration` ou `authority: curated`
100
+ nunca justificam um finding técnico por si só.
101
+ 5. **URLs canônicas.** Use a URL raiz ou a página mais estável, não um deep link que
102
+ pode quebrar.
103
+
104
+ ## Validação
105
+
106
+ ```bash
107
+ python3 scripts/validate.py
108
+ ```
109
+
110
+ O validator verifica, para cada `references/*.yaml`:
111
+
112
+ * YAML sintaticamente válido;
113
+ * cada entrada tem todos os sete campos;
114
+ * `type` e `authority` são enums válidos;
115
+ * `category` corresponde ao arquivo em que está;
116
+ * `url` é uma URL absoluta com esquema;
117
+ * `use_when`, `avoid_when`, `search_queries` são listas não-vazias.
@@ -0,0 +1,126 @@
1
+ # Skill Authoring
2
+
3
+ Como escrever uma skill. Toda skill segue um formato padrão para que o `skill-router`
4
+ possa despachar para ela, o `scripts/validate.py` possa verificá-la, e skills possam
5
+ compor entre si sem ambiguidade.
6
+
7
+ ## Localização
8
+
9
+ ```text
10
+ skills/<categoria>/<nome-da-skill>/SKILL.md
11
+ ```
12
+
13
+ Categorias: `audit`, `security`, `reliability`, `product`, `frontend`, `research`,
14
+ `meta`. O nome da skill é kebab-case e corresponde exatamente ao `name` no frontmatter.
15
+
16
+ ## Frontmatter
17
+
18
+ YAML, entre `---`:
19
+
20
+ ```yaml
21
+ ---
22
+ name: skill-name
23
+ description: Short description
24
+ category: audit
25
+ triggers:
26
+ - trigger
27
+ - another trigger
28
+ priority: high
29
+ ---
30
+ ```
31
+
32
+ | Campo | Tipo | Descrição |
33
+ |---|---|---|
34
+ | `name` | string | kebab-case, igual ao nome do diretório. |
35
+ | `description` | string | Descrição curta — usada para seleção. |
36
+ | `category` | string | Uma das categorias acima. |
37
+ | `triggers` | list[string] | Frases/tópicos que indicam quando a skill é relevante. O `skill-router` despacha com base nisto. |
38
+ | `priority` | enum | `low` \| `medium` \| `high`. Indica quão central é a skill para a categoria. |
39
+
40
+ ## Corpo — nove seções fixas
41
+
42
+ Ordem obrigatória. Nenhuma seção pode ser omitida (use "N/A" com justificativa se
43
+ genuinamente não aplicável, mas prefira sempre preencher).
44
+
45
+ ```markdown
46
+ # Skill Name
47
+
48
+ ## Objective
49
+ O que esta skill ensina o agente a fazer. Uma frase.
50
+
51
+ ## When to Use
52
+ Quando ativá-la. Condições, tipos de tarefa, sintomas. Corresponde aos `triggers`
53
+ expandidos em prosa.
54
+
55
+ ## Mental Model
56
+ A lente de raciocínio. Como enxergar o sistema através desta skill.
57
+
58
+ ## Investigation Procedure
59
+ A ordem das investigações. Passo a passo, sequencial.
60
+
61
+ ## Questions to Ask
62
+ Perguntas concretas a fazer sobre o sistema. Cada uma expõe uma classe de defeito.
63
+
64
+ ## Attack Patterns
65
+ Sequências concretas de operações que expõem defeitos. Verbs like repeat, reverse,
66
+ reorder, skip, replay, concurrent, manipulate.
67
+
68
+ ## Evidence Requirements
69
+ O que conta como confirmação. Como reproduzir. Que nível de evidência é necessário
70
+ para subir o finding de POSSIBLE para CONFIRMED. Referencie a escala em AGENTS.md § 2.
71
+
72
+ ## False Positives
73
+ Quando o comportamento "estranho" detectado é na verdade aceitável ou intencional.
74
+ O que NÃO reportar. Minimiza ruído.
75
+
76
+ ## Output Format
77
+ Como reportar findings. Aponte para `templates/audit-report.md` e liste os campos
78
+ obrigatórios. Toda skill de auditoria deve produzir findings no formato padronizado.
79
+ ```
80
+
81
+ ## Qualidade — seis perguntas
82
+
83
+ Toda skill também deve responder (seção 21 do `plan.md`):
84
+
85
+ | Pergunta | Onde vive no SKILL.md |
86
+ |---|---|
87
+ | **Necessidade** — qual problema ela resolve? | `Objective` |
88
+ | **Escopo** — quando deve ser ativada? | `When to Use` + `triggers` |
89
+ | **Heurísticas** — quais perguntas ela ensina? | `Questions to Ask` + `Mental Model` |
90
+ | **Evidência** — como confirmar o finding? | `Evidence Requirements` |
91
+ | **Falsos positivos** — quando o comportamento é aceitável? | `False Positives` |
92
+ | **Composição** — quais skills trabalham junto? | `When to Use` (parágrafo final) ou seção dedicada |
93
+
94
+ Se uma skill não consegue responder às seis, ela não está pronta.
95
+
96
+ ## Convenções de escrita
97
+
98
+ * **Termos estruturais em inglês** — nomes de skills, cabeçalhos das nove seções,
99
+ campos de frontmatter, enums (CONFIRMED, etc.). Isto mantém compatibilidade com o
100
+ router e o validator.
101
+ * **Prosa explicativa em português** — modelo mental, perguntas, procedimento. Isto
102
+ segue a convenção do `plan.md`.
103
+ * **Diagrams em blocos de código `text`** — fluxos e pipelines ficam legíveis em
104
+ terminal e não dependem de renderização.
105
+ * **Sem conhecimento implícito** — se a skill depende de um conceito, documente-o
106
+ ou aponte para `references/`.
107
+
108
+ ## Validação
109
+
110
+ ```bash
111
+ python3 scripts/validate.py
112
+ ```
113
+
114
+ O validator verifica:
115
+
116
+ * frontmatter com os cinco campos (`name`, `description`, `category`, `triggers`,
117
+ `priority`);
118
+ * `name` igual ao nome do diretório;
119
+ * `category` válida;
120
+ * `priority` em `low`/`medium`/`high`;
121
+ * as nove seções presentes, em ordem, como headings `##`.
122
+
123
+ ## Exemplo
124
+
125
+ Ver `skills/audit/adversarial-review/SKILL.md` para a skill de referência, e
126
+ `examples/` para auditorias completas.