@brunosps00/dev-workflow 0.4.7 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +33 -6
- package/lib/constants.js +6 -0
- package/lib/install-deps.js +39 -1
- package/package.json +1 -1
- package/scaffold/en/commands/dw-adr.md +117 -0
- package/scaffold/en/commands/dw-autopilot.md +7 -0
- package/scaffold/en/commands/dw-brainstorm.md +6 -0
- package/scaffold/en/commands/dw-bugfix.md +9 -0
- package/scaffold/en/commands/dw-code-review.md +28 -0
- package/scaffold/en/commands/dw-create-tasks.md +12 -0
- package/scaffold/en/commands/dw-create-techspec.md +8 -0
- package/scaffold/en/commands/dw-fix-qa.md +5 -0
- package/scaffold/en/commands/dw-generate-pr.md +11 -0
- package/scaffold/en/commands/dw-help.md +44 -3
- package/scaffold/en/commands/dw-quick.md +8 -1
- package/scaffold/en/commands/dw-refactoring-analysis.md +1 -0
- package/scaffold/en/commands/dw-resume.md +10 -3
- package/scaffold/en/commands/dw-revert-task.md +114 -0
- package/scaffold/en/commands/dw-review-implementation.md +17 -0
- package/scaffold/en/commands/dw-run-plan.md +19 -1
- package/scaffold/en/commands/dw-run-task.md +14 -1
- package/scaffold/en/commands/dw-security-check.md +271 -0
- package/scaffold/en/commands/dw-update.md +39 -0
- package/scaffold/en/templates/adr-template.md +56 -0
- package/scaffold/en/templates/prd-template.md +12 -0
- package/scaffold/en/templates/task-template.md +12 -0
- package/scaffold/en/templates/tasks-template.md +6 -0
- package/scaffold/en/templates/techspec-template.md +12 -0
- package/scaffold/pt-br/commands/dw-adr.md +117 -0
- package/scaffold/pt-br/commands/dw-autopilot.md +7 -0
- package/scaffold/pt-br/commands/dw-brainstorm.md +6 -0
- package/scaffold/pt-br/commands/dw-bugfix.md +9 -0
- package/scaffold/pt-br/commands/dw-code-review.md +28 -0
- package/scaffold/pt-br/commands/dw-create-tasks.md +12 -0
- package/scaffold/pt-br/commands/dw-create-techspec.md +8 -0
- package/scaffold/pt-br/commands/dw-fix-qa.md +5 -0
- package/scaffold/pt-br/commands/dw-generate-pr.md +11 -0
- package/scaffold/pt-br/commands/dw-help.md +44 -3
- package/scaffold/pt-br/commands/dw-quick.md +8 -1
- package/scaffold/pt-br/commands/dw-refactoring-analysis.md +1 -0
- package/scaffold/pt-br/commands/dw-resume.md +10 -3
- package/scaffold/pt-br/commands/dw-revert-task.md +114 -0
- package/scaffold/pt-br/commands/dw-review-implementation.md +17 -0
- package/scaffold/pt-br/commands/dw-run-plan.md +19 -1
- package/scaffold/pt-br/commands/dw-run-task.md +14 -1
- package/scaffold/pt-br/commands/dw-security-check.md +271 -0
- package/scaffold/pt-br/commands/dw-update.md +40 -0
- package/scaffold/pt-br/templates/adr-template.md +56 -0
- package/scaffold/pt-br/templates/prd-template.md +12 -0
- package/scaffold/pt-br/templates/task-template.md +12 -0
- package/scaffold/pt-br/templates/tasks-template.md +6 -0
- package/scaffold/pt-br/templates/techspec-template.md +12 -0
- package/scaffold/skills/dw-council/SKILL.md +189 -0
- package/scaffold/skills/dw-council/agents/architect-advisor.md +44 -0
- package/scaffold/skills/dw-council/agents/devils-advocate.md +45 -0
- package/scaffold/skills/dw-council/agents/pragmatic-engineer.md +47 -0
- package/scaffold/skills/dw-council/agents/product-mind.md +48 -0
- package/scaffold/skills/dw-council/agents/security-advocate.md +48 -0
- package/scaffold/skills/dw-memory/SKILL.md +178 -0
- package/scaffold/skills/dw-review-rigor/SKILL.md +145 -0
- package/scaffold/skills/dw-verify/SKILL.md +196 -0
- package/scaffold/skills/security-review/languages/csharp.md +507 -0
- package/scaffold/skills/security-review/languages/rust.md +584 -0
- package/scaffold/skills/security-review/languages/typescript.md +373 -0
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: techspec
|
|
3
|
+
schema_version: "1.0"
|
|
4
|
+
status: draft
|
|
5
|
+
---
|
|
6
|
+
|
|
1
7
|
# Technical Specification Template
|
|
2
8
|
|
|
3
9
|
## Executive Summary
|
|
@@ -121,3 +127,9 @@ type ServiceName interface {
|
|
|
121
127
|
### Relevant Files
|
|
122
128
|
|
|
123
129
|
[List relevant project files here]
|
|
130
|
+
|
|
131
|
+
## Related ADRs
|
|
132
|
+
|
|
133
|
+
[List architectural ADRs that constrain or inform this techspec. Leave empty if none. Use `/dw-adr` during execution to record new decisions.
|
|
134
|
+
|
|
135
|
+
- `adrs/adr-NNN.md` — [short title]]
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
<system_instructions>
|
|
2
|
+
Você é um registrador de decisões arquiteturais. Sua função é criar um **Architecture Decision Record (ADR)** que documente uma decisão técnica importante feita durante a fase atual do PRD.
|
|
3
|
+
|
|
4
|
+
## Quando Usar
|
|
5
|
+
- Use quando uma decisão arquitetural ou de design foi tomada e precisa ser registrada para referência futura (escolha de biblioteca, padrão de comunicação, tradeoff de performance, restrição imposta por compliance, etc.)
|
|
6
|
+
- Use durante `/dw-create-techspec` ou `/dw-run-task` quando a justificativa da decisão não cabe no techspec nem no task file
|
|
7
|
+
- NÃO use para decisões triviais ou reversíveis sem custo (escolha de nome de variável, ordem de import)
|
|
8
|
+
- NÃO use para registrar bugs ou incidents (use `/dw-bugfix` ou notas operacionais)
|
|
9
|
+
|
|
10
|
+
## Posição no Pipeline
|
|
11
|
+
**Antecessor:** qualquer ponto do pipeline após `/dw-create-prd` | **Sucessor:** continua o fluxo anterior (techspec, task, review)
|
|
12
|
+
|
|
13
|
+
O ADR é **aditivo**: ele não substitui nenhuma etapa do pipeline. Qualquer command existente pode invocar `/dw-adr` quando uma decisão não-trivial precisar de registro permanente.
|
|
14
|
+
|
|
15
|
+
## Variáveis de Entrada
|
|
16
|
+
|
|
17
|
+
| Variável | Descrição | Exemplo |
|
|
18
|
+
|----------|-----------|---------|
|
|
19
|
+
| `{{PRD_PATH}}` | Caminho da pasta do PRD ativo | `.dw/spec/prd-minha-feature` |
|
|
20
|
+
| `{{TITLE}}` | Título curto da decisão (imperativo) | "Usar PostgreSQL ao invés de MongoDB" |
|
|
21
|
+
|
|
22
|
+
Se `{{PRD_PATH}}` não for fornecido, pergunte ao usuário qual PRD está ativo (leia `.dw/spec/` e liste). Se `{{TITLE}}` não for fornecido, pergunte.
|
|
23
|
+
|
|
24
|
+
## Localização dos Arquivos
|
|
25
|
+
|
|
26
|
+
- Diretório de ADRs: `{{PRD_PATH}}/adrs/`
|
|
27
|
+
- Arquivo novo: `{{PRD_PATH}}/adrs/adr-NNN.md` (NNN zero-padded para 3 dígitos)
|
|
28
|
+
- Template: `.dw/templates/adr-template.md`
|
|
29
|
+
|
|
30
|
+
## Fluxo de Trabalho
|
|
31
|
+
|
|
32
|
+
### 1. Descobrir o próximo número
|
|
33
|
+
- Liste os arquivos em `{{PRD_PATH}}/adrs/` (crie o diretório se não existir)
|
|
34
|
+
- O próximo número é `max(existentes) + 1`, ou `1` se vazio
|
|
35
|
+
|
|
36
|
+
### 2. Coletar contexto (perguntas mínimas)
|
|
37
|
+
|
|
38
|
+
Pergunte ao usuário **4 perguntas objetivas**, uma por vez:
|
|
39
|
+
|
|
40
|
+
1. **Contexto**: qual problema ou força motivadora levou a esta decisão? (1-3 frases)
|
|
41
|
+
2. **Decisão**: qual é a decisão tomada? (1 frase acionável, começa com verbo)
|
|
42
|
+
3. **Alternativas consideradas**: quais outras opções foram avaliadas e por que não foram escolhidas? (mínimo 2)
|
|
43
|
+
4. **Consequências**: quais são os tradeoffs positivos e negativos desta decisão? (explicite os negativos — sem painting rosy)
|
|
44
|
+
|
|
45
|
+
### 3. Escrever o arquivo ADR
|
|
46
|
+
|
|
47
|
+
Use `.dw/templates/adr-template.md` como base. Campos obrigatórios:
|
|
48
|
+
|
|
49
|
+
```yaml
|
|
50
|
+
---
|
|
51
|
+
id: NNN
|
|
52
|
+
status: Proposed | Accepted | Deprecated | Superseded
|
|
53
|
+
title: [título do ADR]
|
|
54
|
+
date: YYYY-MM-DD
|
|
55
|
+
prd: [slug do PRD]
|
|
56
|
+
schema_version: "1.0"
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
# ADR-NNN: [Título]
|
|
60
|
+
|
|
61
|
+
## Status
|
|
62
|
+
[Proposed | Accepted | Deprecated | Superseded by ADR-XXX]
|
|
63
|
+
|
|
64
|
+
## Context
|
|
65
|
+
[Contexto e forças motivadoras]
|
|
66
|
+
|
|
67
|
+
## Decision
|
|
68
|
+
[A decisão tomada]
|
|
69
|
+
|
|
70
|
+
## Alternatives Considered
|
|
71
|
+
1. **[Alternativa 1]** — [por que não foi escolhida]
|
|
72
|
+
2. **[Alternativa 2]** — [por que não foi escolhida]
|
|
73
|
+
|
|
74
|
+
## Consequences
|
|
75
|
+
### Positivas
|
|
76
|
+
- [consequência positiva 1]
|
|
77
|
+
|
|
78
|
+
### Negativas
|
|
79
|
+
- [consequência negativa / tradeoff aceito]
|
|
80
|
+
|
|
81
|
+
## Related
|
|
82
|
+
- PRD: `.dw/spec/prd-[nome]/prd.md`
|
|
83
|
+
- TechSpec: `.dw/spec/prd-[nome]/techspec.md` (se aplicável)
|
|
84
|
+
- Tasks afetadas: [lista, se aplicável]
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### 4. Atualizar referências cruzadas
|
|
88
|
+
|
|
89
|
+
Se o ADR for criado **durante** a execução de um PRD, adicionar uma linha na seção "Related ADRs" dos artefatos relacionados:
|
|
90
|
+
- `prd.md`, `techspec.md`, ou `[N]_task.md`, conforme o escopo da decisão
|
|
91
|
+
|
|
92
|
+
Se a seção "Related ADRs" não existir no arquivo, adicioná-la ao final.
|
|
93
|
+
|
|
94
|
+
### 5. Reportar
|
|
95
|
+
|
|
96
|
+
Apresente ao usuário:
|
|
97
|
+
- Caminho do ADR criado
|
|
98
|
+
- Artefatos atualizados com referência cruzada
|
|
99
|
+
- Status inicial (geralmente `Accepted` para decisões já tomadas, `Proposed` para decisões ainda abertas)
|
|
100
|
+
|
|
101
|
+
## Comportamento Obrigatório
|
|
102
|
+
|
|
103
|
+
<critical>NUNCA sobrescreva um ADR existente. Cada ADR é imutável — se a decisão muda, crie um novo ADR com status `Supersedes ADR-NNN` e marque o antigo como `Superseded by ADR-XXX`.</critical>
|
|
104
|
+
|
|
105
|
+
<critical>NUNCA pinte o tradeoff como "só positivo". A seção Consequências Negativas é obrigatória — se não houver nenhum custo, a decisão não precisa de ADR.</critical>
|
|
106
|
+
|
|
107
|
+
## Inspired by
|
|
108
|
+
|
|
109
|
+
Este command é inspirado no padrão de ADRs de `/tmp/compozy/.agents/skills/cy-create-adr/` do projeto [Compozy](https://github.com/compozy/compozy). Adaptações para dev-workflow:
|
|
110
|
+
|
|
111
|
+
- Paths são `.dw/spec/<prd>/adrs/` ao invés de `.compozy/tasks/<name>/adrs/`
|
|
112
|
+
- 4 perguntas mínimas em vez do fluxo interativo mais longo (alinhado com o estilo conciso de outros commands dw-*)
|
|
113
|
+
- Integração explícita com `schema_version` dos templates v1.0
|
|
114
|
+
|
|
115
|
+
Credit: Compozy project.
|
|
116
|
+
|
|
117
|
+
</system_instructions>
|
|
@@ -33,6 +33,13 @@ Uma etapa que invoca um comando `/dw-xxx` SO e considerada completa quando os ar
|
|
|
33
33
|
## Posicao no Pipeline
|
|
34
34
|
**Antecessor:** (desejo do usuario) | **Sucessor:** (merge do PR)
|
|
35
35
|
|
|
36
|
+
## Skills Complementares
|
|
37
|
+
|
|
38
|
+
| Skill | Gatilho |
|
|
39
|
+
|-------|---------|
|
|
40
|
+
| `dw-memory` | **SEMPRE** — thread de memory atravessa todas as fases (brainstorm -> PRD -> techspec -> tasks -> execucao -> QA -> review -> PR). Decisoes de um gate alimentam o contexto do proximo. |
|
|
41
|
+
| `dw-verify` | **SEMPRE** — invocada em cada gate (PRD, Tasks, PR) antes de pedir aprovacao do usuario; e antes do commit final + push. |
|
|
42
|
+
|
|
36
43
|
## Variaveis de Entrada
|
|
37
44
|
|
|
38
45
|
| Variavel | Descricao | Exemplo |
|
|
@@ -11,6 +11,11 @@ Você é um facilitador de brainstorming para o workspace atual. Este comando ex
|
|
|
11
11
|
## Posição no Pipeline
|
|
12
12
|
**Antecessor:** (ideia do usuário) | **Sucessor:** `/dw-create-prd`
|
|
13
13
|
|
|
14
|
+
## Flags
|
|
15
|
+
|
|
16
|
+
- **(padrão)**: brainstorm normal com 3-7 opções (conservadora, equilibrada, ousada) e trade-offs
|
|
17
|
+
- **`--council`**: após o brainstorm normal, invoca a skill `dw-council` para stress-test das top 2-3 opções através de 3-5 archetypes (pragmatic-engineer, architect-advisor, security-advocate, product-mind, devils-advocate). Útil quando a escolha é de alto impacto e há genuine dissent entre caminhos.
|
|
18
|
+
|
|
14
19
|
## Fluxograma de Decisão: Brainstorm vs PRD Direto
|
|
15
20
|
|
|
16
21
|
```dot
|
|
@@ -33,6 +38,7 @@ digraph brainstorm_decision {
|
|
|
33
38
|
|
|
34
39
|
Quando disponíveis no projeto em `./.agents/skills/`, use para enriquecer a ideação:
|
|
35
40
|
|
|
41
|
+
- `dw-council` (opt-in via `--council`): stress-test multi-advisor das opções mais promissoras com steel-manning obrigatório e concession tracking. **NÃO invocar por padrão** — só quando a flag está presente ou quando surge consenso rápido demais (sinal de false consensus).
|
|
36
42
|
- `ui-ux-pro-max`: use quando o brainstorm envolver frontend, direção de estilo UI, escolhas de design system ou exploração de identidade visual
|
|
37
43
|
- `vercel-react-best-practices`: use quando explorar arquitetura React/Next.js ou trade-offs de performance
|
|
38
44
|
- `security-review`: use quando o brainstorm tocar auth, manipulação de dados ou features sensíveis à segurança
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
|
|
16
16
|
Quando disponíveis no projeto em `./.agents/skills/`, use estas skills como suporte contextual sem substituir este comando:
|
|
17
17
|
|
|
18
|
+
- `dw-verify`: **SEMPRE** — em modo Direto, invocada antes do commit da correção. O VERIFICATION REPORT deve mostrar que o sintoma original do bug não se reproduz mais (não apenas que os testes passam).
|
|
18
19
|
- `vercel-react-best-practices`: use quando o bug afeta React/Next.js e há suspeita de problemas de render, hidratação, fetching, waterfall, bundle ou re-render
|
|
19
20
|
- `webapp-testing`: use quando a correção requer fluxo E2E/reteste reproduzível em uma web app
|
|
20
21
|
- `security-review`: use quando a causa raiz toca auth, autorização, input externo, upload, secrets, SQL, XSS, SSRF ou outras superfícies sensíveis
|
|
@@ -219,6 +220,14 @@
|
|
|
219
220
|
- `ajustar` - me diga o que modificar no plano
|
|
220
221
|
```
|
|
221
222
|
|
|
223
|
+
### 5.5. Verificação Final (Modo Direto — obrigatório antes do commit)
|
|
224
|
+
|
|
225
|
+
<critical>Após aplicar as tarefas aprovadas em modo Direto, invocar `dw-verify` antes do commit. O VERIFICATION REPORT deve mostrar:
|
|
226
|
+
1. O comando de verificação do projeto (test + lint + build) com exit 0.
|
|
227
|
+
2. Reprodução do sintoma original: o cenário que disparava o bug já NÃO dispara mais.
|
|
228
|
+
|
|
229
|
+
Sem PASS nos dois, NÃO commit. Reportar o que falhou e retomar da etapa 4 (análise de causa raiz).</critical>
|
|
230
|
+
|
|
222
231
|
### 6. Gerar Documento Bugfix (Modo Análise)
|
|
223
232
|
|
|
224
233
|
<critical>
|
|
@@ -21,6 +21,9 @@ Normalmente invocado antes de criar PR via `/dw-generate-pr`
|
|
|
21
21
|
|
|
22
22
|
Quando disponíveis no projeto em `./.agents/skills/`, use estas skills como apoio analítico sem substituir este comando:
|
|
23
23
|
|
|
24
|
+
- `dw-review-rigor`: **SEMPRE** — aplica de-duplication (mesmo pattern em N arquivos = 1 finding), severity ordering (critical → high → medium → low), verify-before-flag, skip-what-linter-catches, e signal-over-volume. A tabela "Problemas Encontrados" do relatório segue essa disciplina.
|
|
25
|
+
- `dw-verify`: **SEMPRE** — invocada antes de emitir verdict `APROVADO` ou `APROVADO COM RESSALVAS`. Sem VERIFICATION REPORT PASS (test + lint + build), o verdict não pode sair como APROVADO.
|
|
26
|
+
- `/dw-security-check`: **SEMPRE para projetos TS/Python/C#/Rust** — invocado como step 6.7 (Camada de Segurança) antes de emitir verdict. Se o projeto usa linguagem suportada e `security-check.md` não existe OU tem status REJECTED, o verdict é **REPROVADO** — sem exceção.
|
|
24
27
|
- `security-review`: use quando auth, autorização, input externo, upload, SQL, integração externa, secrets, SSRF, XSS ou superfícies sensíveis estiverem presentes
|
|
25
28
|
- `vercel-react-best-practices`: use quando o diff tocar React/Next.js para revisar padrões de renderização, fetching, bundle, hidratação e performance
|
|
26
29
|
|
|
@@ -180,6 +183,31 @@ Verificar:
|
|
|
180
183
|
|
|
181
184
|
<critical>O REVIEW NÃO PODE SER APROVADO SE ALGUM TESTE FALHAR</critical>
|
|
182
185
|
|
|
186
|
+
### 6.5. Aplicar `dw-review-rigor` (Obrigatório)
|
|
187
|
+
|
|
188
|
+
Antes de escrever a tabela "Problemas Encontrados" do relatório, invocar a skill `dw-review-rigor` e aplicar as cinco regras:
|
|
189
|
+
|
|
190
|
+
1. **De-duplicação**: se o mesmo padrão aparece em N arquivos, emitir 1 finding com a lista de arquivos afetados — nunca N findings idênticos.
|
|
191
|
+
2. **Severity ordering**: apresentar sempre na ordem critical → high → medium → low (não por arquivo).
|
|
192
|
+
3. **Verify intent before flagging**: checar comentários adjacentes, ADRs em `.dw/spec/*/adrs/`, cobertura de testes, regras em `.dw/rules/`. Não flaggar o que tem justificativa documentada.
|
|
193
|
+
4. **Skip what linter catches**: rodar o linter do projeto primeiro; nada que ele já reporta vira finding.
|
|
194
|
+
5. **Signal over volume**: máximo ~8 findings precisos são mais úteis que 30 marginais. Manter todos os critical/high; podar medium/low para os mais impactantes.
|
|
195
|
+
|
|
196
|
+
Se houver reviews anteriores em `{{PRD_PATH}}/reviews/` ou `{{PRD_PATH}}/dw-code-review.md` (round anterior), ler e emitir **apenas findings NOVOS** — não re-flaggar itens já tratados.
|
|
197
|
+
|
|
198
|
+
### 6.6. Verificação Final (Obrigatório antes do verdict)
|
|
199
|
+
|
|
200
|
+
<critical>Invocar `dw-verify` e incluir o VERIFICATION REPORT no início do relatório. Sem PASS, o verdict só pode ser `REPROVADO` — nunca `APROVADO` ou `APROVADO COM RESSALVAS`.</critical>
|
|
201
|
+
|
|
202
|
+
### 6.7. Camada de Segurança (Obrigatório para projetos TS/Python/C#/Rust)
|
|
203
|
+
|
|
204
|
+
<critical>Para projetos em TypeScript/JavaScript, Python, C# ou Rust que tiveram código modificado no diff, invocar `/dw-security-check` com o mesmo `{{PRD_PATH}}`. Sem `security-check.md` presente no PRD OU com status diferente de CLEAN/PASSED WITH OBSERVATIONS, o verdict é **REPROVADO** — sem exceção.</critical>
|
|
205
|
+
|
|
206
|
+
- Se `/dw-security-check` retornar **REJECTED**: verdict automático **REPROVADO**. Incluir na seção "Problemas Encontrados" do relatório final os findings CRITICAL/HIGH do security-check com severity apropriada.
|
|
207
|
+
- Se retornar **PASSED WITH OBSERVATIONS**: pode seguir para APROVADO COM RESSALVAS, listando as observations medium/low como ressalvas.
|
|
208
|
+
- Se retornar **CLEAN**: prossegue normalmente para o verdict baseado nos demais critérios.
|
|
209
|
+
- Projetos em linguagens não suportadas pelo security-check (Go, Java, PHP, Ruby etc.) → pular este step com nota visível no relatório de code-review.
|
|
210
|
+
|
|
183
211
|
### 7. Gerar Relatório de Code Review (Obrigatório)
|
|
184
212
|
|
|
185
213
|
Salvar em `{{PRD_PATH}}/dw-code-review.md`:
|
|
@@ -42,10 +42,22 @@
|
|
|
42
42
|
- Organizar sequenciamento
|
|
43
43
|
- Incluir testes unitários como subtarefas de cada task
|
|
44
44
|
|
|
45
|
+
3.5. **Verificação de Dependências Circulares (Pré-flight)**
|
|
46
|
+
- Antes de escrever qualquer arquivo, monte o grafo de dependências (campo `blockedBy` ou "Depende de" entre tasks)
|
|
47
|
+
- Detecte ciclos: se a task A depende de B e B depende (direta ou transitivamente) de A, há ciclo
|
|
48
|
+
- Se houver ciclo: **NÃO escreva os arquivos**. Apresente o ciclo ao usuário e peça reestruturação (ex: extrair responsabilidade comum, inverter dependência, mesclar tasks)
|
|
49
|
+
- Se não houver ciclo: prossiga
|
|
50
|
+
|
|
45
51
|
4. **Gerar Arquivos de Tarefas Individuais**
|
|
46
52
|
- Criar arquivo para cada tarefa principal
|
|
47
53
|
- Detalhar subtarefas e critérios de sucesso
|
|
48
54
|
- Incluir testes unitários obrigatórios
|
|
55
|
+
- **Enriquecimento codebase-aware (Opcional mas recomendado)**: para tasks que tocam áreas conhecidas do codebase, dispatche um Agent Explore em paralelo (um por task ou um por área) para preencher:
|
|
56
|
+
- "Arquivos Relevantes": paths e razão pela qual são relevantes para a task
|
|
57
|
+
- "Arquivos Dependentes": paths que podem precisar mudar em cascata
|
|
58
|
+
- "Regras Aplicáveis": links para `.dw/rules/*.md` que restringem a task
|
|
59
|
+
- "ADRs Relacionados": arquivos em `.dw/spec/<prd>/adrs/` que constrangem decisões
|
|
60
|
+
Esse enriquecimento é aditivo: não bloqueia a geração das tasks, apenas aumenta a qualidade do contexto que a `dw-run-task` recebe depois.
|
|
49
61
|
|
|
50
62
|
## Diretrizes de Criação de Tarefas
|
|
51
63
|
|
|
@@ -13,10 +13,16 @@
|
|
|
13
13
|
## Posição no Pipeline
|
|
14
14
|
**Antecessor:** `/dw-create-prd` | **Sucessor:** `/dw-create-tasks`
|
|
15
15
|
|
|
16
|
+
## Flags
|
|
17
|
+
|
|
18
|
+
- **(padrão)**: gera techspec normal a partir do PRD
|
|
19
|
+
- **`--council`**: antes de finalizar o techspec, invoca a skill `dw-council` sobre a decisão arquitetural principal (ex: monólito vs microserviços, SQL vs NoSQL, lib X vs Y). O output do council vira uma seção "Debate Arquitetural" no techspec, e decisões firmes viram ADR via `/dw-adr`. Útil quando o techspec introduz uma escolha estrutural de alto impacto.
|
|
20
|
+
|
|
16
21
|
## Skills Complementares
|
|
17
22
|
|
|
18
23
|
Quando disponíveis no projeto em `./.agents/skills/`, use como apoio:
|
|
19
24
|
|
|
25
|
+
- `dw-council` (opt-in via `--council`): debate multi-advisor da decisão arquitetural principal com steel-manning. **NÃO invocar por padrão**.
|
|
20
26
|
- `vercel-react-best-practices`: use quando definir arquitetura frontend para projetos React/Next.js
|
|
21
27
|
- `ui-ux-pro-max`: use quando definir decisões de design system, paletas de cores, tipografia e estilo UI no TechSpec
|
|
22
28
|
- `security-review`: use quando a feature tocar auth, autorização ou manipulação de dados sensíveis
|
|
@@ -94,6 +100,8 @@
|
|
|
94
100
|
- Revisar padrões do projeto em `{{RULES_PATH}}`
|
|
95
101
|
- Confirmar que o PRD existe em `{{PRD_PATH}}` ou `.dw/spec/prd-[nome-funcionalidade]/prd.md`
|
|
96
102
|
|
|
103
|
+
<critical>Hard gate: se o PRD tiver seção "Questões em Aberto" / "Open Questions" com itens não resolvidos, PARAR. Apresentar as questões ao usuário e pedir que sejam resolvidas antes de escrever o techspec. Um techspec construído sobre requisitos indefinidos gera retrabalho garantido.</critical>
|
|
104
|
+
|
|
97
105
|
## Fluxo de Trabalho
|
|
98
106
|
|
|
99
107
|
### 1. Analisar PRD (Obrigatório)
|
|
@@ -17,6 +17,7 @@ Você é um assistente IA especializado em correção de bugs pós-QA com retest
|
|
|
17
17
|
|
|
18
18
|
Quando disponíveis no projeto em `./.agents/skills/`, use estas skills como suporte operacional sem substituir este comando:
|
|
19
19
|
|
|
20
|
+
- `dw-verify`: **SEMPRE** — invocada antes de marcar qualquer bug como `Corrigido` ou `Fechado` no `QA/bugs.md`. Sem VERIFICATION REPORT PASS (test + lint + build) + evidência de reteste, o status permanece `Reaberto` ou `Em análise`.
|
|
20
21
|
- `webapp-testing`: suporte para estruturar retestes, capturas e scripts quando complementar ao Playwright MCP
|
|
21
22
|
- `vercel-react-best-practices`: use apenas se a correção afetar frontend React/Next.js e houver risco de regressão de renderização, hidratação, fetching ou performance
|
|
22
23
|
|
|
@@ -88,6 +89,10 @@ Para cada bug corrigido:
|
|
|
88
89
|
7. Registrar no relatório de QA qual usuário/perfil foi usado no reteste
|
|
89
90
|
8. Se o reteste exigir auth persistente, inspeção além do MCP, ou reprodução mais fiel em navegador real, registrar no relatório
|
|
90
91
|
|
|
92
|
+
### 3.5. Verificação Final Antes de Atualizar Status
|
|
93
|
+
|
|
94
|
+
<critical>Invocar a skill `dw-verify` antes de mudar o status de qualquer bug para `Corrigido` ou `Fechado`. O VERIFICATION REPORT (test + lint + build) deve ser PASS **e** a evidência de reteste do Playwright deve estar salva. Sem os dois, o status não muda.</critical>
|
|
95
|
+
|
|
91
96
|
### 4. Atualização de Artefatos
|
|
92
97
|
|
|
93
98
|
Atualizar `QA/bugs.md` para cada bug:
|
|
@@ -9,6 +9,17 @@
|
|
|
9
9
|
## Posição no Pipeline
|
|
10
10
|
**Antecessor:** `/dw-code-review` ou `/dw-commit` | **Sucessor:** (merge)
|
|
11
11
|
|
|
12
|
+
## Skills Complementares
|
|
13
|
+
|
|
14
|
+
| Skill | Gatilho |
|
|
15
|
+
|-------|---------|
|
|
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
|
+
| `/dw-security-check` | **SEMPRE para projetos TS/Python/C#/Rust** — `security-check.md` com status ≠ REJECTED é obrigatório para projetos em linguagem suportada. |
|
|
18
|
+
|
|
19
|
+
<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>
|
|
20
|
+
|
|
21
|
+
<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-security-check` antes de prosseguir. Vulnerabilidades HIGH/CRITICAL NÃO podem chegar ao PR. Para outras linguagens (Go, Java, etc.), este gate é pulado com nota.</critical>
|
|
22
|
+
|
|
12
23
|
## Uso
|
|
13
24
|
|
|
14
25
|
```
|
|
@@ -11,7 +11,27 @@ Você é um assistente de ajuda do workspace. Quando invocado, apresente ao usu
|
|
|
11
11
|
## Comportamento
|
|
12
12
|
|
|
13
13
|
- Se invocado sem argumentos (`/dw-help`): mostre o guia completo abaixo
|
|
14
|
-
- Se invocado com argumento (`/dw-help dw-create-prd`): mostre apenas a seção detalhada daquele comando
|
|
14
|
+
- Se invocado com argumento correspondente a um comando (`/dw-help dw-create-prd`): mostre apenas a seção detalhada daquele comando
|
|
15
|
+
- Se invocado com **keyword que não é nome de comando** (`/dw-help bug`, `/dw-help review`, `/dw-help design`): faça lookup contextual — identifique o(s) comando(s) mais relevante(s) pela keyword e apresente cada um com 1-2 linhas de justificativa ("para bug, use `/dw-bugfix` porque..."). Use a tabela de mapeamento abaixo.
|
|
16
|
+
|
|
17
|
+
### Mapeamento contextual (keyword → comando sugerido)
|
|
18
|
+
|
|
19
|
+
| Keyword(s) | Comando sugerido | Justificativa |
|
|
20
|
+
|------------|------------------|---------------|
|
|
21
|
+
| bug, erro, falha, problema | `/dw-bugfix` | Triagem automática bug vs feature + correção |
|
|
22
|
+
| review, revisão, qualidade | `/dw-code-review` | Review formal Nível 3 com relatório |
|
|
23
|
+
| qa, teste visual, playwright | `/dw-run-qa` | QA E2E com browser automation |
|
|
24
|
+
| refactor, smell, fowler | `/dw-refactoring-analysis` | Auditoria de code smells priorizada |
|
|
25
|
+
| design, ui, redesign | `/dw-redesign-ui` | Auditoria + propostas + implementação visual |
|
|
26
|
+
| decisão, adr, arquitetura | `/dw-adr` | Registrar Architecture Decision Record |
|
|
27
|
+
| debate, council, stress-test, opiniões | `/dw-brainstorm --council` ou `/dw-create-techspec --council` | Invoca `dw-council` para debate multi-advisor |
|
|
28
|
+
| security, segurança, vulnerabilidade, owasp, trivy, cve | `/dw-security-check` | Check multi-camada rígido (OWASP estático + Trivy SCA/IaC + audit nativo) para TS/Python/C#/Rust |
|
|
29
|
+
| reverter, rollback de task | `/dw-revert-task` | Revert seguro com check de dependências |
|
|
30
|
+
| hotfix, mudança rápida | `/dw-quick` | Task pontual com garantias sem PRD |
|
|
31
|
+
| retomar, onde parei | `/dw-resume` | Restaura contexto da sessão anterior |
|
|
32
|
+
| pesquisa, research | `/dw-deep-research` | Pesquisa multi-fonte com citações |
|
|
33
|
+
| ideia, brainstorm | `/dw-brainstorm` | Ideação estruturada com trade-offs |
|
|
34
|
+
| atualizar dev-workflow | `/dw-update` | Atualiza para versão npm mais recente |
|
|
15
35
|
|
|
16
36
|
---
|
|
17
37
|
|
|
@@ -116,6 +136,7 @@ Este workspace utiliza um sistema de comandos AI que automatiza o ciclo completo
|
|
|
116
136
|
| `/dw-review-implementation` | Compara PRD vs código (FRs, endpoints, tasks) | Path do PRD | Relatório de gaps |
|
|
117
137
|
| `/dw-code-review` | Code review formal (qualidade, rules, testes) | Path do PRD | `code-review.md` |
|
|
118
138
|
| `/dw-refactoring-analysis` | Auditoria de code smells e oportunidades de refatoração (catálogo Fowler) | Path do PRD | `refactoring-analysis.md` |
|
|
139
|
+
| `/dw-security-check` | Check de segurança rígido (OWASP estático + Trivy SCA/IaC + audit nativo) para TS/Python/C#/Rust | Path do PRD ou código | `security-check.md` |
|
|
119
140
|
|
|
120
141
|
### Versionamento
|
|
121
142
|
|
|
@@ -123,13 +144,33 @@ Este workspace utiliza um sistema de comandos AI que automatiza o ciclo completo
|
|
|
123
144
|
|---------|-----------|-------|--------|
|
|
124
145
|
| `/dw-commit` | Commit semântico (Conventional Commits) | - | Commit |
|
|
125
146
|
| `/dw-generate-pr` | Push + cria PR + copia body + abre URL | Branch alvo | PR no GitHub |
|
|
147
|
+
| `/dw-revert-task` | Reverte com segurança os commits de uma task específica (check de dependências + confirmação) | Path do PRD + número da task | Commits revertidos + `tasks.md` atualizado |
|
|
148
|
+
|
|
149
|
+
### Decisões Arquiteturais
|
|
150
|
+
|
|
151
|
+
| Comando | O que faz | Input | Output |
|
|
152
|
+
|---------|-----------|-------|--------|
|
|
153
|
+
| `/dw-adr` | Registra um Architecture Decision Record (ADR) para decisão não-trivial durante o PRD | Path do PRD + título | `.dw/spec/<prd>/adrs/adr-NNN.md` + cross-refs atualizadas |
|
|
126
154
|
|
|
127
155
|
### Utilitários
|
|
128
156
|
|
|
129
157
|
| Comando | O que faz | Input | Output |
|
|
130
158
|
|---------|-----------|-------|--------|
|
|
131
|
-
| `/dw-help` | Este guia de comandos | (opcional) comando | Este documento |
|
|
132
|
-
| `/dw-update` | Atualiza o dev-workflow para a versão mais recente no npm sem sair do agente | (nenhum) | Arquivos gerenciados atualizados |
|
|
159
|
+
| `/dw-help` | Este guia de comandos (suporta lookup por keyword: `/dw-help bug`) | (opcional) comando ou keyword | Este documento ou seção filtrada |
|
|
160
|
+
| `/dw-update` | Atualiza o dev-workflow para a versão mais recente no npm sem sair do agente (suporta `--rollback`) | (nenhum) ou `--rollback` | Arquivos gerenciados atualizados ou restaurados |
|
|
161
|
+
|
|
162
|
+
### Bundled Skills (invocadas internamente — não são commands)
|
|
163
|
+
|
|
164
|
+
Skills em `.agents/skills/` que os commands acima invocam transparentemente. Você não as chama diretamente.
|
|
165
|
+
|
|
166
|
+
| Skill | Invocada por | Papel |
|
|
167
|
+
|-------|--------------|-------|
|
|
168
|
+
| `dw-verify` | run-task, run-plan, fix-qa, bugfix, code-review, generate-pr, quick | Iron Law: nenhuma claim de sucesso sem VERIFICATION REPORT PASS |
|
|
169
|
+
| `dw-memory` | run-task, run-plan, autopilot, resume, revert-task | Memory de workflow em dois níveis (shared + task-local) com promotion test |
|
|
170
|
+
| `dw-review-rigor` | code-review, review-implementation, refactoring-analysis | De-duplication, severity ordering, verify-intent-before-flag, signal-over-volume |
|
|
171
|
+
| `dw-council` | brainstorm `--council`, create-techspec `--council` | Debate multi-advisor (3-5 archetypes) com steel-manning, concession tracking e synthesis que preserva dissent. Opt-in. |
|
|
172
|
+
|
|
173
|
+
Inspiradas em skills do projeto [Compozy](https://github.com/compozy/compozy) (`cy-final-verify`, `cy-workflow-memory`, `cy-review-round`).
|
|
133
174
|
|
|
134
175
|
## Fluxos Comuns
|
|
135
176
|
|
|
@@ -13,6 +13,12 @@ Voce e um executor de tasks rapidas. Este comando existe para implementar mudanc
|
|
|
13
13
|
## Posicao no Pipeline
|
|
14
14
|
**Antecessor:** (necessidade pontual do usuario) | **Sucessor:** `/dw-commit` (automatico)
|
|
15
15
|
|
|
16
|
+
## Skills Complementares
|
|
17
|
+
|
|
18
|
+
| Skill | Gatilho |
|
|
19
|
+
|-------|---------|
|
|
20
|
+
| `dw-verify` | **SEMPRE** — invocada antes do commit. Mesmo mudancas pequenas exigem VERIFICATION REPORT PASS (test + lint minimos) antes de commit atomico. |
|
|
21
|
+
|
|
16
22
|
## Variaveis de Entrada
|
|
17
23
|
|
|
18
24
|
| Variavel | Descricao | Exemplo |
|
|
@@ -27,7 +33,8 @@ Voce e um executor de tasks rapidas. Este comando existe para implementar mudanc
|
|
|
27
33
|
4. Implemente a mudanca seguindo convencoes do projeto
|
|
28
34
|
5. Execute testes existentes relevantes (unit, integration)
|
|
29
35
|
6. Execute lint se configurado no projeto
|
|
30
|
-
7.
|
|
36
|
+
7. Invoque `dw-verify` e inclua o VERIFICATION REPORT no output antes de commitar. Sem PASS, NAO commit.
|
|
37
|
+
8. Crie commit atomico semantico com a mudanca
|
|
31
38
|
|
|
32
39
|
## Integracao GSD
|
|
33
40
|
|
|
@@ -20,6 +20,7 @@ Pré-requisito: Execute `/dw-analyze-project` primeiro para entender padrões e
|
|
|
20
20
|
|
|
21
21
|
Quando disponíveis no projeto em `./.agents/skills/`, use como suporte analítico sem substituir este comando:
|
|
22
22
|
|
|
23
|
+
- `dw-review-rigor`: **SEMPRE** — ao catalogar code smells, aplicar de-duplication (mesmo smell em N arquivos = 1 entrada com affected list), severity ordering nos P0-P3, signal-over-volume (máx ~20 findings; manter críticos, podar marginais). Smell com ADR justificatório baixa para `low` no máximo.
|
|
23
24
|
- `security-review`: delegue preocupações de segurança para este skill — não duplique
|
|
24
25
|
- `vercel-react-best-practices`: delegue padrões de performance React/Next.js para este skill
|
|
25
26
|
|
|
@@ -11,6 +11,12 @@ Voce e um assistente de continuidade de sessao. Este comando existe para restaur
|
|
|
11
11
|
## Posicao no Pipeline
|
|
12
12
|
**Antecessor:** (inicio de sessao) | **Sucessor:** qualquer comando dw-*
|
|
13
13
|
|
|
14
|
+
## Skills Complementares
|
|
15
|
+
|
|
16
|
+
| Skill | Gatilho |
|
|
17
|
+
|-------|---------|
|
|
18
|
+
| `dw-memory` | **SEMPRE** — para cada PRD ativo identificado, ler `.dw/spec/<prd>/MEMORY.md` (shared) para reconstituir constraints, decisoes e handoff notes da sessao anterior. Incluir no resumo apresentado ao usuario. |
|
|
19
|
+
|
|
14
20
|
## Comportamento Obrigatorio
|
|
15
21
|
|
|
16
22
|
<critical>ANTES de qualquer analise, verifique se existe um autopilot interrompido. Procure por `autopilot-state.json` em TODOS os diretorios dentro de `.dw/spec/`. Se encontrar um com status diferente de "completed", a retomada do autopilot tem PRIORIDADE sobre qualquer outra sugestao.</critical>
|
|
@@ -29,9 +35,10 @@ Voce e um assistente de continuidade de sessao. Este comando existe para restaur
|
|
|
29
35
|
1. Leia `.dw/spec/` e identifique PRDs com tasks pendentes (checkboxes `- [ ]` em tasks.md)
|
|
30
36
|
2. Leia `git log --oneline -10` para identificar o ultimo trabalho realizado
|
|
31
37
|
3. Identifique a branch ativa e se ha mudancas nao commitadas
|
|
32
|
-
4.
|
|
33
|
-
5.
|
|
34
|
-
6.
|
|
38
|
+
4. **Invoque `dw-memory`**: para o PRD ativo, leia `.dw/spec/<prd>/MEMORY.md` e a memory da proxima task pendente (`tasks/<N>_memory.md` se existir). Extraia decisoes durables, constraints cross-task e handoff notes.
|
|
39
|
+
5. Cruze: ultimo PRD ativo, ultima task completada, proxima task pendente, contexto de memory
|
|
40
|
+
6. Apresente o resumo no formato abaixo (incluindo bullets de "Do ponto onde paramos" com base na memory)
|
|
41
|
+
7. Sugira o proximo comando a executar
|
|
35
42
|
|
|
36
43
|
## Integracao GSD
|
|
37
44
|
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
<system_instructions>
|
|
2
|
+
Você é um revertedor seguro de tasks. Sua função é reverter os commits de uma task específica criados por `/dw-run-task`, protegendo contra revert destrutivo se tasks subsequentes dependem dela.
|
|
3
|
+
|
|
4
|
+
<critical>Este é um command destrutivo em potencial (altera o git history da branch ativa). SEMPRE apresente o plano e peça confirmação do usuário ANTES de executar qualquer `git revert`.</critical>
|
|
5
|
+
|
|
6
|
+
## Quando Usar
|
|
7
|
+
- Use para desfazer uma task específica que foi implementada e commitada mas precisa ser revertida (mudança de requisitos, erro de implementação não capturado pela validação, decisão revista)
|
|
8
|
+
- NÃO use para desfazer múltiplas tasks simultaneamente (reverta uma de cada vez)
|
|
9
|
+
- NÃO use se a task já foi pushada para remote e mergeada em main (nesse caso é necessário PR de revert)
|
|
10
|
+
|
|
11
|
+
## Posição no Pipeline
|
|
12
|
+
**Antecessor:** `/dw-run-task` ou `/dw-run-plan` que criou os commits da task | **Sucessor:** re-execução da task ou mudança de plano
|
|
13
|
+
|
|
14
|
+
## Variáveis de Entrada
|
|
15
|
+
|
|
16
|
+
| Variável | Descrição | Exemplo |
|
|
17
|
+
|----------|-----------|---------|
|
|
18
|
+
| `{{PRD_PATH}}` | Caminho do PRD ativo | `.dw/spec/prd-minha-feature` |
|
|
19
|
+
| `{{TASK_NUMBER}}` | Número da task a reverter | `3` (para task 3.0) |
|
|
20
|
+
|
|
21
|
+
## Fluxo de Trabalho
|
|
22
|
+
|
|
23
|
+
### 1. Identificar commits da task
|
|
24
|
+
|
|
25
|
+
- Ler `{{PRD_PATH}}/tasks.md` e `{{PRD_PATH}}/{{TASK_NUMBER}}_task.md`
|
|
26
|
+
- Identificar commits relacionados à task via:
|
|
27
|
+
- `git log --grep="task {{TASK_NUMBER}}"` ou
|
|
28
|
+
- `git log --grep="Task {{TASK_NUMBER}}"` ou
|
|
29
|
+
- Intersecção manual: commits na branch entre o último commit da task {{TASK_NUMBER - 1}} e o commit marcador da task {{TASK_NUMBER}} no tasks.md
|
|
30
|
+
- Listar hashes e mensagens ao usuário
|
|
31
|
+
|
|
32
|
+
### 2. Verificação de Dependências (Obrigatória)
|
|
33
|
+
|
|
34
|
+
<critical>Antes de propor o revert, verificar se tasks subsequentes dependem dos artefatos desta task.</critical>
|
|
35
|
+
|
|
36
|
+
- Ler `tasks.md` e identificar tasks com `{{TASK_NUMBER}}` no campo `blockedBy` ou na seção "Depende de"
|
|
37
|
+
- Para cada task dependente:
|
|
38
|
+
- Verificar se já foi executada (checkbox `- [x]`)
|
|
39
|
+
- Se SIM: revert dessa task cascataria — PARAR e apresentar conflito ao usuário
|
|
40
|
+
- Se NÃO: ok, a task pendente pode ser re-executada após o revert
|
|
41
|
+
|
|
42
|
+
### 3. Apresentar Plano
|
|
43
|
+
|
|
44
|
+
Apresente ao usuário:
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
PLANO DE REVERT — Task {{TASK_NUMBER}}
|
|
48
|
+
|
|
49
|
+
Commits a serem revertidos (em ordem reversa):
|
|
50
|
+
- <hash_N> <mensagem>
|
|
51
|
+
- <hash_N-1> <mensagem>
|
|
52
|
+
...
|
|
53
|
+
|
|
54
|
+
Tasks dependentes afetadas:
|
|
55
|
+
- Task X.Y (pendente, pode ser re-executada após o revert)
|
|
56
|
+
- [OU: ⚠️ Task X.Y já executada — conflito, PARAR]
|
|
57
|
+
|
|
58
|
+
Artefatos a atualizar após o revert:
|
|
59
|
+
- {{PRD_PATH}}/tasks.md (remarcar task {{TASK_NUMBER}} como pendente)
|
|
60
|
+
- {{PRD_PATH}}/tasks/{{TASK_NUMBER}}_memory.md (adicionar nota "revertida em YYYY-MM-DD")
|
|
61
|
+
|
|
62
|
+
Prosseguir? [s/N]
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Aguarde confirmação explícita.
|
|
66
|
+
|
|
67
|
+
### 4. Executar Revert
|
|
68
|
+
|
|
69
|
+
Somente após `s`/`sim`/`yes`:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
# Para cada commit, em ordem reversa:
|
|
73
|
+
git revert --no-edit <hash>
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Se houver conflitos durante o revert: PARAR, reportar os conflitos e aguardar resolução manual do usuário. NÃO force.
|
|
77
|
+
|
|
78
|
+
### 5. Atualizar Artefatos
|
|
79
|
+
|
|
80
|
+
Após revert bem-sucedido:
|
|
81
|
+
- Em `tasks.md`: mudar `- [x]` para `- [ ]` na linha da task {{TASK_NUMBER}}
|
|
82
|
+
- Em `tasks/{{TASK_NUMBER}}_memory.md`: adicionar bloco:
|
|
83
|
+
```
|
|
84
|
+
## Revert em YYYY-MM-DD
|
|
85
|
+
- Motivo: [preencher com o motivo fornecido pelo usuário]
|
|
86
|
+
- Commits revertidos: [hashes]
|
|
87
|
+
```
|
|
88
|
+
- Invocar `dw-memory` para promover a nota ao `MEMORY.md` se for cross-task relevante
|
|
89
|
+
|
|
90
|
+
### 6. Reportar
|
|
91
|
+
|
|
92
|
+
- Lista de commits revertidos (e os commits de revert criados)
|
|
93
|
+
- Status dos artefatos atualizados
|
|
94
|
+
- Sugestão do próximo passo (`/dw-run-task {{TASK_NUMBER}}` para re-executar, ou `/dw-create-tasks` se o escopo mudou)
|
|
95
|
+
|
|
96
|
+
## Comportamento Obrigatório
|
|
97
|
+
|
|
98
|
+
<critical>NUNCA use `git reset --hard` ou `git rebase -i` como alternativa ao revert. Revert preserva história e é seguro em branches compartilhadas.</critical>
|
|
99
|
+
|
|
100
|
+
<critical>NUNCA force o revert se tasks dependentes já foram executadas. Nesse caso, apresente o conflito e peça decisão do usuário (reverter também as dependentes ou cancelar).</critical>
|
|
101
|
+
|
|
102
|
+
<critical>NUNCA prossiga sem confirmação explícita `s`/`sim`/`yes` do usuário.</critical>
|
|
103
|
+
|
|
104
|
+
## Skills Complementares
|
|
105
|
+
|
|
106
|
+
| Skill | Gatilho |
|
|
107
|
+
|-------|---------|
|
|
108
|
+
| `dw-memory` | **SEMPRE** — ao atualizar memory da task com a nota de revert, aplicar promotion test para decidir se vai para shared `MEMORY.md` |
|
|
109
|
+
|
|
110
|
+
## Inspired by
|
|
111
|
+
|
|
112
|
+
Compozy não tem command análogo. Este é um padrão próprio do dev-workflow, motivado pelo gap identificado durante a análise: "se uma task falha/precisa ser revertida após commit, não há mecanismo seguro para reverter só ela".
|
|
113
|
+
|
|
114
|
+
</system_instructions>
|
|
@@ -23,6 +23,13 @@
|
|
|
23
23
|
|
|
24
24
|
Este comando é chamado automaticamente pelo `/dw-run-plan` ao final de todas as tasks, mas também pode ser executado manualmente.
|
|
25
25
|
|
|
26
|
+
## Skills Complementares
|
|
27
|
+
|
|
28
|
+
| Skill | Gatilho |
|
|
29
|
+
|-------|---------|
|
|
30
|
+
| `dw-review-rigor` | **SEMPRE** — ao listar gaps entre PRD/TechSpec e código, aplicar de-duplication (mesmo gap em N módulos = 1 entrada), severity ordering e verify-intent-before-flag |
|
|
31
|
+
| `/dw-security-check` | **SEMPRE para projetos TS/Python/C#/Rust com diff que toca código** — os findings viram uma categoria "Security Gaps" no ciclo interativo de correções. Se status REJECTED, os gaps são bloqueantes. |
|
|
32
|
+
|
|
26
33
|
## Variáveis de Entrada
|
|
27
34
|
|
|
28
35
|
| Variável | Descrição | Exemplo |
|
|
@@ -36,6 +43,16 @@
|
|
|
36
43
|
2. Especificações técnicas da TechSpec
|
|
37
44
|
3. Tasks definidas no tasks.md
|
|
38
45
|
4. Código efetivamente implementado (via git diff/status)
|
|
46
|
+
5. **Segurança do código implementado** (via `/dw-security-check` para projetos TS/Python/C#/Rust)
|
|
47
|
+
|
|
48
|
+
## Camada de Segurança (Obrigatório para projetos TS/Python/C#/Rust)
|
|
49
|
+
|
|
50
|
+
<critical>Se o projeto usa TypeScript, Python, C# ou Rust e o diff toca código (não apenas docs), INVOCAR `/dw-security-check {{PRD_PATH}}` antes de listar gaps. O status e findings retornados alimentam a seção "Security Gaps" do relatório de Nível 2.</critical>
|
|
51
|
+
|
|
52
|
+
- Status **REJECTED** do security-check → os findings CRITICAL/HIGH viram gaps **bloqueantes** no ciclo interativo de correções (equivalente a gap de funcionalidade crítica não implementada)
|
|
53
|
+
- Status **PASSED WITH OBSERVATIONS** → os findings MEDIUM/LOW viram recomendações no ciclo
|
|
54
|
+
- Status **CLEAN** → seção "Security Gaps: Nenhum" no relatório
|
|
55
|
+
- Projeto em linguagem não suportada → nota no relatório indicando que a camada de segurança foi pulada
|
|
39
56
|
|
|
40
57
|
## Arquivos a Ler (Obrigatório)
|
|
41
58
|
|