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.
- package/AGENTS.md +249 -0
- package/LICENSE +21 -0
- package/README.md +113 -0
- package/bin/cli.js +223 -0
- package/docs/agent-integration.md +200 -0
- package/docs/philosophy.md +131 -0
- package/docs/reference-authoring.md +117 -0
- package/docs/skill-authoring.md +126 -0
- package/examples/authorization-bypass.md +191 -0
- package/examples/frontend-review.md +244 -0
- package/examples/race-condition.md +128 -0
- package/examples/xp-reward-loop.md +123 -0
- package/package.json +45 -0
- package/references/engineering.yaml +88 -0
- package/references/frontend.yaml +139 -0
- package/references/product.yaml +54 -0
- package/references/research.yaml +88 -0
- package/references/security.yaml +85 -0
- package/references/ux.yaml +37 -0
- package/scripts/validate.py +454 -0
- package/skills/audit/adversarial-review/SKILL.md +190 -0
- package/skills/audit/business-logic-audit/SKILL.md +182 -0
- package/skills/audit/edge-case-hunter/SKILL.md +159 -0
- package/skills/audit/error-flow-audit/SKILL.md +184 -0
- package/skills/audit/state-consistency-audit/SKILL.md +174 -0
- package/skills/audit/user-flow-audit/SKILL.md +161 -0
- package/skills/frontend/accessibility-review/SKILL.md +186 -0
- package/skills/frontend/animation-review/SKILL.md +171 -0
- package/skills/frontend/interaction-design/SKILL.md +162 -0
- package/skills/frontend/ux-review/SKILL.md +172 -0
- package/skills/frontend/visual-quality-review/SKILL.md +160 -0
- package/skills/meta/research-router/SKILL.md +184 -0
- package/skills/meta/skill-router/SKILL.md +206 -0
- package/skills/product/gamification-audit/SKILL.md +213 -0
- package/skills/reliability/data-integrity-audit/SKILL.md +187 -0
- package/skills/reliability/idempotency-audit/SKILL.md +191 -0
- package/skills/reliability/race-condition-hunter/SKILL.md +181 -0
- package/skills/research/github-reference-research/SKILL.md +197 -0
- package/skills/research/implementation-research/SKILL.md +181 -0
- package/skills/research/market-research/SKILL.md +202 -0
- package/skills/research/reference-research/SKILL.md +186 -0
- package/skills/security/api-abuse-audit/SKILL.md +178 -0
- package/skills/security/authorization-audit/SKILL.md +176 -0
- package/skills/security/input-trust-audit/SKILL.md +178 -0
- package/templates/audit-report.md +89 -0
- package/templates/bug-report.md +107 -0
- package/templates/design-review.md +122 -0
- 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.
|