@brunosps00/dev-workflow 1.0.1 → 1.0.4
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/README.md +33 -16
- package/bin/dev-workflow.js +24 -7
- package/lib/aws-categories.js +80 -0
- package/lib/azure-categories.js +168 -0
- package/lib/constants.js +14 -6
- package/lib/init.js +28 -0
- package/lib/install-aws-skills.js +345 -0
- package/lib/install-azure-skills.js +231 -0
- package/lib/mcp.js +32 -21
- package/lib/prompts.js +38 -1
- package/package.json +1 -1
- package/scaffold/en/agent-instructions.md +23 -0
- package/scaffold/en/commands/dw-analyze-project.md +64 -0
- package/scaffold/en/commands/dw-autopilot.md +64 -5
- package/scaffold/en/commands/dw-bugfix.md +124 -26
- package/scaffold/en/commands/dw-install-aws-skills.md +166 -0
- package/scaffold/en/commands/dw-install-azure-skills.md +138 -0
- package/scaffold/en/commands/dw-intel.md +30 -3
- package/scaffold/en/commands/dw-pause.md +92 -0
- package/scaffold/en/commands/dw-qa.md +87 -11
- package/scaffold/en/commands/dw-resume.md +90 -0
- package/scaffold/en/commands/dw-review.md +22 -12
- package/scaffold/en/templates/bugfix-summary-template.md +66 -0
- package/scaffold/en/templates/concerns-template.md +59 -0
- package/scaffold/en/templates/state-template.md +59 -0
- package/scaffold/pt-br/agent-instructions.md +23 -0
- package/scaffold/pt-br/commands/dw-analyze-project.md +64 -0
- package/scaffold/pt-br/commands/dw-autopilot.md +64 -5
- package/scaffold/pt-br/commands/dw-bugfix.md +134 -18
- package/scaffold/pt-br/commands/dw-install-aws-skills.md +166 -0
- package/scaffold/pt-br/commands/dw-install-azure-skills.md +138 -0
- package/scaffold/pt-br/commands/dw-intel.md +30 -3
- package/scaffold/pt-br/commands/dw-pause.md +92 -0
- package/scaffold/pt-br/commands/dw-qa.md +87 -11
- package/scaffold/pt-br/commands/dw-resume.md +90 -0
- package/scaffold/pt-br/commands/dw-review.md +22 -12
- package/scaffold/pt-br/templates/bugfix-summary-template.md +66 -0
- package/scaffold/pt-br/templates/concerns-template.md +59 -0
- package/scaffold/pt-br/templates/state-template.md +59 -0
- package/scaffold/skills/dw-codebase-intel/SKILL.md +9 -5
- package/scaffold/skills/dw-codebase-intel/references/query-patterns.md +52 -0
- package/scaffold/skills/dw-memory/SKILL.md +26 -1
- package/scaffold/skills/dw-memory/references/context-budget.md +63 -0
|
@@ -9,7 +9,30 @@
|
|
|
9
9
|
- NÃO use para corrigir bugs encontrados durante testes de QA (use `/dw-qa --fix` em vez disso)
|
|
10
10
|
|
|
11
11
|
## Posição no Pipeline
|
|
12
|
-
**Antecessor:** (bug report) | **Sucessor:** `/dw-commit` e depois `/dw-generate-pr`
|
|
12
|
+
**Antecessor:** (bug report) | **Sucessor:** `/dw-commit` e depois `/dw-generate-pr` (opcionalmente `/dw-review --bugfix <slug>` e `/dw-qa --bugfix <slug>` no meio para rigor extra)
|
|
13
|
+
|
|
14
|
+
## Localização dos Arquivos
|
|
15
|
+
|
|
16
|
+
Todo bugfix tem uma entrada de índice em `.dw/bugfixes/`. Modo Direto mantém o artefato completo lá. Modo Análise e escalações via safety valve dividem: a entrada de índice fica em `.dw/bugfixes/`, mas o `prd.md` que o `/dw-plan` vai consumir é colocado em `.dw/spec/prd-bugfix-<slug>/` (o path que `/dw-plan techspec` e `/dw-plan tasks` já esperam).
|
|
17
|
+
|
|
18
|
+
**Casa do índice — sempre criada:**
|
|
19
|
+
|
|
20
|
+
- Diretório de índice do bugfix: `.dw/bugfixes/NNN-<slug>/` (NNN com 3 dígitos, sequencial em todos os bugfixes já registrados)
|
|
21
|
+
- Artefatos modo Direto aqui: `TASK.md` (triagem + plano), `fix-report.md` (evidência de verify), `SUMMARY.md` (registro de uma página)
|
|
22
|
+
- Artefatos modo Análise / escalação aqui: `TASK.md` (triagem + plano que seria executado), `escalated.md` (uma linha apontando para o diretório do spec que assumiu)
|
|
23
|
+
- Saída de review downstream (quando `/dw-review --bugfix <slug>` roda): `.dw/bugfixes/NNN-<slug>/review/`
|
|
24
|
+
- Saída de QA downstream (quando `/dw-qa --bugfix <slug>` roda): `.dw/bugfixes/NNN-<slug>/QA/`
|
|
25
|
+
|
|
26
|
+
**Casa do spec — criada apenas em Análise ou escalação via safety valve:**
|
|
27
|
+
|
|
28
|
+
- Diretório de spec: `.dw/spec/prd-bugfix-<slug>/`
|
|
29
|
+
- `prd.md` mora aqui (NÃO em `.dw/bugfixes/`) para que `/dw-plan techspec prd-bugfix-<slug>` e `/dw-plan tasks prd-bugfix-<slug>` operem contra o path que foram desenhados, sem nenhuma modificação ao `/dw-plan`.
|
|
30
|
+
|
|
31
|
+
**Templates:** `.dw/templates/bugfix-template.md` (para `TASK.md`/`prd.md`), `.dw/templates/bugfix-summary-template.md` (para `SUMMARY.md`), `.dw/templates/pr-bugfix-template.md` (para o corpo do PR).
|
|
32
|
+
|
|
33
|
+
**Descoberta do próximo NNN:** liste `.dw/bugfixes/`, parseie o prefixo de 3 dígitos de cada diretório, tome `max + 1` (ou `1` se vazio). Crie o diretório antes de escrever qualquer coisa. O mesmo `NNN-<slug>` é usado para nomear a parte slug do diretório de spec (ex: bugfix `007-stripe-webhook-retry` escala para spec `.dw/spec/prd-bugfix-stripe-webhook-retry/`).
|
|
34
|
+
|
|
35
|
+
**Slug:** kebab-case derivado de `{{BUG_DESCRIPTION}}` (ex: "login-nao-funciona", "erro-500-salvar-usuario").
|
|
13
36
|
|
|
14
37
|
## Skills Complementares
|
|
15
38
|
|
|
@@ -34,23 +57,23 @@
|
|
|
34
57
|
|
|
35
58
|
| Modo | Quando Usar | Resultado |
|
|
36
59
|
|------|-------------|-----------|
|
|
37
|
-
| **Direto** (padrão) | Bug simples, <=5 arquivos, sem migration | Executa correção imediata |
|
|
38
|
-
| **Análise** (`--análise`) | Bug complexo, precisa planejamento |
|
|
60
|
+
| **Direto** (padrão) | Bug simples, <=5 arquivos, sem migration, <=5 tasks numeradas | Executa correção imediata; persiste `TASK.md` + `fix-report.md` + `SUMMARY.md` em `.dw/bugfixes/NNN-<slug>/` |
|
|
61
|
+
| **Análise** (`--análise`) | Bug complexo, precisa planejamento | Divide: `.dw/bugfixes/NNN-<slug>/{TASK.md, escalated.md}` como entrada de índice + `.dw/spec/prd-bugfix-<slug>/prd.md` para o pipeline techspec -> tasks |
|
|
39
62
|
|
|
40
63
|
### Modo Análise
|
|
41
64
|
|
|
42
|
-
Quando o usuário especificar `--análise` ou quando
|
|
65
|
+
Quando o usuário especificar `--análise` ou quando o safety valve (passo 5.0) disparar:
|
|
43
66
|
|
|
44
67
|
```
|
|
45
68
|
/dw-bugfix meu-projeto "Login não funciona" --análise
|
|
46
69
|
```
|
|
47
70
|
|
|
48
71
|
Neste modo:
|
|
49
|
-
1. Segue o fluxo normal de perguntas e análise
|
|
50
|
-
2.
|
|
51
|
-
3.
|
|
52
|
-
4.
|
|
53
|
-
5.
|
|
72
|
+
1. Segue o fluxo normal de perguntas e análise.
|
|
73
|
+
2. Aloca `NNN` e cria `.dw/bugfixes/NNN-<slug>/`. Escreve `TASK.md` (a triagem + respostas + plano que seria executado mas não roda aqui).
|
|
74
|
+
3. Cria o diretório de spec `.dw/spec/prd-bugfix-<slug>/` e escreve `prd.md` lá (usando `.dw/templates/bugfix-template.md`). Este é o path que `/dw-plan techspec` e `/dw-plan tasks` já sabem operar.
|
|
75
|
+
4. Escreve `.dw/bugfixes/NNN-<slug>/escalated.md` com exatamente uma linha: `Escalated to /dw-plan on <YYYY-MM-DD> → see .dw/spec/prd-bugfix-<slug>/`. Esse cross-reference permite que `/dw-intel --build` inclua o bugfix em `bugfixes.json` mesmo com o planejamento ativo acontecendo em `.dw/spec/`.
|
|
76
|
+
5. Avise ao usuário os próximos comandos: `/dw-plan techspec prd-bugfix-<slug>` e `/dw-plan tasks prd-bugfix-<slug>`.
|
|
54
77
|
|
|
55
78
|
## Fluxo de Trabalho
|
|
56
79
|
|
|
@@ -141,6 +164,27 @@
|
|
|
141
164
|
- {{TARGET}}/.dw/rules/*.md
|
|
142
165
|
```
|
|
143
166
|
|
|
167
|
+
### 1.5. Carregar Concerns (Obrigatório quando concerns.md existe)
|
|
168
|
+
|
|
169
|
+
Se `.dw/rules/concerns.md` existir:
|
|
170
|
+
- Leia uma vez.
|
|
171
|
+
- Para cada arquivo ou módulo referenciado em `{{BUG_DESCRIPTION}}` ou na área suspeita do fix, cruze com Hot Spots, Integrações Frágeis, Código Hostil e Histórico de Bugs Conhecidos.
|
|
172
|
+
- Se houver match, sinalize ANTES das 3 perguntas de clarificação:
|
|
173
|
+
|
|
174
|
+
```
|
|
175
|
+
## Concern detectada
|
|
176
|
+
|
|
177
|
+
A área que você está tocando está flagada em `.dw/rules/concerns.md`:
|
|
178
|
+
|
|
179
|
+
> [entrada verbatim do concerns.md]
|
|
180
|
+
|
|
181
|
+
Isso significa: [traduzir a concern para o que implica neste fix — teste extra, revisor extra, ADR, etc.]
|
|
182
|
+
|
|
183
|
+
Prosseguindo — mas o fix-report.md precisa registrar explicitamente qual concern foi tocada e como foi tratada.
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
Se `.dw/rules/concerns.md` não existir, NÃO crie automaticamente (isso é trabalho do Step 9 do `/dw-analyze-project`). Anote no chat: "ainda sem mapa de concerns — considere rodar `/dw-analyze-project` depois do fix para construir um." Continue.
|
|
187
|
+
|
|
144
188
|
### 2. Coletar Evidências (Obrigatório)
|
|
145
189
|
|
|
146
190
|
Execute comandos para entender o estado atual:
|
|
@@ -199,6 +243,40 @@
|
|
|
199
243
|
| Afeta múltiplos projetos? | Redirecionar para PRD |
|
|
200
244
|
| Estimativa > 2 horas de implementação? | Redirecionar para PRD |
|
|
201
245
|
|
|
246
|
+
### 5.0. Safety Valve (OBRIGATÓRIO antes do passo 5)
|
|
247
|
+
|
|
248
|
+
<critical>
|
|
249
|
+
ANTES de desenhar a lista numerada do passo 5, esboce inline os passos que pretende escrever.
|
|
250
|
+
Se esse esboço revelar **mais de 5 tasks numeradas distintas**, OU **qualquer dependência cross-file que obrigue ordem específica de execução**, OU **uma task que requeira rodar migration / refactor / novo endpoint / alteração de contrato de API**, então o escopo do bugfix foi SUBESTIMADO e você DEVE escalar.
|
|
251
|
+
</critical>
|
|
252
|
+
|
|
253
|
+
**Por que isso existe:** a triagem do passo 0 pega problemas de escopo a partir da descrição do sintoma. O checkpoint 4.1 pega depois da análise de causa raiz. Esta válvula pega o caso que sobra — quando o fix em si, uma vez listado, revela mais complexidade do que triagem e RCA previram. NÃO existe flag de bypass. Escalar é o desfecho correto.
|
|
254
|
+
|
|
255
|
+
**Procedimento de escalação:**
|
|
256
|
+
|
|
257
|
+
1. Aloque `NNN` para `.dw/bugfixes/NNN-<slug>/`. Escreva `TASK.md` com a triagem, clarificações, causa raiz e plano que seria executado.
|
|
258
|
+
2. Crie `.dw/spec/prd-bugfix-<slug>/` e escreva `prd.md` lá (use `.dw/templates/bugfix-template.md`). Este é o path que `/dw-plan` espera.
|
|
259
|
+
3. Escreva `.dw/bugfixes/NNN-<slug>/escalated.md` com: `Escalated to /dw-plan on <YYYY-MM-DD> — reason: <qual critério da válvula disparou> → see .dw/spec/prd-bugfix-<slug>/`.
|
|
260
|
+
4. Reporte ao usuário:
|
|
261
|
+
|
|
262
|
+
```
|
|
263
|
+
## Escopo maior que bugfix
|
|
264
|
+
|
|
265
|
+
Listando o fix produziu [N] tasks / [deps cross-file] / [tipo de mudança proibida].
|
|
266
|
+
Pelo safety valve, isso não é mais um bugfix cirúrgico.
|
|
267
|
+
|
|
268
|
+
Índice do bugfix preservado em `.dw/bugfixes/NNN-<slug>/{TASK.md, escalated.md}`.
|
|
269
|
+
PRD criado em `.dw/spec/prd-bugfix-<slug>/prd.md`.
|
|
270
|
+
|
|
271
|
+
Próximo — escolha um:
|
|
272
|
+
- Cadeia manual: `/dw-plan techspec prd-bugfix-<slug>` → `/dw-plan tasks prd-bugfix-<slug>` → `/dw-run` → `/dw-qa` → `/dw-review` → `/dw-commit` → `/dw-generate-pr`.
|
|
273
|
+
- Entregar pro autopilot: `/dw-autopilot --from-prd prd-bugfix-<slug>` — retoma no GATE 1 (aprovação do PRD) e roda o resto automaticamente com os três gates usuais.
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
5. Pare este comando. Não avance para o passo 5. O usuário (ou autopilot) invoca `/dw-plan` ou `/dw-autopilot --from-prd` em seguida.
|
|
277
|
+
|
|
278
|
+
**Se a válvula NÃO disparar:** Continue para o passo 5.
|
|
279
|
+
|
|
202
280
|
### 5. Propor Tarefas Numeradas (Obrigatório)
|
|
203
281
|
|
|
204
282
|
<critical>
|
|
@@ -222,29 +300,64 @@
|
|
|
222
300
|
- `ajustar` - me diga o que modificar no plano
|
|
223
301
|
```
|
|
224
302
|
|
|
225
|
-
### 5.5. Verificação Final (Modo Direto — obrigatório antes do commit)
|
|
303
|
+
### 5.5. Verificação Final + Persistência (Modo Direto — obrigatório antes do commit)
|
|
226
304
|
|
|
227
305
|
<critical>Após aplicar as tarefas aprovadas em modo Direto, invocar `dw-verify` antes do commit. O VERIFICATION REPORT deve mostrar:
|
|
228
306
|
1. O comando de verificação do projeto (test + lint + build) com exit 0.
|
|
229
307
|
2. Reprodução do sintoma original: o cenário que disparava o bug já NÃO dispara mais.
|
|
230
|
-
|
|
308
|
+
|
|
231
309
|
Sem PASS nos dois, NÃO commit. Reportar o que falhou e retomar da etapa 4 (análise de causa raiz).</critical>
|
|
232
310
|
|
|
311
|
+
**Em caso de PASS, persistir o artefato do bugfix (sempre — inclusive em modo Direto):**
|
|
312
|
+
|
|
313
|
+
1. Descubra o próximo `NNN` (ver seção Localização dos Arquivos).
|
|
314
|
+
2. Crie `.dw/bugfixes/NNN-<slug>/` se ainda não foi criado no passo 5.0.
|
|
315
|
+
3. Escreva `TASK.md` com a triagem, clarificações, causa raiz e plano aprovado como executado (use `.dw/templates/bugfix-template.md` como base).
|
|
316
|
+
4. Escreva `fix-report.md` com o VERIFICATION REPORT verbatim do `dw-verify` mais o trace antes/depois da reprodução.
|
|
317
|
+
5. Escreva `SUMMARY.md` usando `.dw/templates/bugfix-summary-template.md`. Preencha slug, data, status `Fixed`, severidade, related_concerns (do passo 1.5), Sintoma (verbatim), Causa Raiz (uma frase), Resolução (2-4 bullets), Arquivos Tocados, Verificação, Relacionado, Followups.
|
|
318
|
+
6. Se o fix tocou uma concern listada em `.dw/rules/concerns.md`, anexe uma linha à coluna `Last incident` da row daquela concern (ou adicione uma row nova sob Histórico de Bugs Conhecidos) — preserve entradas escritas a mão entre `<!-- preserved:start -->`.
|
|
319
|
+
7. Reporte os paths dos três arquivos no chat antes do passo de commit.
|
|
320
|
+
|
|
233
321
|
### 6. Gerar Documento Bugfix (Modo Análise)
|
|
234
322
|
|
|
235
323
|
<critical>
|
|
236
324
|
Este passo é executado quando:
|
|
237
325
|
- Usuário especificou `--análise` no início
|
|
238
326
|
- Checkpoint 4.1 detectou escopo excessivo e usuário escolheu `análise`
|
|
327
|
+
- Safety valve 5.0 disparou
|
|
239
328
|
</critical>
|
|
240
329
|
|
|
241
330
|
**Ações:**
|
|
242
|
-
1.
|
|
243
|
-
2.
|
|
244
|
-
3.
|
|
331
|
+
1. Descubra o próximo `NNN` e crie `.dw/bugfixes/NNN-<slug>/`.
|
|
332
|
+
2. Escreva `TASK.md` no diretório do bugfix (a triagem, clarificações, causa raiz e saída da análise) usando `.dw/templates/bugfix-template.md` como base.
|
|
333
|
+
3. Crie `.dw/spec/prd-bugfix-<slug>/` e escreva `prd.md` lá usando `.dw/templates/bugfix-template.md`. Este é o path que `/dw-plan` já entende — sem modificação no `/dw-plan`.
|
|
334
|
+
4. Escreva `.dw/bugfixes/NNN-<slug>/escalated.md` com: `Analysis mode on <YYYY-MM-DD> → see .dw/spec/prd-bugfix-<slug>/`.
|
|
335
|
+
|
|
336
|
+
**Slug do bug:** kebab-case da descrição (ex: "login-nao-funciona", "erro-500-salvar-usuario").
|
|
337
|
+
|
|
338
|
+
**Por que o split:** `/dw-plan techspec` e `/dw-plan tasks` já hardcodam `.dw/spec/prd-<slug>/prd.md` como entrada. Para manter `/dw-plan` intocado, o PRD vai pra lá; `.dw/bugfixes/NNN-<slug>/` continua a entrada de índice queryable (consumida por `/dw-intel`, `/dw-review --bugfix`, `/dw-qa --bugfix`). O `escalated.md` é o cross-reference.
|
|
339
|
+
|
|
340
|
+
**Formato de saída:**
|
|
341
|
+
```
|
|
342
|
+
## Documento de Bugfix Gerado
|
|
343
|
+
|
|
344
|
+
Índice do bugfix: `.dw/bugfixes/NNN-<slug>/{TASK.md, escalated.md}`
|
|
345
|
+
PRD de planejamento: `.dw/spec/prd-bugfix-<slug>/prd.md`
|
|
245
346
|
|
|
246
|
-
**
|
|
247
|
-
|
|
347
|
+
**Próximos passos — escolha um:**
|
|
348
|
+
|
|
349
|
+
Opção A (cadeia manual, controle completo):
|
|
350
|
+
1. Revise `.dw/spec/prd-bugfix-<slug>/prd.md`
|
|
351
|
+
2. Rode: `/dw-plan techspec prd-bugfix-<slug>`
|
|
352
|
+
3. Rode: `/dw-plan tasks prd-bugfix-<slug>`
|
|
353
|
+
4. Execute tasks com: `/dw-run` (ou por task ID contra o spec)
|
|
354
|
+
|
|
355
|
+
Opção B (entregar pro autopilot):
|
|
356
|
+
1. Rode: `/dw-autopilot --from-prd prd-bugfix-<slug>`
|
|
357
|
+
2. Autopilot retoma no GATE 1 (aprovação do PRD) e roda TechSpec, Tasks, Run, QA, Review, Commit, PR com os três gates usuais.
|
|
358
|
+
|
|
359
|
+
O índice do bugfix continua queryable via `/dw-intel "bugfix history in <module>"`. Downstream `/dw-review --bugfix <slug>` e `/dw-qa --bugfix <slug>` ainda apontam para `.dw/bugfixes/NNN-<slug>/` quando quiser uma revisão focada apenas no patch cirúrgico final.
|
|
360
|
+
```
|
|
248
361
|
|
|
249
362
|
## Tipos de Tarefa (permitidos em bugfix)
|
|
250
363
|
|
|
@@ -295,18 +408,21 @@
|
|
|
295
408
|
|
|
296
409
|
## Checklist de Qualidade
|
|
297
410
|
|
|
298
|
-
- [ ] **Triagem Bug vs Feature realizada**
|
|
299
|
-
- [ ] **
|
|
411
|
+
- [ ] **Triagem Bug vs Feature realizada (passo 0)**
|
|
412
|
+
- [ ] **Mapa de concerns consultado se presente (passo 1.5)**
|
|
300
413
|
- [ ] Contexto do projeto/PRD carregado
|
|
301
414
|
- [ ] Evidências coletadas (git log, erros)
|
|
302
415
|
- [ ] **EXATAMENTE 3 perguntas feitas**
|
|
303
416
|
- [ ] Respostas recebidas e analisadas
|
|
304
417
|
- [ ] Causa raiz identificada
|
|
418
|
+
- [ ] **Checkpoint de escopo realizado (passo 4.1)**
|
|
419
|
+
- [ ] **Safety valve checado (passo 5.0) — escalado para `/dw-plan` se disparou**
|
|
305
420
|
- [ ] Tarefas numeradas sequencialmente
|
|
306
421
|
- [ ] **Máximo 5 arquivos afetados**
|
|
307
422
|
- [ ] **Sem migrations**
|
|
308
423
|
- [ ] **Tarefa de teste incluída (framework correto do projeto)**
|
|
309
424
|
- [ ] Aguardando aprovação antes de executar
|
|
425
|
+
- [ ] **`.dw/bugfixes/NNN-<slug>/{TASK,fix-report,SUMMARY}.md` escritos após verify PASS**
|
|
310
426
|
|
|
311
427
|
<critical>
|
|
312
428
|
PRIMEIRO: Avalie se é bug ou feature (Passo 0).
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
<system_instructions>
|
|
2
|
+
Você instala agent skills opt-in da AWS a partir do `aws/agent-toolkit-for-aws` (Apache 2.0) em `.agents/skills/aws/` e registra o AWS MCP Server unificado (stdio via `uvx mcp-proxy-for-aws`, requer credenciais AWS) em `.claude/settings.json`. Mesmo resultado de `npx @brunosps00/dev-workflow install-aws-skills` — interface diferente.
|
|
3
|
+
|
|
4
|
+
## Quando Usar
|
|
5
|
+
- Use quando o usuário pedir para "instalar skills AWS", "configurar MCP da AWS", "adicionar expertise AWS", "vou trabalhar com AWS", ou similar.
|
|
6
|
+
- Use quando um projeto existente começa uma feature que toca AWS (Lambda, S3, Bedrock, EC2, etc.) e ainda não há `.agents/skills/aws/`.
|
|
7
|
+
- NÃO use para Azure, GCP ou clouds não-AWS — têm comandos próprios ou não são suportados.
|
|
8
|
+
- NÃO use para instalar as skills nativas do dev-workflow — essas vêm com `init`/`update`.
|
|
9
|
+
|
|
10
|
+
## Posição no Pipeline
|
|
11
|
+
**Antecessor:** (pedido explícito do usuário) | **Sucessor:** qualquer trabalho de feature AWS (tipicamente `/dw-plan` ou `/dw-autopilot`).
|
|
12
|
+
|
|
13
|
+
## Pré-requisitos
|
|
14
|
+
|
|
15
|
+
<critical>Este comando precisa de:
|
|
16
|
+
1. `git` no PATH.
|
|
17
|
+
2. `uv` (Python tool runner) — provê `uvx` que invoca o `mcp-proxy-for-aws`.
|
|
18
|
+
3. `aws cli` ≥ 2.32.0.
|
|
19
|
+
4. Credenciais AWS válidas — verifique com `aws sts get-caller-identity`.
|
|
20
|
+
|
|
21
|
+
Se QUALQUER um faltar ou estiver inválido, PARE e diga ao usuário como instalar/configurar. NÃO clone ou copie nada se os pré-requisitos não estão prontos — install parcial é pior que nenhum.</critical>
|
|
22
|
+
|
|
23
|
+
## Categorias (nativas do upstream)
|
|
24
|
+
|
|
25
|
+
| Categoria | Caminhos upstream |
|
|
26
|
+
|---|---|
|
|
27
|
+
| **All** | `skills/core-skills/*` + `skills/specialized-skills/*/*` |
|
|
28
|
+
| **Core** | `skills/core-skills/*` — 13 skills horizontais: amazon-bedrock, aws-amplify, aws-billing-and-cost-management, aws-cdk, aws-cloudformation, aws-containers, aws-iam, aws-messaging-and-streaming, aws-observability, aws-sdk-js-v3-usage, aws-sdk-python-usage, aws-sdk-swift-usage, aws-serverless |
|
|
29
|
+
| **Analytics** | `skills/specialized-skills/analytics-skills/*` |
|
|
30
|
+
| **Database** | `skills/specialized-skills/database-skills/*` |
|
|
31
|
+
| **EC2 / Compute** | `skills/specialized-skills/ec2-skills/*` |
|
|
32
|
+
| **Migration & Modernization** | `skills/specialized-skills/migration-and-modernization-skills/*` |
|
|
33
|
+
| **Networking & Content Delivery** | `skills/specialized-skills/networking-and-content-delivery-skills/*` |
|
|
34
|
+
| **Operations** | `skills/specialized-skills/operations-skills/*` |
|
|
35
|
+
| **Security & Identity** | `skills/specialized-skills/security-and-identity-skills/*` |
|
|
36
|
+
| **Serverless** | `skills/specialized-skills/serverless-skills/*` |
|
|
37
|
+
| **Storage** | `skills/specialized-skills/storage-skills/*` |
|
|
38
|
+
|
|
39
|
+
## Fluxo de Trabalho
|
|
40
|
+
|
|
41
|
+
### 1. Verificar pré-requisitos
|
|
42
|
+
|
|
43
|
+
Rode cada um via Bash. Em qualquer falha, PARE e imprima o bloco de instrução correspondente:
|
|
44
|
+
|
|
45
|
+
| Check | Se faltar |
|
|
46
|
+
|---|---|
|
|
47
|
+
| `git --version` | `git é obrigatório. Instale via brew/apt/git-scm.com.` |
|
|
48
|
+
| `uv --version` | `uv é obrigatório. Instale: curl -LsSf https://astral.sh/uv/install.sh \| sh` (macOS/Linux) ou PowerShell equivalente no Windows. |
|
|
49
|
+
| `aws --version` | `aws cli ≥ 2.32.0 é obrigatório. Instale via brew install awscli, winget install Amazon.AWSCLI, ou siga a doc AWS.` |
|
|
50
|
+
| `aws sts get-caller-identity` | `Credenciais AWS faltando/expiradas. Mais fácil: aws login (rotaciona a cada 15 min, valid 12h). SSO: aws configure sso. Keys: aws configure.` |
|
|
51
|
+
|
|
52
|
+
NÃO prossiga para o passo 2 se algum check falhar.
|
|
53
|
+
|
|
54
|
+
### 2. Escolher região
|
|
55
|
+
|
|
56
|
+
Pergunte ao usuário qual região AWS usar. O MCP server é regional — endpoints suportados:
|
|
57
|
+
|
|
58
|
+
- `us-east-1` → `https://aws-mcp.us-east-1.api.aws/mcp`
|
|
59
|
+
- `eu-central-1` → `https://aws-mcp.eu-central-1.api.aws/mcp`
|
|
60
|
+
|
|
61
|
+
Default `us-east-1` se o usuário não tiver preferência. O agent pode sobrescrever por query (ex: "list EC2 instances in eu-west-1") — a região do endpoint é só a região de operação default.
|
|
62
|
+
|
|
63
|
+
### 3. Perguntar quais categorias instalar
|
|
64
|
+
|
|
65
|
+
Use AskUserQuestion (multi-select se suportar; caso contrário, loop). Apresente as 11 categorias acima. Sugestão default quando indeciso: pergunte "qual parte da AWS você vai mexer?" e mapeie para uma categoria.
|
|
66
|
+
|
|
67
|
+
### 4. Clone shallow do repo upstream
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
TMP=$(mktemp -d -t dw-aws-skills-XXXXXX)
|
|
71
|
+
git clone --depth=1 https://github.com/aws/agent-toolkit-for-aws.git "$TMP"
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Se o clone falhar, PARE e reporte o erro verbatim.
|
|
75
|
+
|
|
76
|
+
### 5. Filtrar e copiar
|
|
77
|
+
|
|
78
|
+
Para cada categoria selecionada, glob o caminho upstream correspondente e colete todos os diretórios de skill. Exemplos:
|
|
79
|
+
|
|
80
|
+
- "Core" → cada subdir de `$TMP/skills/core-skills/`
|
|
81
|
+
- "Database" → cada subdir de `$TMP/skills/specialized-skills/database-skills/`
|
|
82
|
+
- "All" → cada subdir de `$TMP/skills/core-skills/` E cada subdir de `$TMP/skills/specialized-skills/*/`
|
|
83
|
+
|
|
84
|
+
Antes de copiar, **limpe** `.agents/skills/aws/` para refresh limpo (re-runs substituem seleções anteriores).
|
|
85
|
+
|
|
86
|
+
Pule qualquer skill cujo root contenha scripts executáveis (`.sh`, `.py`, `.js`, `.ts`, `.ps1`, `.bat`) — dev-workflow instala apenas skills puramente markdown. Reporte a contagem de pulados.
|
|
87
|
+
|
|
88
|
+
Copie cada diretório casado recursivamente para `.agents/skills/aws/<skill-name>/`. **Achatar** a hierarquia upstream — o destino não tem split `core-skills/` vs `specialized-skills/`. Só o slug da skill como nome de diretório.
|
|
89
|
+
|
|
90
|
+
### 6. Registrar o AWS MCP Server
|
|
91
|
+
|
|
92
|
+
Leia `.claude/settings.json`. Parseie o JSON. Upsert em `mcpServers`:
|
|
93
|
+
|
|
94
|
+
```json
|
|
95
|
+
{
|
|
96
|
+
"mcpServers": {
|
|
97
|
+
"aws-mcp": {
|
|
98
|
+
"command": "uvx",
|
|
99
|
+
"args": [
|
|
100
|
+
"mcp-proxy-for-aws@latest",
|
|
101
|
+
"https://aws-mcp.us-east-1.api.aws/mcp",
|
|
102
|
+
"--metadata",
|
|
103
|
+
"AWS_REGION=us-east-1"
|
|
104
|
+
],
|
|
105
|
+
"transport": "stdio",
|
|
106
|
+
"timeout": 100000
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
Substitua o endpoint e o valor de `AWS_REGION` pela região escolhida no passo 2.
|
|
113
|
+
|
|
114
|
+
Se `mcpServers.aws-mcp` já existir, deixe intocado — nunca sobrescreva. Diga ao usuário para editar `.claude/settings.json` direto (ou remover a entry e re-rodar) para mudar a região. Outras entradas em `mcpServers` (context7, playwright, microsoft-learn, etc.) DEVEM ser preservadas.
|
|
115
|
+
|
|
116
|
+
### 7. Escrever `.dw/references/aws-mcp-instructions.md`
|
|
117
|
+
|
|
118
|
+
Crie (sobrescreva se presente) com a orientação canônica para o agent — as 5 MCP tools (`aws___search_documentation`, `aws___read_documentation`, `aws___retrieve_skill`, `aws___call_aws`, `aws___run_script`), o protocolo de operações destrutivas (confirmar antes de qualquer `create*`/`update*`/`delete*`/`modify*`/IAM/billing), comportamento de região, source-grounding, refresh/uninstall.
|
|
119
|
+
|
|
120
|
+
A versão CLI deste comando (`npx @brunosps00/dev-workflow install-aws-skills`) já carrega o texto canônico. Se rodando como slash command, replique o mesmo conteúdo do constant `AWS_MCP_INSTRUCTIONS` em `lib/install-aws-skills.js`.
|
|
121
|
+
|
|
122
|
+
### 8. Cleanup
|
|
123
|
+
|
|
124
|
+
Remova `$TMP`. Sempre — mesmo se passos anteriores falharam.
|
|
125
|
+
|
|
126
|
+
### 9. Reportar
|
|
127
|
+
|
|
128
|
+
```
|
|
129
|
+
## Skills AWS instaladas
|
|
130
|
+
|
|
131
|
+
Categorias: [lista]
|
|
132
|
+
Região: us-east-1 (ou escolhida)
|
|
133
|
+
Skills copiadas: N (M puladas com scripts executáveis)
|
|
134
|
+
MCP registrado: aws-mcp (ou "já presente, deixado inalterado")
|
|
135
|
+
Instruções do agent: .dw/references/aws-mcp-instructions.md
|
|
136
|
+
|
|
137
|
+
## Próximos passos
|
|
138
|
+
|
|
139
|
+
1. Reinicie o Claude Code (ou Codex / Copilot / OpenCode) para o MCP carregar.
|
|
140
|
+
2. Valide com uma pergunta AWS, ex: "Qual o limite de execuções concorrentes do Lambda?"
|
|
141
|
+
3. O agent agora pode chamar APIs AWS via aws___call_aws — revise
|
|
142
|
+
.dw/references/aws-mcp-instructions.md para o protocolo de operações destrutivas.
|
|
143
|
+
4. Para refrescar do upstream, rode /dw-install-aws-skills de novo.
|
|
144
|
+
5. Para desinstalar: rm -rf .agents/skills/aws/ e remova a entrada "aws-mcp"
|
|
145
|
+
de .claude/settings.json mcpServers.
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
## Comportamento Obrigatório
|
|
149
|
+
|
|
150
|
+
<critical>NUNCA adicione o MCP `aws-mcp` fora deste comando. É opt-in. `init` e `update` NÃO DEVEM mexer.</critical>
|
|
151
|
+
|
|
152
|
+
<critical>NUNCA registre o AWS Knowledge MCP deprecated (`https://knowledge-mcp.global.api.aws`). A AWS oficialmente substituiu pelo AWS MCP Server unificado; registrar ambos causa tool conflicts que confundem agents.</critical>
|
|
153
|
+
|
|
154
|
+
<critical>NUNCA auto-instale `uv` ou `aws cli`. Imprima o bloco de instruções e deixe o usuário escolher o caminho de instalação. Evita quebrar o ambiente do usuário com gerenciadores que não controlamos.</critical>
|
|
155
|
+
|
|
156
|
+
<critical>NUNCA pule a checagem de credenciais. Um install limpo sem `aws sts get-caller-identity` funcionando produz um MCP quebrado que falha em toda tool call. Melhor parar e instruir.</critical>
|
|
157
|
+
|
|
158
|
+
<critical>NUNCA copie LICENSE/README/CONTRIBUTING do upstream para `.agents/skills/aws/` — pertencem à AWS e poluem a descoberta de skills. Copie apenas `SKILL.md` por skill + conteúdo auxiliar (references/, assets/).</critical>
|
|
159
|
+
|
|
160
|
+
<critical>NUNCA copie skills com scripts executáveis. O escopo do dev-workflow é markdown-only. Se uma skill precisa de scripts, o usuário deve instalar direto do repo upstream, não por este comando.</critical>
|
|
161
|
+
|
|
162
|
+
## Atribuição
|
|
163
|
+
|
|
164
|
+
Skills vêm de [`aws/agent-toolkit-for-aws`](https://github.com/aws/agent-toolkit-for-aws) (Apache 2.0, da AWS). O MCP server está documentado em [docs.aws.amazon.com/aws-mcp/](https://docs.aws.amazon.com/aws-mcp/). O proxy é [`aws/mcp-proxy-for-aws`](https://github.com/aws/mcp-proxy-for-aws). dev-workflow apenas orquestra a instalação.
|
|
165
|
+
|
|
166
|
+
</system_instructions>
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
<system_instructions>
|
|
2
|
+
Você instala agent skills opt-in da Azure a partir do `MicrosoftDocs/Agent-Skills` (CC-BY-4.0) em `.agents/skills/azure/` e registra o Microsoft Learn MCP Server (HTTP, sem auth) em `.claude/settings.json`. Mesmo resultado de `npx @brunosps00/dev-workflow install-azure-skills` — interface diferente.
|
|
3
|
+
|
|
4
|
+
## Quando Usar
|
|
5
|
+
- Use quando o usuário pedir para "instalar skills Azure", "configurar MCP do Microsoft docs", "adicionar expertise Azure", "vou trabalhar com Azure", ou similar.
|
|
6
|
+
- Use quando um projeto existente começa uma feature que toca Azure (Container Apps, OpenAI, AKS, etc.) e ainda não há `.agents/skills/azure/`.
|
|
7
|
+
- NÃO use para AWS, GCP ou qualquer cloud não-Microsoft — não estão no repo upstream.
|
|
8
|
+
- NÃO use para instalar as skills nativas do dev-workflow — essas vêm com `init`/`update`.
|
|
9
|
+
|
|
10
|
+
## Posição no Pipeline
|
|
11
|
+
**Antecessor:** (pedido explícito do usuário) | **Sucessor:** qualquer trabalho de feature Azure (tipicamente `/dw-plan` ou `/dw-autopilot`).
|
|
12
|
+
|
|
13
|
+
## Pré-requisitos
|
|
14
|
+
|
|
15
|
+
<critical>Este comando precisa de `git` no PATH. Se `git --version` falhar, PARE e diga ao usuário para instalar git primeiro.</critical>
|
|
16
|
+
|
|
17
|
+
## Categorias (curadas)
|
|
18
|
+
|
|
19
|
+
| Categoria | O que cobre |
|
|
20
|
+
|---|---|
|
|
21
|
+
| All | Todas as skills no diretório `skills/` upstream. |
|
|
22
|
+
| Compute | AKS, App Service, Container Apps/Instances/Registry, Functions, VMs, Batch, Spring Apps. |
|
|
23
|
+
| Data & Storage | Blob, Cosmos DB, SQL, MySQL, PostgreSQL, Cache Redis, Data Lake, Files, Table/Queue Storage, Managed Disks. |
|
|
24
|
+
| AI & ML | OpenAI, AI Foundry, AI Vision, AI Search, AI Services, Machine Learning, Anomaly Detector, Bot Service, Cognitive Services. |
|
|
25
|
+
| Networking | Application Gateway, Front Door, Load Balancer, VPN Gateway, ExpressRoute, Bastion, DNS, CDN, Virtual Network, Virtual WAN, Private Link, Network Watcher, Firewall, Traffic Manager. |
|
|
26
|
+
| Identity & Security | Entra ID (Active Directory), Key Vault, Attestation, Defender, Sentinel, Security Center, Artifact Signing. |
|
|
27
|
+
| DevOps | Boards, Pipelines, Artifacts, Repos, Azure DevOps Server, Test Plans. |
|
|
28
|
+
| Observability | Monitor, Application Insights, Log Analytics. |
|
|
29
|
+
| Integration | Logic Apps, Service Bus, Event Grid, Event Hubs, API Management, API Center, Business Process Tracking. |
|
|
30
|
+
| Architecture | Architecture guidance, Advisor, Blueprints, Well-Architected, Policy, Resource Graph, Resource Manager. |
|
|
31
|
+
|
|
32
|
+
## Fluxo de Trabalho
|
|
33
|
+
|
|
34
|
+
### 1. Verificar `git`
|
|
35
|
+
|
|
36
|
+
Rode `git --version` via Bash. Em caso de falha, PARE com: `git é obrigatório para instalar skills Azure. Instale o git e tente novamente.`
|
|
37
|
+
|
|
38
|
+
### 2. Perguntar ao usuário quais categorias instalar
|
|
39
|
+
|
|
40
|
+
Use AskUserQuestion (multi-select se a interface suportar; caso contrário, loop). Apresente as 10 categorias com suas descrições. Sugestão default quando o usuário não decide: pergunte "qual parte da Azure você vai mexer?" e mapeie a resposta para uma categoria.
|
|
41
|
+
|
|
42
|
+
### 3. Clone shallow do repo upstream
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
TMP=$(mktemp -d -t dw-azure-skills-XXXXXX)
|
|
46
|
+
git clone --depth=1 https://github.com/MicrosoftDocs/Agent-Skills.git "$TMP"
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Se o clone falhar (rede, rate limit do GitHub, etc.), PARE e reporte o erro verbatim. Não instale parcialmente.
|
|
50
|
+
|
|
51
|
+
### 4. Filtrar e copiar
|
|
52
|
+
|
|
53
|
+
Para cada subdiretório de `$TMP/skills/`, decida se casa com as categorias selecionadas. O match é **por prefixo** — um diretório `azure-aks-edge-essentials` casa com o prefixo `azure-aks`.
|
|
54
|
+
|
|
55
|
+
**Tabela de prefixos (canônica — manter em sincronia com `lib/azure-categories.js` no repo dev-workflow):**
|
|
56
|
+
|
|
57
|
+
| Categoria | Prefixos |
|
|
58
|
+
|---|---|
|
|
59
|
+
| **All** | (todo diretório sob `$TMP/skills/`) |
|
|
60
|
+
| **Compute** | `azure-aks`, `azure-app-service`, `azure-container-apps`, `azure-container-instances`, `azure-container-registry`, `azure-functions`, `azure-virtual-machines`, `azure-vmware-solution`, `azure-batch`, `azure-spring-apps` |
|
|
61
|
+
| **Data & Storage** | `azure-blob-storage`, `azure-cosmos-db`, `azure-sql`, `azure-database-for-mysql`, `azure-database-for-postgresql`, `azure-cache-redis`, `azure-data-lake`, `azure-files`, `azure-storage`, `azure-table-storage`, `azure-queue-storage`, `azure-managed-disk` |
|
|
62
|
+
| **AI & ML** | `azure-openai`, `azure-ai-foundry`, `azure-ai-vision`, `azure-ai-search`, `azure-ai-services`, `azure-machine-learning`, `azure-anomaly-detector`, `azure-bot-service`, `azure-cognitive` |
|
|
63
|
+
| **Networking** | `azure-application-gateway`, `azure-front-door`, `azure-load-balancer`, `azure-vpn-gateway`, `azure-expressroute`, `azure-bastion`, `azure-dns`, `azure-cdn`, `azure-virtual-network`, `azure-virtual-wan`, `azure-private-link`, `azure-network-watcher`, `azure-firewall`, `azure-traffic-manager` |
|
|
64
|
+
| **Identity & Security** | `azure-active-directory`, `azure-entra`, `azure-key-vault`, `azure-attestation`, `azure-defender`, `azure-sentinel`, `azure-security-center`, `azure-artifact-signing` |
|
|
65
|
+
| **DevOps** | `azure-boards`, `azure-pipelines`, `azure-artifacts`, `azure-repos`, `azure-devops`, `azure-test-plans` |
|
|
66
|
+
| **Observability** | `azure-monitor`, `azure-application-insights`, `azure-log-analytics` |
|
|
67
|
+
| **Integration** | `azure-logic-apps`, `azure-service-bus`, `azure-event-grid`, `azure-event-hubs`, `azure-api-management`, `azure-api-center`, `azure-business-process-tracking` |
|
|
68
|
+
| **Architecture** | `azure-architecture`, `azure-advisor`, `azure-blueprints`, `azure-well-architected`, `azure-policy`, `azure-resource-graph`, `azure-resource-manager` |
|
|
69
|
+
|
|
70
|
+
Um diretório casa uma categoria se seu nome é igual a um dos prefixos OU começa com `<prefixo>-`.
|
|
71
|
+
|
|
72
|
+
Antes de copiar, **limpe** `.agents/skills/azure/` para garantir refresh limpo (re-runs substituem seleções anteriores; intencional).
|
|
73
|
+
|
|
74
|
+
Pule qualquer skill cujo root contenha scripts executáveis (`.sh`, `.py`, `.js`, `.ts`, `.ps1`, `.bat`) — dev-workflow instala apenas skills puramente markdown. Reporte a contagem de pulados.
|
|
75
|
+
|
|
76
|
+
Copie cada diretório casado recursivamente para `.agents/skills/azure/<skill-name>/`. Preserve subdiretórios (`references/`, `assets/`).
|
|
77
|
+
|
|
78
|
+
### 5. Registrar o Microsoft Learn MCP server
|
|
79
|
+
|
|
80
|
+
Leia `.claude/settings.json` (crie o diretório se faltar). Parseie o JSON. Upsert em `mcpServers`:
|
|
81
|
+
|
|
82
|
+
```json
|
|
83
|
+
{
|
|
84
|
+
"mcpServers": {
|
|
85
|
+
"microsoft-learn": {
|
|
86
|
+
"type": "http",
|
|
87
|
+
"url": "https://learn.microsoft.com/api/mcp"
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Se `mcpServers.microsoft-learn` já existir, deixe intocado — nunca sobrescreva config do usuário. Outras entradas em `mcpServers` (context7, playwright, etc.) DEVEM ser preservadas.
|
|
94
|
+
|
|
95
|
+
### 6. Escrever `.dw/references/azure-mcp-instructions.md`
|
|
96
|
+
|
|
97
|
+
Crie o arquivo (sobrescreva se presente) com a orientação para o agent — quando chamar qual MCP tool (`microsoft_docs_search`, `microsoft_docs_fetch`, `microsoft_code_sample_search`), como citar fontes per `dw-source-grounding`, e como refrescar ou desinstalar.
|
|
98
|
+
|
|
99
|
+
A versão CLI deste comando (`npx @brunosps00/dev-workflow install-azure-skills`) já carrega o texto canônico — se você está rodando como slash command, replique o mesmo conteúdo do constant `AZURE_MCP_INSTRUCTIONS` em `lib/install-azure-skills.js`.
|
|
100
|
+
|
|
101
|
+
### 7. Cleanup
|
|
102
|
+
|
|
103
|
+
Remova `$TMP`. Sempre — mesmo se passos anteriores falharam.
|
|
104
|
+
|
|
105
|
+
### 8. Reportar
|
|
106
|
+
|
|
107
|
+
```
|
|
108
|
+
## Skills Azure instaladas
|
|
109
|
+
|
|
110
|
+
Categorias: [lista]
|
|
111
|
+
Skills copiadas: N (M puladas com scripts executáveis)
|
|
112
|
+
MCP registrado: microsoft-learn (ou "já presente, deixado inalterado")
|
|
113
|
+
Instruções do agent: .dw/references/azure-mcp-instructions.md
|
|
114
|
+
|
|
115
|
+
## Próximos passos
|
|
116
|
+
|
|
117
|
+
1. Reinicie o Claude Code (ou Codex / Copilot / OpenCode) para o MCP carregar.
|
|
118
|
+
2. Valide com uma pergunta Azure, ex: "Como faço deploy em Azure Container Apps?"
|
|
119
|
+
3. Para refrescar do upstream, rode /dw-install-azure-skills de novo.
|
|
120
|
+
4. Para desinstalar: rm -rf .agents/skills/azure/ e remova a entrada "microsoft-learn"
|
|
121
|
+
de .claude/settings.json mcpServers.
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## Comportamento Obrigatório
|
|
125
|
+
|
|
126
|
+
<critical>NUNCA adicione o MCP `microsoft-learn` fora deste comando. É opt-in. `init` e `update` NÃO DEVEM mexer.</critical>
|
|
127
|
+
|
|
128
|
+
<critical>NUNCA copie skills com scripts executáveis. O escopo do dev-workflow é markdown-only. Se uma skill precisa de scripts, o usuário deve instalar direto do repo upstream, não por este comando.</critical>
|
|
129
|
+
|
|
130
|
+
<critical>NUNCA fabrique a URL do upstream ou do MCP. O repo é `https://github.com/MicrosoftDocs/Agent-Skills.git` e o endpoint do MCP é `https://learn.microsoft.com/api/mcp`. São endpoints first-party Microsoft, atribuição CC-BY-4.0 obrigatória.</critical>
|
|
131
|
+
|
|
132
|
+
<critical>NUNCA copie LICENSE/README do upstream para `.agents/skills/azure/` — são da Microsoft e poluem a descoberta de skills do agent. Copie apenas `SKILL.md` + conteúdo auxiliar por skill (references/, assets/).</critical>
|
|
133
|
+
|
|
134
|
+
## Atribuição
|
|
135
|
+
|
|
136
|
+
Skills vêm de [`MicrosoftDocs/Agent-Skills`](https://github.com/MicrosoftDocs/Agent-Skills) (CC-BY-4.0, da Microsoft). O MCP server está documentado em [Microsoft Learn](https://learn.microsoft.com/en-us/training/support/mcp-get-started). dev-workflow apenas orquestra a instalação — nenhum conteúdo upstream é modificado além de posicionamento.
|
|
137
|
+
|
|
138
|
+
</system_instructions>
|
|
@@ -38,9 +38,10 @@ Voce e o assistente de inteligencia do codebase. Dois modos: consultar o indice
|
|
|
38
38
|
|
|
39
39
|
## Localizacao dos Arquivos
|
|
40
40
|
|
|
41
|
-
- Intel machine-readable (consulta primeira): `.dw/intel/{stack,files,apis,deps}.json` + `.dw/intel/arch.md`
|
|
41
|
+
- Intel machine-readable (consulta primeira): `.dw/intel/{stack,files,apis,deps,bugfixes}.json` + `.dw/intel/arch.md`
|
|
42
42
|
- Metadados de refresh: `.dw/intel/.last-refresh.json`
|
|
43
|
-
- Rules human-readable (consulta segunda): `.dw/rules/{index,<modulo>,integrations}.md`
|
|
43
|
+
- Rules human-readable (consulta segunda): `.dw/rules/{index,<modulo>,integrations,concerns}.md`
|
|
44
|
+
- Fonte do historico de bugfixes: `.dw/bugfixes/*/SUMMARY.md`
|
|
44
45
|
- Grep direto fallback (consulta por ultimo): os arquivos source do projeto
|
|
45
46
|
|
|
46
47
|
## Comportamento Obrigatorio
|
|
@@ -67,6 +68,8 @@ Classifique o `{{QUERY}}` em uma das formas documentadas em `.agents/skills/dw-c
|
|
|
67
68
|
- **api-list** — primario: `apis.json`
|
|
68
69
|
- **find-export** — primario: `files.json` (busca em arrays `exports`)
|
|
69
70
|
- **convention** — primario: `arch.md`, secundario: `.dw/rules/`
|
|
71
|
+
- **bugfix-history** — primario: `bugfixes.json`, secundario: `.dw/rules/concerns.md` (gatilhos: "bugs em <modulo>", "fixes recentes", "o que quebrou em X", "historico de fix de Y")
|
|
72
|
+
- **risk-area** — primario: `.dw/rules/concerns.md`, secundario: `bugfixes.json` (gatilhos: "X eh arriscado", "o que eh fragil", "hot spots", "tech debt")
|
|
70
73
|
|
|
71
74
|
### 3. Execucao da busca
|
|
72
75
|
|
|
@@ -143,7 +146,31 @@ Quando invocado com `--build`, o comando produz ou atualiza o indice queryable d
|
|
|
143
146
|
5. **Extracao de API.** Routes, RPC handlers, GraphQL resolvers, superficie de CLI publica. Output em `.dw/intel/apis.json`. Budget ≤1.5K tokens.
|
|
144
147
|
6. **Mapa de dependencias.** Imports internos cross-module + pacotes externos com arrays `used_by`. Output em `.dw/intel/deps.json`. Budget ≤1K tokens.
|
|
145
148
|
7. **Sumario de arquitetura.** Documento em prosa descrevendo a forma do projeto, padroes-chave, request flows, topologia de deployment. Output em `.dw/intel/arch.md`. Budget ≤1.5K tokens.
|
|
146
|
-
8. **
|
|
149
|
+
8. **Historico de bugfixes.** Se `.dw/bugfixes/` existir e nao estiver vazio, escanear todo `SUMMARY.md` e construir `.dw/intel/bugfixes.json` (budget ≤1K tokens). Schema:
|
|
150
|
+
```json
|
|
151
|
+
{
|
|
152
|
+
"schema_version": "1.0",
|
|
153
|
+
"fixes": [
|
|
154
|
+
{
|
|
155
|
+
"slug": "001-login-nao-funciona",
|
|
156
|
+
"date": "YYYY-MM-DD",
|
|
157
|
+
"status": "Fixed",
|
|
158
|
+
"severity": "Medium",
|
|
159
|
+
"symptom_one_line": "...",
|
|
160
|
+
"root_cause_one_line": "...",
|
|
161
|
+
"modules_touched": ["src/auth/", "src/api/login/"],
|
|
162
|
+
"files_touched": ["src/auth/session.ts", "src/auth/session.test.ts"],
|
|
163
|
+
"related_concerns": ["src/auth/session.ts"],
|
|
164
|
+
"path": ".dw/bugfixes/001-login-nao-funciona/"
|
|
165
|
+
}
|
|
166
|
+
],
|
|
167
|
+
"by_module": {
|
|
168
|
+
"src/auth/": ["001-login-nao-funciona", "007-refresh-token-leak"]
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
```
|
|
172
|
+
Pular se `.dw/bugfixes/` nao existir. Rejeitar SUMMARY.md que falhem validacao de frontmatter; logar no relatorio do build. **Bugfixes escalados** (aqueles com `escalated.md` mas sem `SUMMARY.md` porque o fix vive em `.dw/spec/prd-bugfix-<slug>/`) sao pulados do `bugfixes.json` ate o spec entregar um fix — eles re-entram no indice quando o SUMMARY.md for finalmente escrito. O `TASK.md` escalado continua acessivel via grep direto; o indice so registra fixes concluidos.
|
|
173
|
+
9. **Metadata de refresh.** Escrever `.dw/intel/.last-refresh.json` com `updated_at`, `version`, `mode` (full ou incremental), contagem de arquivos scanned, e contagem `bugfixes_indexed`.
|
|
147
174
|
|
|
148
175
|
### Skill complementar para build mode
|
|
149
176
|
|