@brunosps00/dev-workflow 0.13.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +106 -122
- 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 +27 -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 +160 -9
- package/scaffold/en/commands/dw-bugfix.md +7 -6
- 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 +2 -2
- 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 +7 -7
- 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 +27 -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 +160 -9
- package/scaffold/pt-br/commands/dw-bugfix.md +10 -9
- 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 +2 -2
- 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 +7 -7
- 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 +168 -0
- package/scaffold/skills/dw-incident-response/references/blameless-discipline.md +126 -0
- package/scaffold/skills/dw-incident-response/references/communication-templates.md +107 -0
- package/scaffold/skills/dw-incident-response/references/postmortem-template.md +133 -0
- package/scaffold/skills/dw-incident-response/references/runbook-templates.md +169 -0
- package/scaffold/skills/dw-incident-response/references/severity-and-triage.md +186 -0
- package/scaffold/skills/dw-llm-eval/SKILL.md +150 -0
- package/scaffold/skills/dw-llm-eval/references/agent-eval.md +252 -0
- package/scaffold/skills/dw-llm-eval/references/judge-calibration.md +169 -0
- package/scaffold/skills/dw-llm-eval/references/oracle-ladder.md +171 -0
- package/scaffold/skills/dw-llm-eval/references/rag-metrics.md +186 -0
- package/scaffold/skills/dw-llm-eval/references/reference-dataset.md +190 -0
- 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 +4 -4
- package/scaffold/skills/dw-source-grounding/SKILL.md +1 -1
- package/scaffold/skills/dw-testing-discipline/SKILL.md +103 -78
- package/scaffold/skills/dw-testing-discipline/references/agent-guardrails.md +170 -0
- package/scaffold/skills/dw-testing-discipline/references/anti-patterns.md +7 -7
- package/scaffold/skills/dw-testing-discipline/references/core-rules.md +128 -0
- package/scaffold/skills/dw-testing-discipline/references/flaky-discipline.md +3 -3
- package/scaffold/skills/dw-testing-discipline/references/{positive-patterns.md → patterns.md} +1 -1
- package/scaffold/skills/dw-testing-discipline/references/playwright-recipes.md +3 -3
- package/scaffold/skills/dw-ui-discipline/SKILL.md +103 -79
- package/scaffold/skills/dw-ui-discipline/references/accessibility-floor.md +2 -2
- package/scaffold/skills/dw-ui-discipline/references/hard-gate.md +93 -73
- package/scaffold/skills/dw-ui-discipline/references/state-matrix.md +1 -1
- package/scaffold/skills/dw-ui-discipline/references/visual-slop.md +152 -0
- 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 -385
- package/scaffold/en/commands/dw-create-prd.md +0 -148
- package/scaffold/en/commands/dw-create-tasks.md +0 -195
- 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 -496
- 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 -365
- package/scaffold/pt-br/commands/dw-create-prd.md +0 -148
- package/scaffold/pt-br/commands/dw-create-tasks.md +0 -195
- 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 -494
- package/scaffold/pt-br/commands/dw-run-task.md +0 -208
- package/scaffold/pt-br/commands/dw-security-check.md +0 -271
- package/scaffold/skills/dw-testing-discipline/references/ai-agent-gates.md +0 -170
- package/scaffold/skills/dw-testing-discipline/references/iron-laws.md +0 -128
- package/scaffold/skills/dw-ui-discipline/references/anti-slop.md +0 -162
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
<system_instructions>
|
|
2
|
+
Você é o orquestrador de review. Roda Level 2 (PRD compliance / cobertura) e Level 3 (qualidade de código / segurança / convenções) em sequência. Default roda os dois; flags permitem apenas um. Anteriormente eram dois comandos separados (review-implementation + code-review) que se chamavam automaticamente no v0.10 — agora consolidados.
|
|
3
|
+
|
|
4
|
+
## Quando Usar
|
|
5
|
+
- Use após `/dw-run` completar uma task ou plan, ANTES de `/dw-commit` + `/dw-generate-pr`.
|
|
6
|
+
- Use pra auditar implementação existente contra PRD.
|
|
7
|
+
- Use em CI como quality gate.
|
|
8
|
+
- NÃO use durante desenvolvimento ativo (use direto linter/test runner).
|
|
9
|
+
- NÃO use em trabalho parcial (review-implementation precisa da implementação existir).
|
|
10
|
+
|
|
11
|
+
## Posição no Pipeline
|
|
12
|
+
**Antecessor:** `/dw-run` | **Sucessor:** `/dw-commit` + `/dw-generate-pr`
|
|
13
|
+
|
|
14
|
+
## Modos
|
|
15
|
+
|
|
16
|
+
| Invocação | O que roda |
|
|
17
|
+
|-----------|------------|
|
|
18
|
+
| `/dw-review` | **Padrão.** Level 2 (cobertura PRD) + Level 3 (qualidade de código) em sequência. Relatório consolidado em `.dw/spec/<prd>/QA/review-consolidated.md`. |
|
|
19
|
+
| `/dw-review --coverage-only` | Apenas Level 2 — mapeia cada requisito do PRD para o código que entrega. Pula qualidade. |
|
|
20
|
+
| `/dw-review --code-only` | Apenas Level 3 — qualidade / convenção / security checks. Pula mapeamento PRD. |
|
|
21
|
+
|
|
22
|
+
## Entradas
|
|
23
|
+
|
|
24
|
+
| Variável | Descrição | Exemplo |
|
|
25
|
+
|----------|-----------|---------|
|
|
26
|
+
| `{{PRD_PATH}}` | Caminho do dir PRD (auto-detect da branch ativa se omitido) | `.dw/spec/prd-invoice-export` |
|
|
27
|
+
| `{{MODE}}` | `--coverage-only` / `--code-only` (opcional; default = ambos) | — |
|
|
28
|
+
|
|
29
|
+
## Skills Complementares
|
|
30
|
+
|
|
31
|
+
Quando disponíveis em `./.agents/skills/`, são invocadas como apoio analítico:
|
|
32
|
+
|
|
33
|
+
- `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, signal-over-volume. A tabela "Problemas Encontrados" segue essa disciplina.
|
|
34
|
+
- `dw-verify`: **SEMPRE** — invocada antes de emitir `APROVADO` ou `APROVADO COM RESSALVAS`. Sem VERIFICATION REPORT PASS (test + lint + build), verdict não pode ser APROVADO.
|
|
35
|
+
- `dw-secure-audit`: **SEMPRE para projetos TS/Python/C#/Rust** — security gate. Se projeto usa linguagem suportada e `secure-audit.md` recente está ausente OU REJECTED, verdict é **REPROVADO** — sem exceção.
|
|
36
|
+
- `dw-simplification`: use quando diff toca código denso — aplica Chesterton's Fence, protocolo de refactor preservando comportamento, métricas de complexidade.
|
|
37
|
+
- `dw-ui-discipline`: use quando diff toca UI — roda os 14 visual-slop patterns + accessibility floor.
|
|
38
|
+
- `dw-testing-discipline`: use quando diff toca testes — aplica catálogo de 25 anti-patterns + 6 agent guardrails (quando testes foram agent-authored).
|
|
39
|
+
- `dw-llm-eval`: **OBRIGATÓRIO quando diff toca código de feature AI/LLM**. Reference dataset + ≥2 oracle rungs + judge calibration (se rung 4 usado) + eval run results DEVEM estar no PR. Faltando → REPROVADO.
|
|
40
|
+
- `security-review`: use quando diff toca auth, autorização, input externo, upload, SQL, secrets, SSRF, XSS ou superfícies sensíveis.
|
|
41
|
+
- `vercel-react-best-practices`: use quando diff toca React/Next.js.
|
|
42
|
+
|
|
43
|
+
## Constitution Gate
|
|
44
|
+
|
|
45
|
+
<critical>ANTES do review começar, cheque `.dw/constitution.md`. Se AUSENTE, auto-instale defaults. Se PRESENTE, todo princípio é checado contra o diff. Enforcement gradudada por severity:
|
|
46
|
+
- Violações `severity: info` → reportadas, não bloqueiam.
|
|
47
|
+
- Violações `severity: high` / `critical` sem ADR justificando → **REPROVADO**.</critical>
|
|
48
|
+
|
|
49
|
+
## Inteligência do Codebase
|
|
50
|
+
|
|
51
|
+
<critical>Se `.dw/intel/` existir, consulte via `/dw-intel` antes do review.</critical>
|
|
52
|
+
- `/dw-intel "convenções e anti-patterns documentados"` antes de Level 3 pra priorizar findings que violam padrões documentados.
|
|
53
|
+
- `/dw-intel "tech debt e decisões técnicas conhecidas"` pra distinguir arquitetura intencional de drift.
|
|
54
|
+
|
|
55
|
+
## Level 2 — Mapeamento de cobertura PRD (roda exceto `--code-only`)
|
|
56
|
+
|
|
57
|
+
**Objetivo:** todo requisito documentado (FR / seção TechSpec / Task) mapeia pra código específico que entrega.
|
|
58
|
+
|
|
59
|
+
### Comportamento
|
|
60
|
+
|
|
61
|
+
1. **Carregar artefatos:**
|
|
62
|
+
- `.dw/spec/<prd>/prd.md` → extrair requisitos funcionais.
|
|
63
|
+
- `.dw/spec/<prd>/techspec.md` → extrair decisões arquiteturais.
|
|
64
|
+
- `.dw/spec/<prd>/tasks.md` + per-task files → extrair trabalho commitado.
|
|
65
|
+
- `tasks-validation.md` → trazer status das dimensões.
|
|
66
|
+
|
|
67
|
+
2. **Mapear cada FR para código:**
|
|
68
|
+
- Para cada `FR-N.M`, encontrar código que entrega (file path + line range + commit SHA).
|
|
69
|
+
- Para cada seção de TechSpec, encontrar código que implementa.
|
|
70
|
+
- Para cada task, verificar se FRs que ela alegou cobrir estão de fato entregues.
|
|
71
|
+
|
|
72
|
+
3. **Identificar gaps:**
|
|
73
|
+
- FRs órfãos: declarados em PRD mas sem código.
|
|
74
|
+
- Código órfão: mudanças não rastreáveis a nenhum FR/task (scope creep).
|
|
75
|
+
- Implementações incompletas: FR parcialmente entregue (ex: só happy path).
|
|
76
|
+
|
|
77
|
+
4. **Comparar contra critérios de aceitação** dos per-task files. Rodar smoke checks reais onde viável.
|
|
78
|
+
|
|
79
|
+
### Output
|
|
80
|
+
|
|
81
|
+
Salvo em `.dw/spec/<prd>/QA/review-coverage.md`:
|
|
82
|
+
|
|
83
|
+
```markdown
|
|
84
|
+
# Coverage Review
|
|
85
|
+
|
|
86
|
+
## Status por Requisito Funcional
|
|
87
|
+
|
|
88
|
+
| FR | Descrição | Status | Evidência | Commit |
|
|
89
|
+
|----|-----------|--------|-----------|--------|
|
|
90
|
+
| FR-1.1 | User pode exportar PDF | ENTREGUE | src/pdf/export.ts:42-80 | abc123 |
|
|
91
|
+
| FR-1.2 | Export mostra progresso | PARCIAL | UI existe, sem E2E test | def456 |
|
|
92
|
+
| FR-2.1 | Email notification on completion | FALTANDO | (nenhum código) | — |
|
|
93
|
+
|
|
94
|
+
## Código Órfão (não rastreável a FR)
|
|
95
|
+
- src/utils/cache.ts (novo arquivo, sem ref a FR)
|
|
96
|
+
|
|
97
|
+
## Veredicto
|
|
98
|
+
- ENTREGUE: N FRs (X%)
|
|
99
|
+
- PARCIAL: N FRs (X%)
|
|
100
|
+
- FALTANDO: N FRs (X%)
|
|
101
|
+
- Código órfão: N arquivos
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
Se FALTANDO > 0, o veredicto sugere revisitar `/dw-plan tasks` pra escopar ou `/dw-run` pra adicionar.
|
|
105
|
+
|
|
106
|
+
## Level 3 — Qualidade + convenções + segurança (roda exceto `--coverage-only`)
|
|
107
|
+
|
|
108
|
+
**Objetivo:** o código que existe atende padrões de qualidade, convenções, segurança e constitution.
|
|
109
|
+
|
|
110
|
+
### Comportamento
|
|
111
|
+
|
|
112
|
+
1. **Análise de diff:** identificar o que mudou desde a branch PRD ser criada (`git diff <base-branch>...HEAD`).
|
|
113
|
+
|
|
114
|
+
2. **Conformidade com Rules** (contra `.dw/rules/`):
|
|
115
|
+
- Padrões gerais: sem `any` em TS, sem `console.log` em prod, error handling, multi-tenancy.
|
|
116
|
+
- Backend patterns de `.dw/rules/<backend>.md`: Clean Architecture, use-case return types, DTOs, queries parametrizadas.
|
|
117
|
+
- Frontend patterns de `.dw/rules/<frontend>.md`: Server Components default, forms patterns, design system.
|
|
118
|
+
|
|
119
|
+
3. **Constitution compliance** (contra `.dw/constitution.md`):
|
|
120
|
+
- Para cada princípio, checar diff por violações conforme linha Enforcement do princípio.
|
|
121
|
+
- Severity-graded: info → low, high → critical+REPROVADO-exceto-ADR, critical → critical+REPROVADO-exceto-ADR-with-approval.
|
|
122
|
+
|
|
123
|
+
4. **Qualidade de código** (via disciplina `dw-review-rigor`):
|
|
124
|
+
- Violações SOLID.
|
|
125
|
+
- Complexidade ciclomática / cognitiva (com thresholds `dw-simplification`).
|
|
126
|
+
- Violações DRY (apenas com impacto significativo — não dedup prematuro).
|
|
127
|
+
- Code smells (taxonomia Fowler).
|
|
128
|
+
|
|
129
|
+
5. **Execução de testes:**
|
|
130
|
+
- Rodar comando de teste do projeto.
|
|
131
|
+
- Verificar coverage targets do TechSpec (80% services, 70% controllers).
|
|
132
|
+
|
|
133
|
+
6. **Aplicar `dw-review-rigor`:**
|
|
134
|
+
- De-duplicar findings.
|
|
135
|
+
- Ordenar por severity.
|
|
136
|
+
- Verificar intent antes de flagar (linter já pega alguns — não repete).
|
|
137
|
+
|
|
138
|
+
7. **Verificação final (`dw-verify`):**
|
|
139
|
+
- Rodar dw-verify pra produzir VERIFICATION REPORT (test + lint + build GREEN).
|
|
140
|
+
- Sem PASS, verdict não pode ser APROVADO.
|
|
141
|
+
|
|
142
|
+
8. **Security Layer (`dw-secure-audit` para TS/Python/C#/Rust):**
|
|
143
|
+
- Rodar `/dw-secure-audit` contra o PR. Scan mais recente deve estar presente e não REPROVADO.
|
|
144
|
+
- Se linguagem suportada e audit faltando OU REPROVADO → verdict **REPROVADO**.
|
|
145
|
+
|
|
146
|
+
### Output
|
|
147
|
+
|
|
148
|
+
Salvo em `.dw/spec/<prd>/QA/dw-review --code-only.md`. Linha de verdict é uma de:
|
|
149
|
+
- **APROVADO** — todos os gates verdes; pronto pra commit + PR.
|
|
150
|
+
- **APROVADO COM RESSALVAS** — verde mas findings valem corrigir em follow-up (filed com severities).
|
|
151
|
+
- **REPROVADO** — ao menos um hard gate falhou. Especifique qual.
|
|
152
|
+
|
|
153
|
+
## Output consolidado (modo padrão)
|
|
154
|
+
|
|
155
|
+
Quando ambos níveis rodam, relatório consolidado em `.dw/spec/<prd>/QA/review-consolidated.md`:
|
|
156
|
+
|
|
157
|
+
```markdown
|
|
158
|
+
# Review Consolidado
|
|
159
|
+
|
|
160
|
+
**Level 2 (Cobertura):** ENTREGUE N | PARCIAL N | FALTANDO N
|
|
161
|
+
**Level 3 (Qualidade):** APROVADO | APROVADO COM RESSALVAS | REPROVADO
|
|
162
|
+
**Verification Report:** PASS
|
|
163
|
+
**Security Audit:** PASS (ou REPROVADO com motivos)
|
|
164
|
+
**Constitution Compliance:** PASS (ou violações listadas)
|
|
165
|
+
|
|
166
|
+
## Veredicto geral
|
|
167
|
+
<linha>
|
|
168
|
+
|
|
169
|
+
## Resumo de findings
|
|
170
|
+
| Severity | Contagem | Relatórios |
|
|
171
|
+
|----------|----------|------------|
|
|
172
|
+
| critical | N | review-coverage.md, dw-code-review.md |
|
|
173
|
+
| high | N | dw-code-review.md |
|
|
174
|
+
| medium | N | dw-code-review.md |
|
|
175
|
+
| low | N | review-coverage.md, dw-code-review.md |
|
|
176
|
+
|
|
177
|
+
## Próximos passos
|
|
178
|
+
- Se APROVADO: prosseguir pra `/dw-commit` + `/dw-generate-pr`.
|
|
179
|
+
- Se REPROVADO: consertar findings bloqueantes, re-rodar `/dw-review`.
|
|
180
|
+
- Se gaps de cobertura: revisitar `/dw-plan tasks --update` ou `/dw-run <task-faltando>`.
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
## Anti-patterns
|
|
184
|
+
|
|
185
|
+
- Pular `dw-verify` pra "shipar review mais rápido" — produz APROVADO em código quebrado.
|
|
186
|
+
- Emitir APROVADO com critical findings KNOWN diferidos pra "próximo sprint" — isso é REPROVADO com plano de contorno.
|
|
187
|
+
- Flagar findings nível-linter como review findings (duplica linter; ruído).
|
|
188
|
+
- Sugerir refactors fora do escopo do PRD (use `/dw-brainstorm --refactor` separado se quiser agenda de refactor).
|
|
189
|
+
- Gerar relatório sem rodar test/build/lint suite — verdict decorativo sem evidência.
|
|
190
|
+
|
|
191
|
+
## Diretrizes finais
|
|
192
|
+
|
|
193
|
+
- Ambos níveis rodam por default exceto se flags especificarem. Maioria dos PRs precisa de ambos.
|
|
194
|
+
- Veredicto consolidado é o único número pra confiar. Relatórios individuais drill down.
|
|
195
|
+
- Findings são signal, não volume. `dw-review-rigor` enforça isso.
|
|
196
|
+
- Hard gates (verify, secure-audit, constitution high+critical) são não-negociáveis. ADR é o único escape.
|
|
197
|
+
|
|
198
|
+
</system_instructions>
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
<system_instructions>
|
|
2
|
+
Você é o orquestrador de execução de tasks. Dois modos: executar UMA task específica, ou executar TODAS as tasks pendentes em ordem de dependência. Ambos aplicam as mesmas garantias por task (commit atômico, testes obrigatórios, verify antes de commit, deviation handling).
|
|
3
|
+
|
|
4
|
+
## Quando Usar
|
|
5
|
+
- Use `run` depois que `/dw-plan` produziu `tasks.md` + per-task files e as tasks foram aprovadas.
|
|
6
|
+
- Use para executar uma task específica durante desenvolvimento incremental.
|
|
7
|
+
- NÃO use pra bug fixes — `/dw-bugfix` resolve.
|
|
8
|
+
- NÃO use sem breakdown de tasks aprovado — arquivos de task DEVEM existir.
|
|
9
|
+
|
|
10
|
+
## Posição no Pipeline
|
|
11
|
+
**Antecessor:** `/dw-plan` (com tasks aprovadas) | **Sucessor:** `/dw-review` então `/dw-commit` + `/dw-generate-pr`
|
|
12
|
+
|
|
13
|
+
## Modos
|
|
14
|
+
|
|
15
|
+
| Invocação | Comportamento |
|
|
16
|
+
|-----------|---------------|
|
|
17
|
+
| `/dw-run` | **Padrão.** Executa TODAS as tasks pendentes de `tasks.md` em ordem de dependência. Dispatch paralelo em waves para tasks independentes. Commit atômico por task. Após concluir tudo, roda Level 2 review (PRD compliance). |
|
|
18
|
+
| `/dw-run <task-id>` | Executa UMA task específica por ID (ex: `1.0`, `2.3`). Inclui validação Level 1. Commit atômico em sucesso. |
|
|
19
|
+
| `/dw-run --resume` | Resume um plan multi-task interrompido de onde parou. Lê `.dw/spec/<prd>/active-session.md` se presente; senão continua da primeira pending. |
|
|
20
|
+
|
|
21
|
+
## Entradas
|
|
22
|
+
|
|
23
|
+
| Variável | Descrição | Exemplo |
|
|
24
|
+
|----------|-----------|---------|
|
|
25
|
+
| `{{TASK_ID}}` | ID específico de task (opcional — default todas pending) | `1.0`, `2.3`, `5.1` |
|
|
26
|
+
| `{{PRD_PATH}}` | Caminho do dir PRD com tasks (opcional — auto-detect da branch ativa) | `.dw/spec/prd-invoice-export` |
|
|
27
|
+
|
|
28
|
+
## Skills Complementares
|
|
29
|
+
|
|
30
|
+
Quando disponíveis em `./.agents/skills/`, estas skills são invocadas por task:
|
|
31
|
+
|
|
32
|
+
- `dw-verify`: **SEMPRE** — antes do commit de cada task, produz Verification Report (test + lint + build GREEN). Sem PASS, sem commit. Iron Law de verificação.
|
|
33
|
+
- `dw-memory`: **SEMPRE** — lê workflow memory no início; atualiza no fim com promotion test (lições que valem pra próxima task são promovidas pra MEMORY.md compartilhada).
|
|
34
|
+
- `dw-execute-phase`: fornece agentes `plan-checker` (verificação goal-backward em 6 dimensões antes do código ser tocado) e `executor` (commit atômico + deviation handling).
|
|
35
|
+
- `dw-testing-discipline`: aplica placement doctrine, 6 agent guardrails e 25 anti-patterns ao adicionar testes.
|
|
36
|
+
- `dw-ui-discipline`: quando task toca UI, as 4 grounding questions precisam ser respondidas antes de qualquer decisão visual.
|
|
37
|
+
- `dw-llm-eval`: quando task toca código de feature AI, regras de reference dataset + oracle ladder se aplicam.
|
|
38
|
+
- `vercel-react-best-practices`: quando task toca performance React/Next.js.
|
|
39
|
+
|
|
40
|
+
## Constitution Gate
|
|
41
|
+
|
|
42
|
+
<critical>ANTES de executar qualquer task, cheque `.dw/constitution.md`. Se AUSENTE, auto-instale defaults via pattern v0.11. Se PRESENTE, a linha `Constitution Alignment` da task (setada em `/dw-plan` Stage 3) é consultada conforme a task executa — código deve respeitar os princípios declarados.</critical>
|
|
43
|
+
|
|
44
|
+
## Inteligência do Codebase
|
|
45
|
+
|
|
46
|
+
<critical>Se `.dw/intel/` existir, consulte via `/dw-intel` antes de implementar pra alinhar com padrões existentes.</critical>
|
|
47
|
+
- Per-task: `/dw-intel "padrões para <tópico da task>"` para surfacar convenções relevantes.
|
|
48
|
+
|
|
49
|
+
## Modo 1: UMA task (`run <task-id>`)
|
|
50
|
+
|
|
51
|
+
### Pré-requisitos
|
|
52
|
+
- `tasks.md` + per-task files existem em `.dw/spec/<prd>/`.
|
|
53
|
+
- Dependências da task-alvo estão completadas (cheque seção "Depende de" do `task.md`).
|
|
54
|
+
|
|
55
|
+
### Comportamento
|
|
56
|
+
|
|
57
|
+
1. **Ler o task file:** `.dw/spec/<prd>/<task-id>_task.md`. Entender inputs, FRs cobertos, critérios de aceitação, subtasks.
|
|
58
|
+
2. **Plano de implementação:**
|
|
59
|
+
- Liste arquivos a criar/modificar.
|
|
60
|
+
- Identifique testes a adicionar por subtask.
|
|
61
|
+
- Confirme dependências (se faltando, PARE e surface).
|
|
62
|
+
3. **Implementar:**
|
|
63
|
+
- Siga padrões do projeto de `.dw/rules/` e `.dw/intel/`.
|
|
64
|
+
- Aplique skills complementares (UI gate, test discipline, etc.).
|
|
65
|
+
- Testes unitários obrigatórios para backend/services conforme testspec.
|
|
66
|
+
- Match no framework de testes especificado em `.dw/rules/`.
|
|
67
|
+
4. **Validar (Level 1):**
|
|
68
|
+
- Rodar comando de teste do projeto.
|
|
69
|
+
- Checar critérios de aceitação do task file.
|
|
70
|
+
- Rodar `dw-verify` para produzir Verification Report (test + lint + build GREEN).
|
|
71
|
+
- Para frontend interativo, também validar comportamento real via recipes Playwright do `dw-testing-discipline` se risco de regressão for relevante.
|
|
72
|
+
5. **Commit:**
|
|
73
|
+
- Mensagem atômica: `feat(<scope>): <título da task> (#<task-id>)`.
|
|
74
|
+
- Referencie FRs cobertos.
|
|
75
|
+
- Uma task = um commit (exceto se task tem subtask milestones explícitos que ganham commits separados).
|
|
76
|
+
6. **Atualizar tasks.md:** marcar task como `Done` com SHA do commit.
|
|
77
|
+
7. **Reportar:** o que foi feito, testes adicionados, o que foi validado.
|
|
78
|
+
|
|
79
|
+
### CONDIÇÕES DE PARADA
|
|
80
|
+
- Dependências não satisfeitas → perguntar ao usuário como prosseguir.
|
|
81
|
+
- Verification Report FAIL → não commitar; reportar o que está quebrado.
|
|
82
|
+
- Scope creep detectado mid-implementação → PARE e peça pra usuário escopar.
|
|
83
|
+
|
|
84
|
+
## Modo 2: TODAS as tasks pending (default `run`)
|
|
85
|
+
|
|
86
|
+
### Pré-requisitos
|
|
87
|
+
- `tasks.md` + per-task files existem com dependências declaradas.
|
|
88
|
+
- `tasks-validation.md` mostra PASS (ou override explícito).
|
|
89
|
+
- Branch criada: `feat/prd-<feature-slug>`.
|
|
90
|
+
|
|
91
|
+
### Comportamento
|
|
92
|
+
|
|
93
|
+
1. **Plan check (via agente `dw-execute-phase/plan-checker`):**
|
|
94
|
+
- Verificação goal-backward em 6 dimensões: essas tasks vão de fato entregar o que o PRD promete?
|
|
95
|
+
- Se FAIL em qualquer dimensão, PARE e reporte ao usuário antes de qualquer código ser tocado.
|
|
96
|
+
2. **Construir grafo de dependência:**
|
|
97
|
+
- Sort topológico das tasks.
|
|
98
|
+
- Identificar tasks independentes que podem rodar em waves paralelas.
|
|
99
|
+
3. **Dispatch paralelo em waves (via agente `dw-execute-phase/executor`):**
|
|
100
|
+
- Cada wave contém tasks sem dependência inter.
|
|
101
|
+
- Executar waves serialmente; dentro de uma wave, tasks paralelas.
|
|
102
|
+
- Per-task: mesmo fluxo Level 1 do Modo 1 (implementar → validar → commit atômico).
|
|
103
|
+
4. **Deviation handling:**
|
|
104
|
+
- Se task encontra scope creep, PARE essa task, surface ao usuário.
|
|
105
|
+
- Se task falha verificação, a wave para. Nenhuma wave subsequente roda até resolver.
|
|
106
|
+
5. **Checkpoint entre waves:**
|
|
107
|
+
- Imprime resumo da wave: tasks completas, commits, deviations.
|
|
108
|
+
- Continua automaticamente exceto se `--checkpoint` foi passado (aí aguarda OK).
|
|
109
|
+
6. **Level 2 review final:**
|
|
110
|
+
- Após todas as tasks completarem, invoca automaticamente `/dw-review` (comando merged — roda PRD compliance check + code quality review).
|
|
111
|
+
- Apresenta relatório consolidado.
|
|
112
|
+
- Cycle de correções interativo: review surface gaps → usuário decide fix, adiar, ou aceitar.
|
|
113
|
+
|
|
114
|
+
### Output
|
|
115
|
+
|
|
116
|
+
```
|
|
117
|
+
.dw/spec/<prd>/
|
|
118
|
+
├── active-session.md # escrito no checkpoint; consumido por --resume
|
|
119
|
+
├── run-log.md # log per-wave com SHAs de commit
|
|
120
|
+
└── review-consolidated.md # review final L2+L3 (de /dw-review)
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
## Modo 3: Resume (`run --resume`)
|
|
124
|
+
|
|
125
|
+
### Pré-requisitos
|
|
126
|
+
- `run` anterior (Modo 2) foi interrompido.
|
|
127
|
+
- `active-session.md` existe no `.dw/spec/<prd>/` da PRD atual.
|
|
128
|
+
|
|
129
|
+
### Comportamento
|
|
130
|
+
|
|
131
|
+
1. Ler `active-session.md` pra determinar onde a sessão parou.
|
|
132
|
+
2. Surface ao usuário: "Resumindo da wave N, task X.0. Já completadas: <lista>. Continuar?"
|
|
133
|
+
3. Em confirmação, resume da próxima task pendente com mesmo comportamento Modo 2.
|
|
134
|
+
|
|
135
|
+
Se `active-session.md` não existe mas tasks não-completadas existem, trate como Modo 2 fresh start.
|
|
136
|
+
|
|
137
|
+
## Em todos os modos: deviation handling
|
|
138
|
+
|
|
139
|
+
Quando implementação não pode prosseguir como planejado:
|
|
140
|
+
|
|
141
|
+
| Deviation | Ação |
|
|
142
|
+
|-----------|------|
|
|
143
|
+
| Task requer nova dependência não no TechSpec | PARE. Sugerir `/dw-plan techspec --update` pra revisar. |
|
|
144
|
+
| Critério de aceitação ambíguo | PARE. Perguntar ao usuário. |
|
|
145
|
+
| Decisão de test framework faltando | PARE. Usar `dw-testing-discipline` placement doctrine pra propor; pedir sign-off. |
|
|
146
|
+
| Padrão de `.dw/rules/` não encaixa | PARE. Surface o atrito; proponha deviation justificada por ADR ou update das rules. |
|
|
147
|
+
| Complexidade oculta emerge (task estimada 2h, parece 8h) | PARE. Surface; ou split task via `/dw-plan tasks --update` ou aceite delay com nota. |
|
|
148
|
+
|
|
149
|
+
## Reporting
|
|
150
|
+
|
|
151
|
+
Após qualquer run (Modo 1, 2 ou 3 completar), imprima:
|
|
152
|
+
|
|
153
|
+
- Tasks completas com SHAs de commit.
|
|
154
|
+
- Contagem de arquivos tocados.
|
|
155
|
+
- Testes adicionados (unit + E2E se aplicável).
|
|
156
|
+
- Veredicto Verification Report por task.
|
|
157
|
+
- Para Modo 2: status do review consolidado final.
|
|
158
|
+
- Para Modo 2: deviations encontrados e como resolvidos.
|
|
159
|
+
|
|
160
|
+
## Anti-patterns
|
|
161
|
+
|
|
162
|
+
- Pular `dw-verify` pra "economizar tempo antes do commit" — produz commits que não buildam.
|
|
163
|
+
- Rodar tasks sem dependência satisfeita — produz commits que não funcionam isolados.
|
|
164
|
+
- Deixar wave paralelo rodar sem watch por deviations — scope creep silencioso compõe.
|
|
165
|
+
- Commitar múltiplas tasks num único commit — quebra bisect, quebra granularidade de revert.
|
|
166
|
+
- Pular review Level 2 final no Modo 2 — entrega features que não batem com PRD.
|
|
167
|
+
|
|
168
|
+
## Diretrizes finais
|
|
169
|
+
|
|
170
|
+
- Commits atômicos são não-negociáveis. Uma task = um commit (ou um subtask-bundle se explícito).
|
|
171
|
+
- Testes são obrigatórios per estratégia do TechSpec.
|
|
172
|
+
- Veredicto PASS do Verification Report é o gate, não o objetivo — nunca enfraquecer asserts pra passar.
|
|
173
|
+
- Deviation surfacing é feature, não bug. Pare e pergunte. Usuário prefere interrupção a implementação errada.
|
|
174
|
+
- Pra plans multi-dia, `--resume` é seu amigo. Não restart do zero.
|
|
175
|
+
|
|
176
|
+
</system_instructions>
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
<system_instructions>
|
|
2
|
+
Você é o orquestrador de security audit. Roda OWASP static review + supply-chain CVE/secret/IaC scanning + outdated check + supply-chain compromise detection em uma passada. Hard-gates comandos downstream quando há findings CRITICAL ou HIGH.
|
|
3
|
+
|
|
4
|
+
Auto-invocado por `/dw-review` e `/dw-generate-pr` em projetos TS/Python/C#/Rust. Invocação standalone disponível pra audit manual.
|
|
5
|
+
|
|
6
|
+
## Quando Usar
|
|
7
|
+
- Auto-invocado: `/dw-review` e `/dw-generate-pr` em linguagens suportadas.
|
|
8
|
+
- Manual: quando suspeita supply-chain compromise, quer security pass mid-dev, ou após dependency updates.
|
|
9
|
+
- NÃO use mid-task implementation (use `/dw-run` que tem checks mais leves).
|
|
10
|
+
- NÃO use como substituto pra review humano em código auth/payment de alto risco (use skill `security-review` JUNTO com este).
|
|
11
|
+
|
|
12
|
+
## Posição no Pipeline
|
|
13
|
+
**Antecessor:** qualquer momento; auto-invocado por `/dw-review`, `/dw-generate-pr` | **Sucessor:** `/dw-bugfix` pra atacar findings, ou `/dw-commit` se APROVADO
|
|
14
|
+
|
|
15
|
+
## Modos
|
|
16
|
+
|
|
17
|
+
| Invocação | O que roda |
|
|
18
|
+
|-----------|------------|
|
|
19
|
+
| `/dw-secure-audit` | **Padrão.** Audit completo: OWASP static + Trivy SCA/secret/IaC + native lockfile audit + supply-chain check + outdated check. |
|
|
20
|
+
| `/dw-secure-audit --scan-only` | Modo CI — roda scanners, exit não-zero se CRITICAL ou HIGH. Sem planejamento de remediação. |
|
|
21
|
+
| `/dw-secure-audit --plan` | Default scan, mais plano de remediação per-package (opções Conservative / Balanced / Bold). Sem file writes; só o plano. |
|
|
22
|
+
| `/dw-secure-audit --execute` | Plan mais aplica updates: testes scoped por pacote, um retry com `/dw-qa --fix` em falha, commits atômicos, `/dw-qa` como gate final. Reverte e marca BLOQUEADO se recovery falhar. |
|
|
23
|
+
|
|
24
|
+
## Linguagens Suportadas
|
|
25
|
+
|
|
26
|
+
| Linguagem | Lockfile Audit | OWASP | Trivy SCA/Secrets/IaC | Compromise Check |
|
|
27
|
+
|-----------|---------------|-------|----------------------|------------------|
|
|
28
|
+
| TypeScript / JavaScript | `npm audit` / `pnpm audit` | Sim | Sim | Sim (OSV + GH Advisories) |
|
|
29
|
+
| Python | `pip-audit` | Sim | Sim | Sim |
|
|
30
|
+
| C# / .NET | `dotnet list package --vulnerable` | Sim | Sim | Sim |
|
|
31
|
+
| Rust | `cargo audit` | Sim | Sim | Sim |
|
|
32
|
+
| Outras (Go, Java, etc.) | manual | Sim (best-effort) | Sim (Trivy) | Sim (OSV) |
|
|
33
|
+
|
|
34
|
+
## Dependências Necessárias
|
|
35
|
+
|
|
36
|
+
- **Trivy** — deve estar instalado (via `npx @brunosps00/dev-workflow install-deps`).
|
|
37
|
+
- **Context7 MCP** — pra best practices específicas de versão.
|
|
38
|
+
|
|
39
|
+
## Três Camadas de Detecção
|
|
40
|
+
|
|
41
|
+
### Camada 1: OWASP Static Review (via skill `security-review`)
|
|
42
|
+
|
|
43
|
+
Análise estática language-aware contra OWASP Top 10:
|
|
44
|
+
- A01 Broken access control
|
|
45
|
+
- A02 Cryptographic failures
|
|
46
|
+
- A03 Injection (SQL, NoSQL, OS command, etc.)
|
|
47
|
+
- A04 Insecure design
|
|
48
|
+
- A05 Security misconfiguration
|
|
49
|
+
- A06 Vulnerable / outdated components (overlap com Camada 2)
|
|
50
|
+
- A07 Identification + authentication failures
|
|
51
|
+
- A08 Software / data integrity failures
|
|
52
|
+
- A09 Security logging + monitoring failures
|
|
53
|
+
- A10 Server-side request forgery (SSRF)
|
|
54
|
+
|
|
55
|
+
Output: `.dw/secure-audit/owasp-findings.md` por categoria ordenado por severity.
|
|
56
|
+
|
|
57
|
+
### Camada 2: Trivy + native lockfile audit
|
|
58
|
+
|
|
59
|
+
Roda em paralelo:
|
|
60
|
+
- `trivy fs <project>` — scans SCA (CVEs conhecidas), secret leaks, IaC issues.
|
|
61
|
+
- `trivy config <project>` — scans Terraform / Dockerfile / K8s configs.
|
|
62
|
+
- Native auditor por linguagem (npm audit / pip-audit / dotnet list / cargo audit) — CVEs lockfile-level.
|
|
63
|
+
|
|
64
|
+
Output: `.dw/secure-audit/trivy-findings.md` + `.dw/secure-audit/lockfile-findings.md`.
|
|
65
|
+
|
|
66
|
+
### Camada 3: Supply-chain compromise check
|
|
67
|
+
|
|
68
|
+
Cruza dependency tree contra:
|
|
69
|
+
- **OSV.dev** — banco open-source de vulnerabilidades.
|
|
70
|
+
- **GitHub Advisories** — advisories publicadas npm/PyPI/etc.
|
|
71
|
+
- **Lista histórica hardcoded de pacotes maliciosos** — `event-stream`, `ua-parser-js`, `node-ipc`, etc. (pacotes compromised conhecidos por nome+versão range).
|
|
72
|
+
|
|
73
|
+
Output: `.dw/secure-audit/compromise-findings.md` por pacote afetado: COMPROMISED / suspicious / clean.
|
|
74
|
+
|
|
75
|
+
### Plus: outdated check
|
|
76
|
+
|
|
77
|
+
`npm outdated` / `pip list --outdated` / `dotnet list outdated` / `cargo outdated` pra identificar pacotes atrás em minor ou major.
|
|
78
|
+
|
|
79
|
+
Output: `.dw/secure-audit/outdated.md` com tiers (OUTDATED-MAJOR / OUTDATED-MINOR).
|
|
80
|
+
|
|
81
|
+
## Classificação
|
|
82
|
+
|
|
83
|
+
Todos os findings são classificados num desses tiers em `.dw/secure-audit/audit-summary.md`:
|
|
84
|
+
|
|
85
|
+
| Tier | Critério | Bloqueia | Ação Sugerida |
|
|
86
|
+
|------|----------|----------|---------------|
|
|
87
|
+
| **COMPROMISED** | Pacote conhecido como malicioso nessa faixa de versão | SIM | Remover imediato / pin pra versão segura |
|
|
88
|
+
| **CRITICAL** | CVE CVSS ≥9.0 OU exploit ativo OU auth bypass | SIM | Update ou substituir em 24h |
|
|
89
|
+
| **HIGH** | CVE CVSS 7.0–8.9 OU exploitável no contexto atual | SIM | Update ou substituir em 1 semana |
|
|
90
|
+
| **OUTDATED-MAJOR** | ≥1 major version atrás (ex: React 17 → 19) | NÃO | Planejar migração próximo trimestre |
|
|
91
|
+
| **OUTDATED-MINOR** | Minor/patch atrás | NÃO | Update rotineiro |
|
|
92
|
+
| **CLEAN** | Sem findings | NÃO | — |
|
|
93
|
+
|
|
94
|
+
## Hard Gates
|
|
95
|
+
|
|
96
|
+
Verdict é um de:
|
|
97
|
+
- **APROVADO** — sem CRITICAL, HIGH ou COMPROMISED. Arquivo verdict `.dw/secure-audit/audit-summary.md` status: APROVADO.
|
|
98
|
+
- **REPROVADO** — ≥1 CRITICAL, HIGH ou COMPROMISED sem ADR explícito ou remediação em andamento. Status: REPROVADO.
|
|
99
|
+
|
|
100
|
+
**`/dw-review` e `/dw-generate-pr` enforçam:** se linguagem do projeto é suportada E `.dw/secure-audit/audit-summary.md` mais recente está faltando OU REPROVADO, esses comandos retornam REPROVADO. Sem exceção. Sem flag bypass.
|
|
101
|
+
|
|
102
|
+
## Modo 1: Default (`/dw-secure-audit`)
|
|
103
|
+
|
|
104
|
+
1. **Detectar stack**: checar package.json / requirements.txt / *.csproj / Cargo.toml.
|
|
105
|
+
2. **Rodar todas as três camadas em paralelo** (onde possível):
|
|
106
|
+
- OWASP static (via skill `security-review`).
|
|
107
|
+
- Trivy + lockfile audit.
|
|
108
|
+
- Supply-chain compromise check.
|
|
109
|
+
3. **Rodar outdated check.**
|
|
110
|
+
4. **Agregar findings** por tier.
|
|
111
|
+
5. **Escrever summary** em `.dw/secure-audit/audit-summary.md`:
|
|
112
|
+
|
|
113
|
+
```markdown
|
|
114
|
+
# Security Audit — YYYY-MM-DD
|
|
115
|
+
|
|
116
|
+
## Veredicto: APROVADO / REPROVADO
|
|
117
|
+
|
|
118
|
+
## Resumo por Tier
|
|
119
|
+
| Tier | Contagem | Detalhe |
|
|
120
|
+
|------|----------|---------|
|
|
121
|
+
| COMPROMISED | N | <lista> |
|
|
122
|
+
| CRITICAL | N | <lista> |
|
|
123
|
+
| HIGH | N | <lista> |
|
|
124
|
+
| OUTDATED-MAJOR | N | <lista> |
|
|
125
|
+
| OUTDATED-MINOR | N | <lista> |
|
|
126
|
+
|
|
127
|
+
## Relatórios das camadas
|
|
128
|
+
- OWASP: `owasp-findings.md`
|
|
129
|
+
- Trivy: `trivy-findings.md`
|
|
130
|
+
- Lockfile: `lockfile-findings.md`
|
|
131
|
+
- Compromise: `compromise-findings.md`
|
|
132
|
+
- Outdated: `outdated.md`
|
|
133
|
+
|
|
134
|
+
## Próximos Passos
|
|
135
|
+
- Se APROVADO: comandos downstream desbloqueados.
|
|
136
|
+
- Se REPROVADO: rodar `/dw-secure-audit --plan` pra rascunhar remediação, OU `/dw-bugfix` per critical finding.
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
## Modo 2: Plan (`/dw-secure-audit --plan`)
|
|
140
|
+
|
|
141
|
+
Após default scan, rascunhar plano per-package em `.dw/secure-audit/remediation-plan.md`:
|
|
142
|
+
|
|
143
|
+
Pra cada finding com severity ≥HIGH (ou qualquer COMPROMISED):
|
|
144
|
+
1. Identificar arquivos afetados (imports do pacote em source).
|
|
145
|
+
2. Identificar testes que cobrem esses arquivos (scope da remediação).
|
|
146
|
+
3. Propor três opções:
|
|
147
|
+
- **Conservadora** — pin pra versão patched no mesmo major.
|
|
148
|
+
- **Balanceada** — update pra latest minor ou major.
|
|
149
|
+
- **Ousada** — substituir o pacote OU refatorar.
|
|
150
|
+
4. Trade-off analysis per opção (esforço, risco, blast radius).
|
|
151
|
+
|
|
152
|
+
Plan NÃO executa. Usuário revisa e escolhe opção per package, depois invoca `--execute`.
|
|
153
|
+
|
|
154
|
+
## Modo 3: Execute (`/dw-secure-audit --execute`)
|
|
155
|
+
|
|
156
|
+
Pra cada remediação aprovada:
|
|
157
|
+
1. Aplicar update (`npm install <pkg>@<ver>` ou equivalente).
|
|
158
|
+
2. Rodar testes scoped (testes em arquivos que importam o pacote).
|
|
159
|
+
3. Se testes falham → rodar `/dw-qa --fix` uma vez pra tentar recovery automático.
|
|
160
|
+
4. Se recovery sucesso → commit atômico `chore(security): update <pkg> to <ver> for <CVE>`.
|
|
161
|
+
5. Se recovery falha → REVERTER update, marcar BLOQUEADO em `remediation-plan.md`, surface ao usuário.
|
|
162
|
+
6. Após todas as remediações aprovadas: rodar `/dw-qa` como gate final. Se limpo, rodar `/dw-secure-audit` de novo pra verificar todos os findings resolvidos.
|
|
163
|
+
|
|
164
|
+
## Modo 4: CI (`/dw-secure-audit --scan-only`)
|
|
165
|
+
|
|
166
|
+
Output mínimo:
|
|
167
|
+
- Roda todas as três camadas.
|
|
168
|
+
- Escreve findings em disco.
|
|
169
|
+
- Exit code 0 se APROVADO, 1 se REPROVADO.
|
|
170
|
+
- Sem planejamento.
|
|
171
|
+
|
|
172
|
+
Pra gates pre-merge em CI.
|
|
173
|
+
|
|
174
|
+
## Skills Complementares
|
|
175
|
+
|
|
176
|
+
- `security-review`: **SEMPRE** — skill OWASP static review embarca no scan.
|
|
177
|
+
- `dw-source-grounding`: **SEMPRE** em modo `--plan` / `--execute` — recomendações de versão citam changelog/release notes oficial com `[source: <url>, version: X.Y, retrieved: YYYY-MM-DD]`.
|
|
178
|
+
- `dw-council`: auto opt-in quando ≥3 pacotes caem em COMPROMISED — stress-test multi-advisor sobre ordem e escopo da remediação.
|
|
179
|
+
- `dw-testing-discipline`: quando testes scoped falham em `--execute`, doutrina de testes aplica (sem flaky retry; investigar).
|
|
180
|
+
- `dw-debug-protocol`: quando finding critical é bug real no nosso código (não só outdated dep), six-step triage aplica.
|
|
181
|
+
|
|
182
|
+
## Constitution Gate
|
|
183
|
+
|
|
184
|
+
<critical>
|
|
185
|
+
- CRITICAL ou COMPROMISED finding sem ADR justificando aceitação explícita → verdict não pode ser APROVADO.
|
|
186
|
+
- Violações de princípios de constitution security-related (P-009 server-side auth, P-010 secrets-in-repo) escalonam findings — violação de princípio `severity: info` surface aqui vira HIGH.
|
|
187
|
+
</critical>
|
|
188
|
+
|
|
189
|
+
## Anti-patterns
|
|
190
|
+
|
|
191
|
+
- Rodar `--scan-only` em CI mas ninguém revisar relatório — REJECTs automatizados acumulam, time aprende a ignorar.
|
|
192
|
+
- Pular `--execute` e aplicar updates manualmente sem testes scoped — quebra coisas não relacionadas.
|
|
193
|
+
- Marcar findings como "false positive" sem ADR — padrão erode com tempo.
|
|
194
|
+
- Atualizar finding CRITICAL pra versão BLEEDING edge em vez de patched-and-stable — introduz bugs novos.
|
|
195
|
+
- Rodar scans só em PR time — supply-chain attacks acontecem overnight; considerar runs diários scheduled.
|
|
196
|
+
|
|
197
|
+
## Diretório de Output
|
|
198
|
+
|
|
199
|
+
```
|
|
200
|
+
.dw/secure-audit/
|
|
201
|
+
├── audit-summary.md # verdict + resumo de tiers
|
|
202
|
+
├── owasp-findings.md # Camada 1
|
|
203
|
+
├── trivy-findings.md # Camada 2 (SCA + secrets + IaC)
|
|
204
|
+
├── lockfile-findings.md # Camada 2 (native auditor)
|
|
205
|
+
├── compromise-findings.md # Camada 3
|
|
206
|
+
├── outdated.md # outdated check
|
|
207
|
+
├── remediation-plan.md # output de --plan
|
|
208
|
+
└── execution-log.md # log de --execute
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
Todos os arquivos commitados. Histórico de audit é parte do repo.
|
|
212
|
+
|
|
213
|
+
## Por que esta skill existe
|
|
214
|
+
|
|
215
|
+
Anteriormente dois comandos: `/dw-secure-audit` (single-shot gate) e `/dw-secure-audit --plan` (planner + remediator). O split era histórico — ambos compartilham mesmos scanners e findings overlapping. Consolidar reduz:
|
|
216
|
+
- Confusão ("qual rodar?").
|
|
217
|
+
- Scans duplicados (rodar ambos fazia 2× o trabalho do Trivy).
|
|
218
|
+
- Fragmentação de reports (dois dirs separados).
|
|
219
|
+
|
|
220
|
+
Novo comando tem ambos comportamentos como modos de flag. Default = era v0.6 `security-check` (gate). `--plan` e `--execute` cobrem era v0.7 `deps-audit` (planner + remediator).
|
|
221
|
+
|
|
222
|
+
</system_instructions>
|
|
@@ -79,7 +79,7 @@ npx -y @brunosps00/dev-workflow@latest update --lang=$DETECTED_LANG
|
|
|
79
79
|
O comando `update` sobrescreve arquivos gerenciados e PRESERVA:
|
|
80
80
|
- `.dw/rules/` (rules do usuário)
|
|
81
81
|
- `.dw/spec/` (PRDs e tasks em andamento)
|
|
82
|
-
- `.dw/intel/` (índice de codebase do `/dw-
|
|
82
|
+
- `.dw/intel/` (índice de codebase do `/dw-intel --build`)
|
|
83
83
|
|
|
84
84
|
O comando `update` também roda o passo de migração GSD automaticamente — se o projeto tem `.planning/` legado (de uso prévio do GSD), o conteúdo é migrado para `.dw/intel/`, `.dw/spec/active-session.md`, `.dw/spec/quick/`, etc., e `.planning/` é renomeado para `.planning.gsd-archive-<DATA>/` para inspeção. Os arquivos `.claude/commands/gsd/`, `.claude/agents/gsd-*.md`, `.claude/hooks/gsd-*.js` e `.claude/gsd-file-manifest.json` são removidos durante a migração.
|
|
85
85
|
|
|
@@ -22,7 +22,7 @@ Foque no problema, não na solução. Evite entrar em "como implementar".]
|
|
|
22
22
|
Fontes:
|
|
23
23
|
- PRDs em `.dw/spec/prd-*/prd.md` (features já entregues ou em desenvolvimento)
|
|
24
24
|
- `.dw/rules/index.md` (overview do produto)
|
|
25
|
-
- `.dw/intel/` (indice queryable — construido por `/dw-
|
|
25
|
+
- `.dw/intel/` (indice queryable — construido por `/dw-intel --build`, consultado via `/dw-intel`)
|
|
26
26
|
|
|
27
27
|
Formato:]
|
|
28
28
|
|
|
@@ -85,6 +85,6 @@ Idealmente 2-4 stories. Se são mais de 5, provavelmente não é MVP.]
|
|
|
85
85
|
|
|
86
86
|
Escolha UM:
|
|
87
87
|
|
|
88
|
-
- **`/dw-
|
|
89
|
-
- **`/dw-run
|
|
88
|
+
- **`/dw-plan prd`** com este one-pager como input — quando a direção está clara mas precisamos detalhar user stories, acceptance criteria e passar ao techspec
|
|
89
|
+
- **`/dw-run`** — quando é um IMPROVES tão pequeno que cabe em task única (até 3 arquivos, sem novo endpoint/tela) — escreva um PRD curto antes
|
|
90
90
|
- **Parar aqui** — se alguma "Open Question" é bloqueante, parar e resolver com stakeholder antes de avançar
|