@brunosps00/dev-workflow 0.15.0 → 1.0.1
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 +99 -119
- package/lib/constants.js +16 -36
- package/lib/migrate-skills.js +11 -4
- package/lib/removed-commands.js +30 -0
- package/package.json +1 -1
- package/scaffold/en/agent-instructions.md +31 -16
- package/scaffold/en/commands/dw-adr.md +2 -2
- package/scaffold/en/commands/dw-analyze-project.md +7 -7
- package/scaffold/en/commands/dw-autopilot.md +20 -20
- package/scaffold/en/commands/dw-brainstorm.md +315 -21
- package/scaffold/en/commands/dw-bugfix.md +5 -5
- package/scaffold/en/commands/dw-commit.md +1 -1
- package/scaffold/en/commands/dw-dockerize.md +9 -9
- package/scaffold/en/commands/dw-find-skills.md +4 -4
- package/scaffold/en/commands/dw-functional-doc.md +1 -1
- package/scaffold/en/commands/dw-generate-pr.md +4 -4
- package/scaffold/en/commands/dw-help.md +95 -351
- package/scaffold/en/commands/dw-intel.md +76 -12
- package/scaffold/en/commands/dw-new-project.md +9 -9
- package/scaffold/en/commands/dw-plan.md +175 -0
- package/scaffold/en/commands/dw-qa.md +166 -0
- package/scaffold/en/commands/dw-redesign-ui.md +6 -6
- package/scaffold/en/commands/dw-review.md +198 -0
- package/scaffold/en/commands/dw-run.md +176 -0
- package/scaffold/en/commands/dw-secure-audit.md +222 -0
- package/scaffold/en/commands/dw-update.md +1 -1
- package/scaffold/en/references/playwright-patterns.md +1 -1
- package/scaffold/en/references/refactoring-catalog.md +1 -1
- package/scaffold/en/templates/brainstorm-matrix.md +1 -1
- package/scaffold/en/templates/idea-onepager.md +3 -3
- package/scaffold/en/templates/project-onepager.md +5 -5
- package/scaffold/pt-br/agent-instructions.md +31 -16
- package/scaffold/pt-br/commands/dw-adr.md +2 -2
- package/scaffold/pt-br/commands/dw-analyze-project.md +7 -7
- package/scaffold/pt-br/commands/dw-autopilot.md +20 -20
- package/scaffold/pt-br/commands/dw-brainstorm.md +315 -21
- package/scaffold/pt-br/commands/dw-bugfix.md +8 -8
- package/scaffold/pt-br/commands/dw-commit.md +1 -1
- package/scaffold/pt-br/commands/dw-dockerize.md +9 -9
- package/scaffold/pt-br/commands/dw-find-skills.md +4 -4
- package/scaffold/pt-br/commands/dw-functional-doc.md +1 -1
- package/scaffold/pt-br/commands/dw-generate-pr.md +4 -4
- package/scaffold/pt-br/commands/dw-help.md +97 -300
- package/scaffold/pt-br/commands/dw-intel.md +77 -13
- package/scaffold/pt-br/commands/dw-new-project.md +9 -9
- package/scaffold/pt-br/commands/dw-plan.md +175 -0
- package/scaffold/pt-br/commands/dw-qa.md +166 -0
- package/scaffold/pt-br/commands/dw-redesign-ui.md +6 -6
- package/scaffold/pt-br/commands/dw-review.md +198 -0
- package/scaffold/pt-br/commands/dw-run.md +176 -0
- package/scaffold/pt-br/commands/dw-secure-audit.md +222 -0
- package/scaffold/pt-br/commands/dw-update.md +1 -1
- package/scaffold/pt-br/references/playwright-patterns.md +1 -1
- package/scaffold/pt-br/references/refactoring-catalog.md +1 -1
- package/scaffold/pt-br/templates/brainstorm-matrix.md +1 -1
- package/scaffold/pt-br/templates/idea-onepager.md +3 -3
- package/scaffold/pt-br/templates/project-onepager.md +5 -5
- package/scaffold/pt-br/templates/tasks-template.md +1 -1
- package/scaffold/skills/api-testing-recipes/SKILL.md +6 -6
- package/scaffold/skills/api-testing-recipes/references/auth-patterns.md +1 -1
- package/scaffold/skills/api-testing-recipes/references/matrix-conventions.md +1 -1
- package/scaffold/skills/api-testing-recipes/references/openapi-driven.md +3 -3
- package/scaffold/skills/docker-compose-recipes/SKILL.md +1 -1
- package/scaffold/skills/dw-codebase-intel/SKILL.md +9 -9
- package/scaffold/skills/dw-codebase-intel/agents/intel-updater.md +4 -4
- package/scaffold/skills/dw-codebase-intel/references/api-design-discipline.md +1 -1
- package/scaffold/skills/dw-codebase-intel/references/incremental-update.md +5 -5
- package/scaffold/skills/dw-codebase-intel/references/intel-format.md +1 -1
- package/scaffold/skills/dw-codebase-intel/references/query-patterns.md +3 -3
- package/scaffold/skills/dw-council/SKILL.md +2 -2
- package/scaffold/skills/dw-debug-protocol/SKILL.md +5 -3
- package/scaffold/skills/dw-execute-phase/SKILL.md +16 -16
- package/scaffold/skills/dw-execute-phase/agents/executor.md +5 -5
- package/scaffold/skills/dw-execute-phase/agents/plan-checker.md +4 -4
- package/scaffold/skills/dw-execute-phase/references/atomic-commits.md +1 -1
- package/scaffold/skills/dw-execute-phase/references/plan-verification.md +2 -2
- package/scaffold/skills/dw-execute-phase/references/wave-coordination.md +1 -1
- package/scaffold/skills/dw-git-discipline/SKILL.md +5 -2
- package/scaffold/skills/dw-incident-response/SKILL.md +5 -1
- package/scaffold/skills/dw-llm-eval/SKILL.md +10 -8
- package/scaffold/skills/dw-memory/SKILL.md +2 -2
- package/scaffold/skills/dw-review-rigor/SKILL.md +5 -5
- package/scaffold/skills/dw-simplification/SKILL.md +12 -7
- package/scaffold/skills/dw-simplification/references/deep-modules.md +105 -0
- package/scaffold/skills/dw-source-grounding/SKILL.md +1 -1
- package/scaffold/skills/dw-testing-discipline/SKILL.md +8 -6
- package/scaffold/skills/dw-testing-discipline/references/agent-guardrails.md +3 -3
- package/scaffold/skills/dw-testing-discipline/references/anti-patterns.md +2 -2
- package/scaffold/skills/dw-testing-discipline/references/core-rules.md +1 -1
- package/scaffold/skills/dw-testing-discipline/references/flaky-discipline.md +3 -3
- package/scaffold/skills/dw-testing-discipline/references/patterns.md +1 -1
- package/scaffold/skills/dw-testing-discipline/references/playwright-recipes.md +1 -1
- package/scaffold/skills/dw-ui-discipline/SKILL.md +8 -6
- package/scaffold/skills/dw-ui-discipline/references/accessibility-floor.md +2 -2
- package/scaffold/skills/dw-ui-discipline/references/hard-gate.md +1 -1
- package/scaffold/skills/dw-ui-discipline/references/state-matrix.md +1 -1
- package/scaffold/skills/dw-ui-discipline/references/visual-slop.md +2 -2
- package/scaffold/skills/dw-verify/SKILL.md +4 -4
- package/scaffold/skills/humanizer/SKILL.md +1 -7
- package/scaffold/skills/remotion-best-practices/SKILL.md +3 -1
- package/scaffold/skills/security-review/SKILL.md +1 -1
- package/scaffold/skills/security-review/languages/csharp.md +1 -1
- package/scaffold/skills/security-review/languages/rust.md +1 -1
- package/scaffold/skills/security-review/languages/typescript.md +1 -1
- package/scaffold/skills/vercel-react-best-practices/SKILL.md +3 -1
- package/scaffold/templates-overrides-readme.md +3 -3
- package/scaffold/en/commands/dw-code-review.md +0 -386
- package/scaffold/en/commands/dw-create-prd.md +0 -148
- package/scaffold/en/commands/dw-create-tasks.md +0 -201
- package/scaffold/en/commands/dw-create-techspec.md +0 -210
- package/scaffold/en/commands/dw-deep-research.md +0 -418
- package/scaffold/en/commands/dw-deps-audit.md +0 -327
- package/scaffold/en/commands/dw-fix-qa.md +0 -152
- package/scaffold/en/commands/dw-map-codebase.md +0 -125
- package/scaffold/en/commands/dw-refactoring-analysis.md +0 -340
- package/scaffold/en/commands/dw-revert-task.md +0 -114
- package/scaffold/en/commands/dw-review-implementation.md +0 -349
- package/scaffold/en/commands/dw-run-plan.md +0 -300
- package/scaffold/en/commands/dw-run-qa.md +0 -497
- package/scaffold/en/commands/dw-run-task.md +0 -209
- package/scaffold/en/commands/dw-security-check.md +0 -271
- package/scaffold/pt-br/commands/dw-code-review.md +0 -366
- package/scaffold/pt-br/commands/dw-create-prd.md +0 -148
- package/scaffold/pt-br/commands/dw-create-tasks.md +0 -201
- package/scaffold/pt-br/commands/dw-create-techspec.md +0 -208
- package/scaffold/pt-br/commands/dw-deep-research.md +0 -172
- package/scaffold/pt-br/commands/dw-deps-audit.md +0 -327
- package/scaffold/pt-br/commands/dw-fix-qa.md +0 -152
- package/scaffold/pt-br/commands/dw-map-codebase.md +0 -125
- package/scaffold/pt-br/commands/dw-refactoring-analysis.md +0 -340
- package/scaffold/pt-br/commands/dw-revert-task.md +0 -114
- package/scaffold/pt-br/commands/dw-review-implementation.md +0 -337
- package/scaffold/pt-br/commands/dw-run-plan.md +0 -296
- package/scaffold/pt-br/commands/dw-run-qa.md +0 -495
- package/scaffold/pt-br/commands/dw-run-task.md +0 -208
- package/scaffold/pt-br/commands/dw-security-check.md +0 -271
|
@@ -9,14 +9,36 @@ Você é um facilitador de brainstorming para o workspace atual. Este comando ex
|
|
|
9
9
|
- NÃO use quando já tiver requisitos claros prontos para um PRD, ou quando precisar implementar código
|
|
10
10
|
|
|
11
11
|
## Posição no Pipeline
|
|
12
|
-
**Antecessor:** (ideia do usuário) | **Sucessor:** `/dw-
|
|
12
|
+
**Antecessor:** (ideia do usuário) | **Sucessor:** `/dw-plan prd`
|
|
13
13
|
|
|
14
|
-
##
|
|
14
|
+
## Como este comando funciona (auto-dispatch, não switchboard de flags)
|
|
15
15
|
|
|
16
|
-
- **
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
`/dw-brainstorm` roda **FULL** por padrão. Abre com uma fase de **Signal Reading** que inspeciona o pedido do usuário, o estado do projeto (PRDs, rules, intel, commits recentes) e a conversa até agora, e então **dispara um ou mais modos internos**. O usuário não escolhe o modo — o comando escolhe.
|
|
17
|
+
|
|
18
|
+
Modos internos (o dispatcher seleciona 1+):
|
|
19
|
+
|
|
20
|
+
| Modo | Dispara automaticamente quando |
|
|
21
|
+
|------|--------------------------------|
|
|
22
|
+
| **option-matrix** (default sempre ativo) | Surface padrão: 3-7 opções (conservadora / equilibrada / ousada) com tags `[IMPROVES] / [CONSOLIDATES] / [NEW]`. Sempre roda salvo override explícito. |
|
|
23
|
+
| **grill** | Vocabulário está instável — termos do usuário divergem de `.dw/rules/` / `.dw/constitution.md`, ou dois sinônimos competem na mesma conversa, ou alguém propõe um nome que conflita com o glossário. |
|
|
24
|
+
| **prototype** | Usuário pergunta "esse modelo de estado faz sentido?" / "como isso deveria parecer?" sem resposta clara; ou o próximo passo razoável é RODAR código, não escrever palavras. |
|
|
25
|
+
| **council** | Duas ou mais abordagens competem sem vencedor óbvio; ou o consenso se forma rápido demais (sinal de false-consensus). |
|
|
26
|
+
| **research** | A pergunta depende de state-of-the-art externo ("qual é a best practice atual para X", comparações multi-fonte, landscape regulatório ou de framework). |
|
|
27
|
+
| **refactor-audit** | Usuário aponta um diretório ou descreve uma área como "bagunçada", "precisa de limpeza", "tech debt"; ou pede health-check trimestral. |
|
|
28
|
+
| **onepager** | A conversa convergiu o suficiente para merecer um artefato durável (`.dw/spec/ideas/<slug>.md`); ou o usuário sinaliza que vai chamar `/dw-plan prd` em seguida. |
|
|
29
|
+
|
|
30
|
+
Modos podem encadear numa sessão — grill pode revelar uma pergunta de design que o dispatcher manda para prototype; refactor-audit pode produzir findings que o dispatcher manda para council pra stress-test.
|
|
31
|
+
|
|
32
|
+
### Overrides opcionais (raramente necessários)
|
|
33
|
+
|
|
34
|
+
- **`--mode=<nome>`** — força um dispatch específico e pula Signal Reading. Nomes: `option-matrix`, `grill`, `prototype`, `council`, `research`, `refactor-audit`, `onepager`. Combine com `+` para encadear explicitamente: `--mode=grill+onepager`.
|
|
35
|
+
- **`--quiet`** — pula Signal Reading inteiramente e roda apenas `option-matrix` como facilitador mínimo.
|
|
36
|
+
|
|
37
|
+
Power users que já sabem o que querem podem passar `--mode=`. Todo mundo mais ganha auto-dispatch por padrão — o comando lê a situação e age.
|
|
38
|
+
|
|
39
|
+
### Nota de migração (transitória)
|
|
40
|
+
|
|
41
|
+
Invocações antigas com flags (`--onepager`, `--council`, `--research`, `--refactor`, `--grill`, `--prototype`) continuam aceitas por um ciclo minor e mapeiam para o `--mode=` equivalente. Código novo deve usar `--mode=` ou confiar no auto-dispatch.
|
|
20
42
|
|
|
21
43
|
## Fluxograma de Decisão: Brainstorm vs PRD Direto
|
|
22
44
|
|
|
@@ -27,7 +49,7 @@ digraph brainstorm_decision {
|
|
|
27
49
|
Q1 [label="Are requirements\nclear and specific?"];
|
|
28
50
|
Q2 [label="Are there multiple\nviable approaches?"];
|
|
29
51
|
node [shape=box];
|
|
30
|
-
PRD [label="Go directly to\n/dw-
|
|
52
|
+
PRD [label="Go directly to\n/dw-plan prd"];
|
|
31
53
|
BS [label="Start with\n/dw-brainstorm"];
|
|
32
54
|
Q1 -> PRD [label="Yes"];
|
|
33
55
|
Q1 -> Q2 [label="No"];
|
|
@@ -40,15 +62,16 @@ digraph brainstorm_decision {
|
|
|
40
62
|
|
|
41
63
|
Quando disponíveis no projeto em `./.agents/skills/`, use para enriquecer a ideação:
|
|
42
64
|
|
|
43
|
-
- `dw-council
|
|
44
|
-
- `dw-
|
|
45
|
-
- `
|
|
46
|
-
- `
|
|
65
|
+
- `dw-council`: invocada pelo modo **council** do dispatcher — stress-test multi-advisor das opções mais promissoras com steel-manning obrigatório e concession tracking. O dispatcher dispara quando 2+ caminhos empatam OU consenso se forma rápido demais (sinal de false-consensus). Não roda em todo brainstorm — só quando os sinais justificam.
|
|
66
|
+
- `dw-simplification`: invocada pelo modo **refactor-audit** — aplica Chesterton's Fence + métricas de complexidade + a nova referência **deep-modules** (deletion test, locality, leverage, interface depth) em todo smell flagueado.
|
|
67
|
+
- `dw-ui-discipline`: use quando o brainstorm envolver frontend ou direção de UI — o hard-gate (scene sentence, surface job) é forcing function generativa durante ideação, não só check de review. Também usado pelo branch UI do modo **prototype**.
|
|
68
|
+
- `vercel-react-best-practices`: use quando explorar arquitetura React/Next.js ou trade-offs de performance.
|
|
69
|
+
- `security-review`: use quando o brainstorm tocar auth, manipulação de dados ou features sensíveis à segurança.
|
|
47
70
|
|
|
48
71
|
## Referência do Template
|
|
49
72
|
|
|
50
73
|
- Template da matriz de brainstorm: `.dw/templates/brainstorm-matrix.md` (relativo ao workspace root)
|
|
51
|
-
- Template do one-pager durável: `.dw/templates/idea-onepager.md` (usado
|
|
74
|
+
- Template do one-pager durável: `.dw/templates/idea-onepager.md` (usado pelo modo **onepager**)
|
|
52
75
|
|
|
53
76
|
Use este comando quando o usuario quiser:
|
|
54
77
|
- gerar ideias para produto, UX, arquitetura ou automacao
|
|
@@ -61,6 +84,19 @@ Use este comando quando o usuario quiser:
|
|
|
61
84
|
|
|
62
85
|
<critical>O brainstorm é fase **nível de produto**, não técnica. NÃO entre em arquitetura, stack, endpoints, schemas. Isso é trabalho do techspec. Aqui trabalhamos jornada do usuário, valor, features e fronteiras.</critical>
|
|
63
86
|
|
|
87
|
+
### 0. Signal Reading (sempre primeiro, exceto com `--quiet` ou `--mode=` explícito)
|
|
88
|
+
|
|
89
|
+
Antes de produzir qualquer output, **leia a situação**:
|
|
90
|
+
|
|
91
|
+
1. Inspecione `.dw/spec/prd-*/`, `.dw/rules/`, `.dw/constitution.md`, `.dw/intel/` se existirem. Anote vocabulário atual e PRDs recentes.
|
|
92
|
+
2. Inspecione git recente (`git log --oneline -20`) pra detectar trabalho em andamento.
|
|
93
|
+
3. Releia o pedido do usuário contra a tabela de Auto-Dispatch no topo desse arquivo. Casa sinais com modos.
|
|
94
|
+
4. Decida o dispatch: **option-matrix** sempre roda salvo override que pule. Outros modos (grill, prototype, council, research, refactor-audit, onepager) disparam **aditivamente** quando seus sinais estão presentes.
|
|
95
|
+
5. Diga ao usuário em uma linha curta qual o dispatch decidido: ex. "Dispatch: option-matrix + onepager (PRD está um passo à frente)" ou "Dispatch: grill (vocabulário instável no PRD atual)". Não esconda — surface antes de rodar.
|
|
96
|
+
6. Depois, execute os modos nessa ordem (quando encadeados): grill → research → option-matrix → council → refactor-audit → prototype → onepager. Pule modos fora do dispatch.
|
|
97
|
+
|
|
98
|
+
### Fluxo padrão (modo option-matrix)
|
|
99
|
+
|
|
64
100
|
1. Comece resumindo o problema em 1 a 3 frases.
|
|
65
101
|
2. **Reformule como "How Might We"**: transforme a ideia bruta em `How might we [verbo] para [usuário] de forma que [resultado]?`. Isso tira o time de "solution mode" prematuro.
|
|
66
102
|
3. **Product Inventory (obrigatório se o produto existe)**:
|
|
@@ -78,7 +114,7 @@ Use este comando quando o usuario quiser:
|
|
|
78
114
|
- nível de esforço aproximado
|
|
79
115
|
7. Sempre que fizer sentido, inclua alternativas conservadora, equilibrada e ousada.
|
|
80
116
|
8. Feche com recomendação pragmática e próximos passos claros.
|
|
81
|
-
9. **Se
|
|
117
|
+
9. **Se o dispatcher selecionou o modo `onepager`** (auto-dispara quando a conversa converge ou usuário sinaliza que vai pra `/dw-plan prd`): ao final, gerar `.dw/spec/ideas/<slug>.md` usando `.dw/templates/idea-onepager.md`, preenchendo Feature Inventory, Classification & Rationale, Recommended Direction (linguagem de produto), MVP Scope (user stories), Not Doing, Key Assumptions e Open Questions. Apresentar path ao usuário ao final.
|
|
82
118
|
|
|
83
119
|
## Formato de resposta preferido
|
|
84
120
|
|
|
@@ -102,16 +138,16 @@ Use este comando quando o usuario quiser:
|
|
|
102
138
|
- recomende 1 ou 2 caminhos
|
|
103
139
|
- diga por que eles vencem no contexto atual
|
|
104
140
|
|
|
105
|
-
### 6. One-pager (se
|
|
141
|
+
### 6. One-pager (se modo `onepager` disparou)
|
|
106
142
|
- path do arquivo criado em `.dw/spec/ideas/<slug>.md`
|
|
107
143
|
|
|
108
144
|
### 7. Próximos passos
|
|
109
145
|
- lista curta e executavel
|
|
110
146
|
- se apropriado, sugira qual comando usar em seguida:
|
|
111
|
-
- `/dw-
|
|
112
|
-
- `/dw-run
|
|
113
|
-
- `/dw-
|
|
114
|
-
- `/dw-
|
|
147
|
+
- `/dw-plan prd` (principal sucessor; aceita one-pager como input reduzindo perguntas de clarificação)
|
|
148
|
+
- `/dw-run` (se é IMPROVES pequeno que cabe em task única com um PRD curto)
|
|
149
|
+
- `/dw-plan techspec`
|
|
150
|
+
- `/dw-plan tasks`
|
|
115
151
|
- `/dw-bugfix`
|
|
116
152
|
|
|
117
153
|
## Heuristicas
|
|
@@ -139,7 +175,263 @@ Ao final, sempre deixe o usuario em uma destas situacoes:
|
|
|
139
175
|
- com uma recomendacao clara (incluindo classificação IMPROVES/CONSOLIDATES/NEW)
|
|
140
176
|
- com perguntas melhores para decidir
|
|
141
177
|
- com um proximo comando do workspace para seguir
|
|
142
|
-
- com o one-pager em `.dw/spec/ideas/<slug>.md` (se
|
|
178
|
+
- com o one-pager em `.dw/spec/ideas/<slug>.md` (se modo **onepager** disparou)
|
|
179
|
+
- com o relatório de research em `~/Documents/<Tópico>_Research_<data>/` (se modo **research** disparou)
|
|
180
|
+
- com o plano de refactor em `<target>/refactor-plan.md` (se modo **refactor-audit** disparou)
|
|
181
|
+
- com entradas de glossário sharpened em `.dw/rules/` (se modo **grill** disparou)
|
|
182
|
+
- com um protótipo throwaway rodável + template de verdict (se modo **prototype** disparou)
|
|
183
|
+
|
|
184
|
+
## Modo: research (research multi-fonte)
|
|
185
|
+
|
|
186
|
+
Dispara quando a pergunta depende de state-of-the-art externo (comparações multi-fonte, framework/regulatory landscape, decisões precisando de evidência citada). Override: `--mode=research`. Substitui o option-matrix padrão por um pipeline estruturado de research que produz documento citado com claims verificados.
|
|
187
|
+
|
|
188
|
+
<critical>Cada afirmação factual DEVE ser citada imediatamente com [N] na mesma frase</critical>
|
|
189
|
+
<critical>NUNCA fabrique citações — se não encontrar fonte, diga explicitamente</critical>
|
|
190
|
+
<critical>A bibliografia DEVE conter TODAS as citações usadas no corpo, sem abreviações ou ranges</critical>
|
|
191
|
+
|
|
192
|
+
### Quando usar modo research
|
|
193
|
+
- Comparações multi-fonte (ex: "compare React Server Components vs Astro Islands").
|
|
194
|
+
- State-of-the-art reviews de um tópico.
|
|
195
|
+
- Mapeamento de contexto regulatório ou industrial.
|
|
196
|
+
- Decisões precisando de evidência citada (não opinião).
|
|
197
|
+
- NÃO use research mode pra lookups simples, debugging ou perguntas respondíveis em 1-2 web searches.
|
|
198
|
+
|
|
199
|
+
### Sub-modos (research depth)
|
|
200
|
+
|
|
201
|
+
```
|
|
202
|
+
Seleção
|
|
203
|
+
├── Exploração inicial → quick (3 fases, 2-5 min)
|
|
204
|
+
├── Research padrão → standard (6 fases, 5-10 min) [DEFAULT pra research]
|
|
205
|
+
├── Decisão crítica → deep (8 fases, 10-20 min)
|
|
206
|
+
└── Review abrangente → ultradeep (8+ fases, 20-45 min)
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
### Required reading
|
|
210
|
+
|
|
211
|
+
Skill complementar **`dw-source-grounding`**: **SEMPRE** — aplica protocolo Detect → Fetch → Implement → Cite com hierarquia estrita (docs oficiais versionados > changelogs > web standards > compat tables; Stack Overflow / blogs / training data são só discovery). Cada finding termina com `[source: <url>, version: X.Y, retrieved: YYYY-MM-DD]`; bibliografia construída dessas citações.
|
|
212
|
+
|
|
213
|
+
### Fases do pipeline
|
|
214
|
+
|
|
215
|
+
**Fase 1 — SCOPE** | Enquadrar a questão. Decompor em componentes. Identificar perspectivas de stakeholders. Definir limites. Listar assumptions a validar.
|
|
216
|
+
|
|
217
|
+
**Fase 2 — PLAN** | Identificar fontes primárias + secundárias. Mapear dependências de conhecimento. Estratégia de busca com variantes. Plano de triangulação. Quality gates.
|
|
218
|
+
|
|
219
|
+
**Fase 3 — RETRIEVE** | Coleta paralela. Decompor em 5-10 ângulos independentes (semantic, keyword, date-filtered, academic, alternative perspectives, statistics, industry analysis, critical analysis). Executar TODAS as buscas em paralelo via múltiplas tool calls numa mensagem. First Finish Search: prosseguir quando primeiro threshold atingido (quick: 10+ sources avg credibilidade >60/100; standard: 15+ >60; deep: 25+ >70; ultradeep: 30+ >75).
|
|
220
|
+
|
|
221
|
+
**Fase 4 — TRIANGULATE** | Identificar claims que requerem verificação. Cross-check em 3+ fontes independentes. Flagar contradições. Documentar status de verificação por claim.
|
|
222
|
+
|
|
223
|
+
**Fase 5 — REFINAMENTO DO OUTLINE** | Comparar escopo inicial com findings reais. Adaptar estrutura baseada em evidência. Buscas direcionadas pra preencher gaps.
|
|
224
|
+
|
|
225
|
+
**Fase 6 — SYNTHESIZE** | Identificar patterns cross-source. Mapear relações de conceitos. Gerar insights além do material fonte. Construir hierarquias de evidência.
|
|
226
|
+
|
|
227
|
+
**Fase 7 — CRITIQUE** (só deep/ultradeep) | Review de consistência lógica. Verificar completude de citações. Identificar gaps ou fraquezas. Simular 2-3 personas críticas.
|
|
228
|
+
|
|
229
|
+
**Fase 8 — REFINE** (deep/ultradeep) | Fortalecer argumentos fracos. Adicionar perspectivas ausentes. Resolver contradições.
|
|
230
|
+
|
|
231
|
+
**Fase 9 — PACKAGE** | Gerar relatório progressivamente, seção por seção.
|
|
232
|
+
|
|
233
|
+
### Output
|
|
234
|
+
|
|
235
|
+
Salvo em `~/Documents/<Tópico>_Research_<YYYYMMDD>/`. Seções obrigatórias:
|
|
236
|
+
1. Sumário Executivo (200-400 palavras)
|
|
237
|
+
2. Introdução (escopo, metodologia, premissas)
|
|
238
|
+
3. Análise Principal (4-8 achados, 600-2000 palavras cada, todos citados)
|
|
239
|
+
4. Síntese e Insights
|
|
240
|
+
5. Limitações e Ressalvas
|
|
241
|
+
6. Recomendações
|
|
242
|
+
7. Bibliografia (COMPLETA — toda citação, sem placeholders)
|
|
243
|
+
8. Apêndice Metodológico
|
|
244
|
+
|
|
245
|
+
Tamanhos-alvo: quick 2-4k palavras; standard 4-8k; deep 8-15k; ultradeep 15-20k+.
|
|
246
|
+
|
|
247
|
+
### Padrões de qualidade
|
|
248
|
+
- Narrativo: prosa fluida, com início/meio/fim. Min 80% prosa, max 20% bullets.
|
|
249
|
+
- Cada afirmação factual citada imediatamente com [N].
|
|
250
|
+
- Distinguir fato de síntese.
|
|
251
|
+
- Sem atribuições vagas ("estudos mostram...", "especialistas acreditam..." sem citação).
|
|
252
|
+
- Rotular especulação explicitamente.
|
|
253
|
+
- Admitir incerteza: "Sem fontes encontradas para X."
|
|
254
|
+
|
|
255
|
+
## Modo: refactor-audit (catálogo de code smells + deep-modules)
|
|
256
|
+
|
|
257
|
+
Dispara quando o usuário aponta um diretório ou descreve uma área como "bagunçada" / "precisa de limpeza" / "tech debt", ou pede health-check trimestral. Override: `--mode=refactor-audit`. Audita a área-alvo por oportunidades de refactoring usando a taxonomia de smells de Martin Fowler combinada com a análise deep-modules (deletion test, locality, leverage, interface depth) embutida na skill `dw-simplification`.
|
|
258
|
+
|
|
259
|
+
<critical>FAÇA EXATAMENTE 3 PERGUNTAS DE CLARIFICAÇÃO ANTES DE INICIAR ANÁLISE</critical>
|
|
260
|
+
|
|
261
|
+
### Quando usar modo refactor
|
|
262
|
+
- Audit pre-implementação de tech debt na área que vai mexer.
|
|
263
|
+
- Code-health review trimestral.
|
|
264
|
+
- Scoping pre-migration (ex: antes de upgrade de framework).
|
|
265
|
+
- NÃO use refactor mode se `/dw-review` já flagou a mesma área (evita findings duplicados).
|
|
266
|
+
|
|
267
|
+
### Required reading
|
|
268
|
+
|
|
269
|
+
Skills complementares:
|
|
270
|
+
- **`dw-review-rigor`**: **SEMPRE** — aplica de-duplication (mesmo smell em N arquivos = 1 entrada com affected list), severity ordering P0-P3, signal-over-volume (max ~20 findings; manter críticos, podar marginais). Smells com ADR justificatório caem para `low` no máximo.
|
|
271
|
+
- **`dw-simplification`**: **SEMPRE** — todo smell flagueado passa pelo filtro Chesterton's Fence (o que o construto FAZ, por que foi adicionado, o que quebra se removido). Smells sem resposta clara para "por que isso está aqui" caem para `info` com nota de investigação. Métricas de complexidade (complexidade cognitiva ≥16 ou nesting depth ≥4 = candidato `high`; <10 = `low` no máximo) ancoram severity.
|
|
272
|
+
- **`security-review`**: delegue preocupações de segurança para este skill — não duplique.
|
|
273
|
+
- **`vercel-react-best-practices`** + seu `perf-discipline.md`: delegue padrões de performance React/Next.js para este skill.
|
|
274
|
+
|
|
275
|
+
### Pipeline
|
|
276
|
+
|
|
277
|
+
1. Três perguntas de clarificação (escopo, prioridades, restrições).
|
|
278
|
+
2. Identificar área-alvo (diretório PRD-scoped, módulo específico, ou codebase inteiro).
|
|
279
|
+
3. Scan por smells usando taxonomia Fowler:
|
|
280
|
+
- **Bloaters** — Long Method, Large Class, Long Parameter List, Data Clumps, Primitive Obsession.
|
|
281
|
+
- **Object-Orientation Abusers** — Switch Statements, Refused Bequest, Alternative Classes with Different Interfaces, Temporary Field.
|
|
282
|
+
- **Change Preventers** — Divergent Change, Shotgun Surgery, Parallel Inheritance Hierarchies.
|
|
283
|
+
- **Dispensables** — Comments, Duplicate Code, Lazy Class, Data Class, Dead Code, Speculative Generality.
|
|
284
|
+
- **Couplers** — Feature Envy, Inappropriate Intimacy, Message Chains, Middle Man.
|
|
285
|
+
- **Conditional complexity** — alta cyclomatic/cognitive, nesting profundo.
|
|
286
|
+
4. Aplicar de-duplication `dw-review-rigor` + filtro Chesterton `dw-simplification`.
|
|
287
|
+
5. Pra cada smell sobrevivente, mapear pra técnica de refactoring com sketches before/after.
|
|
288
|
+
6. Severity-order P0-P3 (impacto × likelihood × custo de manutenção).
|
|
289
|
+
7. Mais: coupling/cohesion metrics, análise SOLID.
|
|
290
|
+
|
|
291
|
+
### Output
|
|
292
|
+
|
|
293
|
+
Salvo em `<target>/refactor-plan.md`:
|
|
294
|
+
|
|
295
|
+
```markdown
|
|
296
|
+
# Oportunidades de Refactoring — <target>
|
|
297
|
+
|
|
298
|
+
## Resumo
|
|
299
|
+
- Smells encontrados: N (após de-dup)
|
|
300
|
+
- P0 (fazer neste sprint): N
|
|
301
|
+
- P1 (este trimestre): N
|
|
302
|
+
- P2 (quando conveniente): N
|
|
303
|
+
- P3 (informacional): N
|
|
304
|
+
|
|
305
|
+
## Findings (severity-ordered)
|
|
306
|
+
|
|
307
|
+
### P0 — <smell name>
|
|
308
|
+
**Arquivos:** <lista> (de-duplicados)
|
|
309
|
+
**Sintoma:** <descrição>
|
|
310
|
+
**Por que corrigir:** <análise de impacto>
|
|
311
|
+
**Refactor sugerido:** <técnica Fowler>
|
|
312
|
+
**Before:** <code sketch>
|
|
313
|
+
**After:** <code sketch>
|
|
314
|
+
**Esforço:** S / M / L
|
|
315
|
+
**Risco:** Baixo / Médio / Alto
|
|
316
|
+
**Testes necessários:** <lista>
|
|
317
|
+
|
|
318
|
+
...
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
### Ferramentas de análise
|
|
322
|
+
- Projetos React: `npx react-doctor@latest --verbose` pra health score.
|
|
323
|
+
- Projetos Angular: `ng lint` pra issues estáticos.
|
|
324
|
+
|
|
325
|
+
### Anti-patterns
|
|
326
|
+
- Listar todo hit de complexidade ciclomática > threshold sem contexto → ruído.
|
|
327
|
+
- Sugerir "extract method" em toda função maior que N linhas → mecânico, não insight.
|
|
328
|
+
- Propor refactors sem teste ou não-testáveis → alto risco, não shippa.
|
|
329
|
+
- Ignorar decisões arquiteturais documentadas em `.dw/rules/` → flagar design intencional como smell.
|
|
330
|
+
|
|
331
|
+
## Modo: grill (domain-grilling)
|
|
332
|
+
|
|
333
|
+
Dispara quando o vocabulário está instável — termos do usuário divergem de `.dw/rules/` / `.dw/constitution.md`, dois sinônimos competem, ou alguém propõe um nome que conflita com o glossário. Override: `--mode=grill`. Substitui o option-matrix por um **stress-test estilo entrevista** do plan/PRD contra o vocabulário do projeto. Cada rodada sharpens um pedaço. Atualiza `.dw/rules/` (ou `.dw/constitution.md`) inline conforme termos cristalizam — nunca adia pra "depois da conversa".
|
|
334
|
+
|
|
335
|
+
<critical>Pergunte UMA pergunta de cada vez. Espere a resposta. Não despeje 5 perguntas e torça pelo melhor.</critical>
|
|
336
|
+
|
|
337
|
+
### Quando usar grill mode
|
|
338
|
+
|
|
339
|
+
- Antes de `/dw-plan prd` quando o domínio parece instável ou o time usa termos competindo.
|
|
340
|
+
- Depois de `/dw-plan prd` quando reviewers flagam linguagem ambígua no PRD.
|
|
341
|
+
- Durante discussão de arquitetura quando "módulo", "serviço", "componente" são usados de forma intercambiável e precisa fixar o termo canônico.
|
|
342
|
+
- Quando alguém propõe um nome que não combina com o glossário existente do projeto.
|
|
343
|
+
|
|
344
|
+
### Disciplinas durante a sessão
|
|
345
|
+
|
|
346
|
+
1. **Desafie contra o glossário.** Leia `.dw/rules/index.md` + `.dw/rules/<modulo>.md` + `.dw/constitution.md`. Flague conflitos de terminologia no instante em que o usuário usa um termo que diverge do que já está documentado.
|
|
347
|
+
|
|
348
|
+
2. **Sharpen linguagem vaga.** Quando o usuário disser "a coisa do user" ou "aquele lance de pedidos", proponha um termo canônico preciso. Não finja que entendeu — empurre de volta.
|
|
349
|
+
|
|
350
|
+
3. **Discuta cenários concretos.** Force precisão com edge cases específicos: "O que acontece com a Order no estado X quando o evento Y chega durante o retry Z?" Respostas vagas voltam como mais perguntas.
|
|
351
|
+
|
|
352
|
+
4. **Cross-reference o código.** Quando o usuário afirmar um comportamento, olhe rápido no codebase pra confirmar. Surface contradições: "Você disse que a API retorna `OrderId` mas `src/api/orders.ts:42` retorna `{ order_id, status }`." Não argumente em generalidades.
|
|
353
|
+
|
|
354
|
+
5. **Atualize `.dw/rules/` inline.** Quando um termo cristaliza, escreva no arquivo de rules apropriado no mesmo turn da conversa. Lazy file creation: se o arquivo não existir, crie. Formato segue a disciplina de glossário do projeto (ver `.dw/rules/index.md`).
|
|
355
|
+
|
|
356
|
+
6. **Pule detalhe de implementação no glossário.** `.dw/rules/` e `.dw/constitution.md` descrevem vocabulário e princípios — não implementação. "Order: pedido de um cliente para comprar itens, em um destes estados: pending, paid, shipped, delivered, refunded" é bom. "Order: uma classe TypeScript em `src/orders/`" é vazamento de implementação.
|
|
357
|
+
|
|
358
|
+
### Disciplina de criação de ADR
|
|
359
|
+
|
|
360
|
+
Só proponha um ADR via `/dw-adr` quando **todos os três** valem:
|
|
361
|
+
|
|
362
|
+
| Critério | Teste |
|
|
363
|
+
|----------|-------|
|
|
364
|
+
| **Difícil de reverter** | Se mudarmos em 6 meses, custa >1 semana de trabalho? |
|
|
365
|
+
| **Surpreendente sem contexto** | Um novo contribuinte chegaria razoavelmente a uma decisão diferente? |
|
|
366
|
+
| **Trade-off real** | Havia uma alternativa real considerada e descartada? |
|
|
367
|
+
|
|
368
|
+
Se algum falta, pule o ADR. Não ADR toda decisão casual — vira ruído na pasta de ADRs.
|
|
369
|
+
|
|
370
|
+
### Output
|
|
371
|
+
|
|
372
|
+
O modo grill produz:
|
|
373
|
+
- **`.dw/rules/<modulo>.md` ou `.dw/constitution.md` atualizado** com termos cristalizados.
|
|
374
|
+
- **PRD / TechSpec atualizado** se grill rodou no meio do planejamento (termos alinhados com o glossário).
|
|
375
|
+
- **`.dw/spec/<prd>/adrs/adr-NNN.md` opcional** se os critérios acima valem.
|
|
376
|
+
- **NÃO** produz option matrix ou recomendação (esse é o option-matrix; grill é só sharpening). Se o dispatcher encadeou grill+option-matrix, o option matrix roda em fase separada.
|
|
377
|
+
|
|
378
|
+
### Quando a disciplina dobra
|
|
379
|
+
|
|
380
|
+
- **Projeto greenfield sem `.dw/rules/`**: grille mesmo assim; a conversa produz as PRIMEIRAS entradas em `.dw/rules/index.md`. Isso é o valor.
|
|
381
|
+
- **Discordância cosmética de terminologia** ("usamos `userId` ou `user_id`?"): pule grill mode; use ADR de convenção de código ou seção Naming em `.dw/rules/index.md`.
|
|
382
|
+
|
|
383
|
+
## Modo: prototype (protótipo descartável)
|
|
384
|
+
|
|
385
|
+
Dispara quando o usuário pergunta "esse modelo de estado faz sentido?" / "como isso deveria parecer?" sem resposta clara — i.e., o próximo passo razoável é RODAR código, não escrever palavras. Override: `--mode=prototype`. Constrói um **protótipo descartável que responde a uma única pergunta**. A pergunta decide a forma — escolha um branch.
|
|
386
|
+
|
|
387
|
+
<critical>O protótipo é descartável desde o dia um. Não polir. Não adicionar testes. Não extrair abstrações. O ponto é APRENDER algo rápido e depois DELETAR ou absorver.</critical>
|
|
388
|
+
|
|
389
|
+
### Escolha um branch
|
|
390
|
+
|
|
391
|
+
| Pergunta do usuário | Branch |
|
|
392
|
+
|---------------------|--------|
|
|
393
|
+
| "Esse modelo de state/logic faz sentido?" | **LOGIC** — terminal app interativo que empurra a máquina de estado por edge cases difíceis de raciocinar no papel. |
|
|
394
|
+
| "Como isso deveria parecer?" | **UI** — várias variações radicalmente diferentes de UI num único route, toggleable por search param e bottom bar flutuante. |
|
|
395
|
+
|
|
396
|
+
Se a pergunta é ambígua, pergunte ao usuário. Se não puder alcançar: default pelo contexto (módulo backend → LOGIC; página/componente → UI) e declare a suposição no topo do protótipo.
|
|
397
|
+
|
|
398
|
+
### Regras (valem para os dois branches)
|
|
399
|
+
|
|
400
|
+
1. **Descartável desde o dia um, claramente marcado.** Coloque o protótipo perto do módulo/página que ele está prototipando (pra contexto) mas nomeie pra que um leitor casual veja que é protótipo (`prototype-<slug>.ts`, `prototype-route.tsx`, etc.).
|
|
401
|
+
|
|
402
|
+
2. **Um comando pra rodar.** Qualquer que seja o task runner do projeto — `pnpm <nome>`, `python <path>`, `bun <path>`, etc. O usuário tem que rodar sem pensar.
|
|
403
|
+
|
|
404
|
+
3. **Sem persistência por padrão.** Estado vive em memória. Persistência é o que o protótipo está VERIFICANDO, não algo do qual depende. Se a pergunta envolve banco, use um DB scratch ou arquivo local com nome claro `PROTOTYPE — wipe me`.
|
|
405
|
+
|
|
406
|
+
4. **Pule o polish.** Sem testes, sem error handling além do mínimo pro protótipo rodar, sem abstrações.
|
|
407
|
+
|
|
408
|
+
5. **Surface o estado.** Depois de cada ação (LOGIC) ou troca de variante (UI), imprima ou renderize o estado relevante completo pro usuário ver o que mudou.
|
|
409
|
+
|
|
410
|
+
6. **Delete ou absorva quando terminar.** Quando o protótipo respondeu sua pergunta, ou delete ou dobre a decisão validada em código real. Não deixe apodrecendo no repo.
|
|
411
|
+
|
|
412
|
+
### Quando terminar
|
|
413
|
+
|
|
414
|
+
A **resposta** é a única coisa que vale guardar. Capture duravelmente:
|
|
415
|
+
- Commit message fechando o protótipo: "removed prototype X; decided <resposta> based on <observação>"
|
|
416
|
+
- Ou um ADR (se os critérios do grill valem)
|
|
417
|
+
- Ou `.dw/spec/<prd>/NOTES.md` se mid-PRD
|
|
418
|
+
- Ou comentário em issue se user-driven
|
|
419
|
+
|
|
420
|
+
Se o usuário não está por perto, deixe um placeholder `PROTOTYPE VERDICT: <pending>` pro próximo pass preencher antes da deleção.
|
|
421
|
+
|
|
422
|
+
### Output
|
|
423
|
+
|
|
424
|
+
O modo prototype produz:
|
|
425
|
+
- **Arquivo(s) de código descartável** na localização apropriada.
|
|
426
|
+
- Um `NOTES.md` ao lado do protótipo com a PERGUNTA que está respondendo.
|
|
427
|
+
- Depois do usuário rodar e responder a pergunta, instruções pra remover o protótipo + capturar o verdict.
|
|
428
|
+
|
|
429
|
+
### Anti-patterns
|
|
430
|
+
|
|
431
|
+
- Construir protótipo que é feature disfarçada — código production-quality, testes, deploy config. Isso não é protótipo; é primeiro draft.
|
|
432
|
+
- Deixar o protótipo no repo "por via das dúvidas" — seis meses depois é load-bearing.
|
|
433
|
+
- Não capturar o verdict — protótipo respondeu a pergunta e a resposta evaporou.
|
|
434
|
+
- Múltiplos protótipos empilhados — escolha uma pergunta, responda, mova.
|
|
143
435
|
|
|
144
436
|
## Inspired by
|
|
145
437
|
|
|
@@ -148,8 +440,10 @@ O padrão de codebase-grounded idea refinement é inspirado em [`addyosmani/agen
|
|
|
148
440
|
- **Nível de produto, não de código**: enquanto `idea-refine` usa Glob/Grep/Read em `src/*`, aqui lemos **PRDs + rules + intel** para mapear o **inventário de features** do produto. O brainstorm continua sendo produtual.
|
|
149
441
|
- **Classificação explícita** (IMPROVES / CONSOLIDATES / NEW) como disciplina dev-workflow-nativa — força o time a decidir se a ideia é feature nova, consolidação ou melhoria de algo existente, antes de abrir um PRD.
|
|
150
442
|
- Output em `.dw/spec/ideas/<slug>.md` (irmão de `prd-<slug>/`) em vez de `docs/ideas/` — mantém a convenção de paths do dev-workflow.
|
|
151
|
-
- Integração com o pipeline existente: `/dw-
|
|
443
|
+
- Integração com o pipeline existente: `/dw-plan prd` aceita o one-pager como input, reduzindo perguntas de clarificação.
|
|
444
|
+
|
|
445
|
+
Os modos **grill** e **prototype** são adaptados de [`mattpocock/skills/grill-with-docs`](https://github.com/mattpocock/skills/tree/main/grill-with-docs) e [`mattpocock/skills/prototype`](https://github.com/mattpocock/skills/tree/main/prototype) (Matt Pocock, MIT). Adaptação dev-workflow: integrados como modos INTERNOS auto-dispatchados em vez de skills separadas, paths rebaseados em `.dw/rules/` + `.dw/spec/<prd>/`, criação de ADR gated no teste 3-critérios (difícil de reverter + surpreendente + trade-off real).
|
|
152
446
|
|
|
153
|
-
Crédito: Addy Osmani e
|
|
447
|
+
Crédito: Addy Osmani (idea-refine) e Matt Pocock (grill-with-docs, prototype).
|
|
154
448
|
|
|
155
449
|
</system_instructions>
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
|
|
6
6
|
## Quando Usar
|
|
7
7
|
- Use para corrigir um bug reportado com triagem automática para distinguir bug vs feature vs escopo excessivo
|
|
8
|
-
- NÃO use para implementar uma nova funcionalidade (use `/dw-
|
|
9
|
-
- NÃO use para corrigir bugs encontrados durante testes de QA (use `/dw-fix
|
|
8
|
+
- NÃO use para implementar uma nova funcionalidade (use `/dw-plan prd` em vez disso)
|
|
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
12
|
**Antecessor:** (bug report) | **Sucessor:** `/dw-commit` e depois `/dw-generate-pr`
|
|
@@ -48,9 +48,9 @@
|
|
|
48
48
|
Neste modo:
|
|
49
49
|
1. Segue o fluxo normal de perguntas e análise
|
|
50
50
|
2. Em vez de executar, gera documento em `.dw/spec/dw-bugfix-[nome]/prd.md`
|
|
51
|
-
3. O arquivo é nomeado `prd.md` para manter compatibilidade com o pipeline dw-create-techspec/dw-
|
|
52
|
-
4. Depois o usuário pode rodar `/dw-
|
|
53
|
-
5. E então `/dw-
|
|
51
|
+
3. O arquivo é nomeado `prd.md` para manter compatibilidade com o pipeline dw-create-techspec/dw-plan tasks
|
|
52
|
+
4. Depois o usuário pode rodar `/dw-plan techspec .dw/spec/dw-bugfix-[nome]`
|
|
53
|
+
5. E então `/dw-plan tasks .dw/spec/dw-bugfix-[nome]`
|
|
54
54
|
|
|
55
55
|
## Fluxo de Trabalho
|
|
56
56
|
|
|
@@ -109,7 +109,7 @@
|
|
|
109
109
|
---
|
|
110
110
|
|
|
111
111
|
**Deseja que eu inicie o fluxo de criação de PRD?**
|
|
112
|
-
- `sim` - Vou seguir `.dw/commands/dw-
|
|
112
|
+
- `sim` - Vou seguir `.dw/commands/dw-plan prd.md` para esta feature
|
|
113
113
|
- `não, é bug` - Me explique melhor por que considera um bug
|
|
114
114
|
- `não, cancelar` - Encerrar
|
|
115
115
|
```
|
|
@@ -244,7 +244,7 @@
|
|
|
244
244
|
3. Salvar como: `.dw/spec/dw-bugfix-[nome-do-bug]/prd.md` (usa nome `prd.md` para compatibilidade com pipeline)
|
|
245
245
|
|
|
246
246
|
**IMPORTANTE:** O arquivo deve ser nomeado `prd.md` para que os comandos
|
|
247
|
-
`/dw-
|
|
247
|
+
`/dw-plan techspec` e `/dw-plan tasks` funcionem sem modificação.
|
|
248
248
|
|
|
249
249
|
## Tipos de Tarefa (permitidos em bugfix)
|
|
250
250
|
|
|
@@ -280,7 +280,7 @@
|
|
|
280
280
|
q2 [label="Does it require\nnew functionality?", shape=diamond];
|
|
281
281
|
q3 [label="Scope <= 5 files\nand no migration?", shape=diamond];
|
|
282
282
|
bug [label="BUG\n(continue bugfix flow)"];
|
|
283
|
-
feature [label="FEATURE\n(redirect to /dw-
|
|
283
|
+
feature [label="FEATURE\n(redirect to /dw-plan prd)"];
|
|
284
284
|
excessive [label="EXCESSIVE SCOPE\n(redirect to PRD or\nuse --analysis mode)"];
|
|
285
285
|
|
|
286
286
|
start -> q1;
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
- NÃO use para criar uma PR (use `/dw-generate-pr` em vez disso)
|
|
8
8
|
|
|
9
9
|
## Posição no Pipeline
|
|
10
|
-
**Antecessor:** `/dw-run
|
|
10
|
+
**Antecessor:** `/dw-run` ou `/dw-bugfix` | **Sucessor:** `/dw-generate-pr`
|
|
11
11
|
|
|
12
12
|
## Skills Complementares
|
|
13
13
|
|
|
@@ -16,12 +16,12 @@ Este comando e **complementar** ao `/dw-new-project`:
|
|
|
16
16
|
- Voce quer um `Dockerfile` `--prod` distinto do `--dev`, com multi-stage e usuario nao-root
|
|
17
17
|
- Onboarding de teammate em projeto onde local-dev "so funciona" via `docker compose up`
|
|
18
18
|
- NAO use para scaffold de projeto novo — `/dw-new-project`
|
|
19
|
-
- NAO use para scan de vulnerabilidades em Dockerfile — `/dw-
|
|
19
|
+
- NAO use para scan de vulnerabilidades em Dockerfile — `/dw-secure-audit` cobre Trivy IaC
|
|
20
20
|
- NAO use para orquestracao (manifests k8s, helm) — fora do escopo; o relatorio pode citar essas tools
|
|
21
21
|
|
|
22
22
|
## Posicao no Pipeline
|
|
23
23
|
|
|
24
|
-
**Predecessor:** qualquer projeto com manifest (`package.json`, `pyproject.toml`, `*.csproj`, `Cargo.toml`) | **Sucessor:** `/dw-
|
|
24
|
+
**Predecessor:** qualquer projeto com manifest (`package.json`, `pyproject.toml`, `*.csproj`, `Cargo.toml`) | **Sucessor:** `/dw-secure-audit` (Trivy no Dockerfile + compose), `/dw-secure-audit --plan` (auditar deps antes de bakar elas em imagem prod)
|
|
25
25
|
|
|
26
26
|
## Skills Complementares
|
|
27
27
|
|
|
@@ -58,7 +58,7 @@ Detecte linguagem(s), framework, package manager, deps de infra de runtime e art
|
|
|
58
58
|
|
|
59
59
|
#### 0.1 Matriz de linguagens
|
|
60
60
|
|
|
61
|
-
Mesma matriz de `/dw-
|
|
61
|
+
Mesma matriz de `/dw-secure-audit` e `/dw-secure-audit --plan`:
|
|
62
62
|
|
|
63
63
|
| Linguagem | Indicadores |
|
|
64
64
|
|-----------|-------------|
|
|
@@ -273,9 +273,9 @@ Secoes:
|
|
|
273
273
|
7. **Audit Findings** (so `--audit`) — tabela de issues com severidade, file:line, recomendacao.
|
|
274
274
|
8. **Next Steps:**
|
|
275
275
|
- Para `--dev`: `cp .env.example .env` (se faltar), `docker compose -f docker-compose.dev.yml up -d`, depois smoke test do app.
|
|
276
|
-
- Para `--prod`: build local primeiro (`docker build -t <name>:dev .`), rode `/dw-
|
|
276
|
+
- Para `--prod`: build local primeiro (`docker build -t <name>:dev .`), rode `/dw-secure-audit` no Dockerfile e compose, depois push pro registry.
|
|
277
277
|
- Para `--audit`: aplique fixes manualmente ou rode com `--mode=force-overwrite`.
|
|
278
|
-
- Sempre: rode `/dw-
|
|
278
|
+
- Sempre: rode `/dw-secure-audit --plan` antes de promover a imagem para prod.
|
|
279
279
|
|
|
280
280
|
## Flags
|
|
281
281
|
|
|
@@ -309,13 +309,13 @@ Secoes:
|
|
|
309
309
|
|
|
310
310
|
## Integracao com Outros dw-* Commands
|
|
311
311
|
|
|
312
|
-
- **`/dw-
|
|
313
|
-
- **`/dw-
|
|
312
|
+
- **`/dw-secure-audit`** — rode APOS geracao `--prod` para escanear o novo Dockerfile + compose com Trivy IaC.
|
|
313
|
+
- **`/dw-secure-audit --plan`** — rode ANTES da geracao `--prod` para garantir que nenhuma dep vulneravel vai pra imagem.
|
|
314
314
|
- **`/dw-new-project`** — comando irmao. `/dw-new-project` ja inclui Docker do dia 1; `/dw-dockerize` retrofita. Compartilham a skill `docker-compose-recipes`.
|
|
315
|
-
- **`/dw-fix
|
|
315
|
+
- **`/dw-qa --fix`** — se um `Dockerfile.dev` gerado quebra o hot-reload, `/dw-qa --fix` itera fixes com o usuario.
|
|
316
316
|
|
|
317
317
|
## Inspirado em
|
|
318
318
|
|
|
319
|
-
`dw-dockerize` e dev-workflow-native. A camada de deteccao reusa a matriz de linguagens de `/dw-
|
|
319
|
+
`dw-dockerize` e dev-workflow-native. A camada de deteccao reusa a matriz de linguagens de `/dw-secure-audit` e `/dw-secure-audit --plan`. A camada de brainstorm pega a disciplina das tres opcoes (Conservadora/Balanceada/Ousada) emprestada do `/dw-brainstorm` e aplica em escolha de base. A camada de audit reusa `security-review/infrastructure/docker.md` para checks alinhados com OWASP. A composicao de compose esta delegada para a skill bundled `docker-compose-recipes` (compartilhada com `/dw-new-project`).
|
|
320
320
|
|
|
321
321
|
</system_instructions>
|
|
@@ -15,7 +15,7 @@ Voce e um assistente de descoberta de skills neste workspace. Sua funcao e ajuda
|
|
|
15
15
|
|
|
16
16
|
## Posicao no Pipeline
|
|
17
17
|
|
|
18
|
-
**Predecessor:** qualquer pergunta exploratoria | **Sucessor:** nenhum (fluxo independente). Se nao achar skill, caia para `/dw-brainstorm` (explorar ideias) ou `/dw-run
|
|
18
|
+
**Predecessor:** qualquer pergunta exploratoria | **Sucessor:** nenhum (fluxo independente). Se nao achar skill, caia para `/dw-brainstorm` (explorar ideias) ou `/dw-run` (mudanca pequena one-off) quando aplicavel.
|
|
19
19
|
|
|
20
20
|
## Skills Complementares
|
|
21
21
|
|
|
@@ -81,7 +81,7 @@ Catalogo: https://skills.sh/
|
|
|
81
81
|
- Reconheca que nao houve match, sem inventar
|
|
82
82
|
- Ofereca ajudar direto com capacidades gerais
|
|
83
83
|
- Sugira `/dw-brainstorm` se o usuario quer explorar antes de construir
|
|
84
|
-
- Sugira `/dw-run
|
|
84
|
+
- Sugira `/dw-run` se cabe em uma mudanca pequena (<= 3 arquivos, sem PRD)
|
|
85
85
|
- Mencione `npx skills init <nome>` como caminho para criar a skill que falta
|
|
86
86
|
|
|
87
87
|
## Categorias Comuns
|
|
@@ -128,7 +128,7 @@ Pesquisei skills sobre "<query>" e nao achei match forte
|
|
|
128
128
|
|
|
129
129
|
Posso ajudar direto. Ou:
|
|
130
130
|
/dw-brainstorm "<sua ideia>" — explorar abordagens antes
|
|
131
|
-
/dw-run
|
|
131
|
+
/dw-run "<mudanca pequena>" — se cabe em uma task curta (escreva PRD curto antes)
|
|
132
132
|
npx skills init <nome> — criar voce mesmo se vale a pena reutilizar
|
|
133
133
|
```
|
|
134
134
|
|
|
@@ -150,7 +150,7 @@ Posso ajudar direto. Ou:
|
|
|
150
150
|
`dw-find-skills` porta a skill `find-skills` (do bundle superpowers do Claude, `~/.agents/skills/find-skills/SKILL.md`) para um comando do workflow `dw-*` — assim toda plataforma suportada (Claude Code, Codex, Copilot, OpenCode) ganha a mesma porta de descoberta. Adaptacoes para o dev-workflow:
|
|
151
151
|
|
|
152
152
|
- Integracao com o pipeline: `/dw-help <keyword>` roteia para ca quando bate em `skill`/`find skill`/`install skill`/`extend agent`.
|
|
153
|
-
- Fallback para `/dw-brainstorm` ou `/dw-run
|
|
153
|
+
- Fallback para `/dw-brainstorm` ou `/dw-run` quando nao acha skill — mantem o usuario dentro do workflow ao inves de despeja-lo de maos vazias.
|
|
154
154
|
- Pergunta explicita de escopo (`-g` vs local) antes de instalar, em vez de assumir global.
|
|
155
155
|
|
|
156
156
|
Credito: skill `find-skills` do ecossistema superpowers do Claude e o projeto `npx skills` / [skills.sh](https://skills.sh/).
|
|
@@ -3,7 +3,7 @@ Você é um assistente especializado em mapear funcionalidades reais de telas, f
|
|
|
3
3
|
|
|
4
4
|
## Quando Usar
|
|
5
5
|
- Use para mapear telas, fluxos ou módulos em um dossiê funcional abrangente com cobertura de testes E2E e tours em vídeo opcionais
|
|
6
|
-
- NÃO use quando apenas executar testes QA contra requisitos existentes (use `/dw-
|
|
6
|
+
- NÃO use quando apenas executar testes QA contra requisitos existentes (use `/dw-qa`)
|
|
7
7
|
- NÃO use quando o projeto ainda não foi configurado
|
|
8
8
|
|
|
9
9
|
## Posição no Pipeline
|
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
## Quando Usar
|
|
5
5
|
- Use para criar um Pull Request de uma branch de feature ou bugfix para main/develop
|
|
6
6
|
- NÃO use quando as alterações ainda não foram commitadas (use `/dw-commit` primeiro)
|
|
7
|
-
- NÃO use quando o code review ainda não foi feito (use `/dw-code-
|
|
7
|
+
- NÃO use quando o code review ainda não foi feito (use `/dw-review --code-only` primeiro)
|
|
8
8
|
|
|
9
9
|
## Posição no Pipeline
|
|
10
|
-
**Antecessor:** `/dw-code-
|
|
10
|
+
**Antecessor:** `/dw-review --code-only` ou `/dw-commit` | **Sucessor:** (merge)
|
|
11
11
|
|
|
12
12
|
## Skills Complementares
|
|
13
13
|
|
|
@@ -15,11 +15,11 @@
|
|
|
15
15
|
|-------|---------|
|
|
16
16
|
| `dw-verify` | **SEMPRE** — invocada antes do `git push`. Sem VERIFICATION REPORT PASS na sessão após a última edição de código, o PR **NÃO** pode ser criado. |
|
|
17
17
|
| `dw-git-discipline` | **SEMPRE** — valida naming de branch (`<tipo>/<escopo>` kebab-case), histórico atomic-commit (cada commit single-intent, mensagem conventional), tempo de vida da branch (flag se >7 dias) e escopo da PR (sugere split se diff > ~400 linhas). Descrição da PR segue summary + test plan, não dump de `git log`. |
|
|
18
|
-
| `/dw-
|
|
18
|
+
| `/dw-secure-audit` | **SEMPRE para projetos TS/Python/C#/Rust** — `security-check.md` com status ≠ REJECTED é obrigatório para projetos em linguagem suportada. |
|
|
19
19
|
|
|
20
20
|
<critical>Hard gate 1 (verify): se a sessão atual não tem um VERIFICATION REPORT PASS de `dw-verify` produzido APÓS a última edição/commit, PARAR e invocar `dw-verify` antes de prosseguir. PR é um artefato permanente — exige o maior rigor de verificação.</critical>
|
|
21
21
|
|
|
22
|
-
<critical>Hard gate 2 (security): para projetos TS/Python/C#/Rust, se `{{PRD_PATH}}/security-check.md` não existir OU tiver status REJECTED, PARAR e invocar `/dw-
|
|
22
|
+
<critical>Hard gate 2 (security): para projetos TS/Python/C#/Rust, se `{{PRD_PATH}}/security-check.md` não existir OU tiver status REJECTED, PARAR e invocar `/dw-secure-audit` antes de prosseguir. Vulnerabilidades HIGH/CRITICAL NÃO podem chegar ao PR. Para outras linguagens (Go, Java, etc.), este gate é pulado com nota.</critical>
|
|
23
23
|
|
|
24
24
|
## Uso
|
|
25
25
|
|