@brunosps00/dev-workflow 1.7.1 → 2.1.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/.claude-plugin/marketplace.json +1 -0
- package/.claude-plugin/plugin.json +1 -1
- package/CHANGELOG.md +305 -0
- package/README.md +7 -5
- package/lib/agents.js +6 -1
- package/lib/build-plugin.js +4 -1
- package/lib/constants.js +4 -2
- package/lib/init.js +14 -0
- package/lib/install-state.js +8 -4
- package/lib/validate.js +21 -0
- package/package.json +2 -1
- package/scaffold/agents/core/dw-build-fixer.md +0 -1
- package/scaffold/agents/core/dw-code-explorer.md +0 -1
- package/scaffold/agents/core/dw-code-reviewer.md +0 -1
- package/scaffold/agents/core/dw-planner.md +0 -1
- package/scaffold/agents/core/dw-test-author.md +0 -1
- package/scaffold/agents/csharp/dw-csharp-reviewer.md +0 -1
- package/scaffold/agents/csharp/dw-dotnet-build-fixer.md +0 -1
- package/scaffold/agents/frontend/dw-qa-runner.md +0 -1
- package/scaffold/agents/python/dw-python-build-fixer.md +0 -1
- package/scaffold/agents/python/dw-python-reviewer.md +0 -1
- package/scaffold/agents/rust/dw-rust-build-fixer.md +0 -1
- package/scaffold/agents/rust/dw-rust-reviewer.md +0 -1
- package/scaffold/agents/security/dw-security-reviewer.md +0 -1
- package/scaffold/agents/security/dw-silent-failure-hunter.md +0 -1
- package/scaffold/agents/typescript/dw-typescript-build-fixer.md +0 -1
- package/scaffold/agents/typescript/dw-typescript-reviewer.md +0 -1
- package/scaffold/config/routing.json +60 -0
- package/scaffold/en/commands/dw-brainstorm.md +12 -8
- package/scaffold/en/commands/dw-bugfix.md +4 -2
- package/scaffold/en/commands/dw-claude-run.md +5 -1
- package/scaffold/en/commands/dw-codex-run.md +5 -1
- package/scaffold/en/commands/dw-dockerize.md +14 -7
- package/scaffold/en/commands/dw-generate-pr.md +13 -0
- package/scaffold/en/commands/dw-new-project.md +14 -13
- package/scaffold/en/commands/dw-plan.md +2 -2
- package/scaffold/en/commands/dw-refactor.md +1 -0
- package/scaffold/en/commands/dw-review.md +33 -2
- package/scaffold/en/commands/dw-run.md +2 -1
- package/scaffold/en/commands/dw-triage.md +220 -0
- package/scaffold/en/templates/idea-onepager.md +28 -0
- package/scaffold/en/templates/project-onepager.md +6 -5
- package/scaffold/en/templates/task-template.md +2 -1
- package/scaffold/en/templates/tasks-template.md +11 -8
- package/scaffold/en/templates/triage-needs-info-template.md +23 -0
- package/scaffold/en/templates/triage-out-of-scope-template.md +36 -0
- package/scaffold/en/templates/triage-record-template.md +88 -0
- package/scaffold/pt-br/commands/dw-autopilot.md +81 -81
- package/scaffold/pt-br/commands/dw-brainstorm.md +12 -9
- package/scaffold/pt-br/commands/dw-bugfix.md +4 -2
- package/scaffold/pt-br/commands/dw-claude-run.md +23 -19
- package/scaffold/pt-br/commands/dw-codex-run.md +22 -18
- package/scaffold/pt-br/commands/dw-context-budget.md +10 -10
- package/scaffold/pt-br/commands/dw-copilot-run.md +20 -20
- package/scaffold/pt-br/commands/dw-dockerize.md +106 -99
- package/scaffold/pt-br/commands/dw-find-skills.md +52 -52
- package/scaffold/pt-br/commands/dw-generate-pr.md +13 -0
- package/scaffold/pt-br/commands/dw-goal.md +41 -41
- package/scaffold/pt-br/commands/dw-harness-audit.md +11 -11
- package/scaffold/pt-br/commands/dw-intel.md +70 -70
- package/scaffold/pt-br/commands/dw-learn.md +24 -24
- package/scaffold/pt-br/commands/dw-new-project.md +93 -92
- package/scaffold/pt-br/commands/dw-open-design.md +53 -53
- package/scaffold/pt-br/commands/dw-opportunities.md +45 -45
- package/scaffold/pt-br/commands/dw-pause.md +39 -39
- package/scaffold/pt-br/commands/dw-plan.md +3 -3
- package/scaffold/pt-br/commands/dw-refactor.md +31 -30
- package/scaffold/pt-br/commands/dw-resume.md +22 -22
- package/scaffold/pt-br/commands/dw-review.md +33 -2
- package/scaffold/pt-br/commands/dw-run.md +2 -1
- package/scaffold/pt-br/commands/dw-skill-health.md +10 -10
- package/scaffold/pt-br/commands/dw-subtask-complete.md +4 -4
- package/scaffold/pt-br/commands/dw-subtask-start.md +4 -4
- package/scaffold/pt-br/commands/dw-triage.md +220 -0
- package/scaffold/pt-br/templates/bugfix-summary-template.md +20 -20
- package/scaffold/pt-br/templates/concerns-template.md +20 -20
- package/scaffold/pt-br/templates/idea-onepager.md +28 -0
- package/scaffold/pt-br/templates/project-onepager.md +35 -34
- package/scaffold/pt-br/templates/state-template.md +13 -13
- package/scaffold/pt-br/templates/task-template.md +2 -1
- package/scaffold/pt-br/templates/tasks-template.md +11 -8
- package/scaffold/pt-br/templates/triage-needs-info-template.md +23 -0
- package/scaffold/pt-br/templates/triage-out-of-scope-template.md +36 -0
- package/scaffold/pt-br/templates/triage-record-template.md +88 -0
- package/scaffold/scripts/hooks/git-guardrails.mjs +41 -24
- package/scaffold/skills/docker-compose-recipes/SKILL.md +2 -4
- package/scaffold/skills/docker-compose-recipes/references/compose-composition.md +2 -2
- package/scaffold/skills/docker-compose-recipes/references/env-conventions.md +16 -9
- package/scaffold/skills/docker-compose-recipes/references/healthcheck-patterns.md +0 -1
- package/scaffold/skills/docker-compose-recipes/references/prod-vs-dev.md +7 -2
- package/scaffold/skills/docker-compose-recipes/services/elasticsearch.yml +3 -3
- package/scaffold/skills/docker-compose-recipes/services/meilisearch.yml +2 -2
- package/scaffold/skills/docker-compose-recipes/services/minio.yml +8 -4
- package/scaffold/skills/docker-compose-recipes/services/mysql.yml +4 -4
- package/scaffold/skills/docker-compose-recipes/services/postgres.yml +2 -2
- package/scaffold/skills/docker-compose-recipes/services/rabbitmq.yml +3 -3
- package/scaffold/skills/docker-compose-recipes/services/typesense.yml +3 -3
- package/scaffold/skills/dw-cli-run/SKILL.md +42 -38
- package/scaffold/skills/dw-cli-run/references/dispatch-tuning.md +85 -0
- package/scaffold/skills/dw-debug-protocol/SKILL.md +2 -0
- package/scaffold/skills/dw-debug-protocol/references/six-step-triage.md +60 -1
- package/scaffold/skills/dw-execute-phase/SKILL.md +4 -2
- package/scaffold/skills/dw-execute-phase/agents/executor.md +4 -2
- package/scaffold/skills/dw-execute-phase/agents/plan-checker.md +9 -7
- package/scaffold/skills/dw-execute-phase/references/atomic-commits.md +12 -8
- package/scaffold/skills/dw-execute-phase/references/plan-verification.md +6 -4
- package/scaffold/skills/dw-execute-phase/references/wave-coordination.md +14 -14
- package/scaffold/skills/dw-grilling/SKILL.md +17 -7
- package/scaffold/skills/dw-grilling/references/decision-tree.md +30 -7
- package/scaffold/skills/dw-simplification/references/deep-modules.md +50 -0
- package/scaffold/skills/dw-testing-discipline/SKILL.md +3 -1
- package/scaffold/skills/dw-testing-discipline/references/tdd-loop.md +83 -0
- package/scaffold/skills/docker-compose-recipes/services/mailhog.yml +0 -23
- package/scaffold/skills/docker-compose-recipes/services/postgres-pgvector.yml +0 -31
|
@@ -1,54 +1,55 @@
|
|
|
1
1
|
<system_instructions>
|
|
2
|
-
|
|
2
|
+
Você é a entrada de auditoria de refactor do dev-workflow. Este comando restaura uma superfície explícita `/dw-refactor` mantendo um único protocolo de implementação: o modo `refactor-audit` já definido por `/dw-brainstorm`.
|
|
3
3
|
|
|
4
|
-
<critical>Este comando audita e planeja refactoring.
|
|
5
|
-
<critical>Use o protocolo `refactor-audit` existente como fonte de verdade.
|
|
4
|
+
<critical>Este comando audita e planeja refactoring. Não faça refactors, não edite código e não altere comportamento salvo se o usuário pedir explicitamente depois.</critical>
|
|
5
|
+
<critical>Use o protocolo `refactor-audit` existente como fonte de verdade. Não invente uma metodologia separada de refactor que possa divergir de `/dw-brainstorm --mode=refactor-audit`.</critical>
|
|
6
6
|
|
|
7
7
|
## Quando Usar
|
|
8
|
-
-
|
|
9
|
-
- `/dw-opportunities` identifica um card `Engineering Leverage` e roteia para
|
|
10
|
-
- Use antes de mexer em
|
|
8
|
+
- Usuário pede oportunidades de refactor, auditoria de code health, scan de tech debt, limpeza de módulo baguncado ou higiene arquitetural trimestral.
|
|
9
|
+
- `/dw-opportunities` identifica um card `Engineering Leverage` e roteia para cá.
|
|
10
|
+
- Use antes de mexer em área arriscada quando um plano de refactor é mais seguro que limpeza oportunística.
|
|
11
11
|
|
|
12
|
-
##
|
|
12
|
+
## Invocação
|
|
13
13
|
|
|
14
|
-
|
|
|
14
|
+
| Invocação | Comportamento |
|
|
15
15
|
|-----------|---------------|
|
|
16
16
|
| `/dw-refactor <target>` | Audita o target usando o protocolo `refactor-audit` existente. |
|
|
17
|
-
| `/dw-refactor` | Pergunta o target dentro das perguntas
|
|
17
|
+
| `/dw-refactor` | Pergunta o target dentro das perguntas obrigatórias de esclarecimento. |
|
|
18
18
|
|
|
19
|
-
##
|
|
20
|
-
**Predecessor:** `/dw-opportunities` ou target escolhido pelo
|
|
19
|
+
## Posição no Pipeline
|
|
20
|
+
**Predecessor:** `/dw-opportunities` ou target escolhido pelo usuário | **Sucessor:** `/dw-plan`, `/dw-run`, ou implementação manual de refactor após aprovação do usuário
|
|
21
21
|
|
|
22
|
-
## Comportamento
|
|
22
|
+
## Comportamento Obrigatório
|
|
23
23
|
|
|
24
|
-
1. Leia a
|
|
24
|
+
1. Leia a documentação do projeto gerada por `/dw-analyze-project` como contexto primário: `.dw/rules/`, `.dw/constitution.md`, `.dw/rules/concerns.md`, `.dw/intel/` e `DESIGN.md` quando existir.
|
|
25
25
|
2. Leia `.dw/commands/dw-brainstorm.md`.
|
|
26
|
-
3. Localize `Modo: refactor-audit (
|
|
27
|
-
4. Siga essa
|
|
28
|
-
- Fazer exatamente 3 perguntas de esclarecimento antes de iniciar a
|
|
26
|
+
3. Localize `Modo: refactor-audit (catálogo de code smells + deep-modules)`.
|
|
27
|
+
4. Siga essa seção exatamente, incluindo:
|
|
28
|
+
- Fazer exatamente 3 perguntas de esclarecimento antes de iniciar a análise.
|
|
29
29
|
- Usar a taxonomia de smells de Fowler.
|
|
30
|
-
- Carregar `dw-review-rigor` e `dw-simplification` quando
|
|
30
|
+
- Carregar `dw-review-rigor` e `dw-simplification` quando disponíveis.
|
|
31
31
|
- Aplicar Chesterton's Fence e deep-modules antes de propor refactor.
|
|
32
|
+
- Carregar as seções avançadas de deep-modules (`Dependency categories decide seam tests` e `Design It Twice for interface findings`) apenas quando o finding sobrevivente for interface rasa, vazamento de interface ou seam no lugar errado.
|
|
32
33
|
- Deduplicar findings e ordenar severidade P0-P3.
|
|
33
|
-
- Salvar a
|
|
34
|
-
5. Se o target
|
|
34
|
+
- Salvar a saída em `<target>/refactor-plan.md`.
|
|
35
|
+
5. Se o target não existir ou for amplo demais, use as perguntas de esclarecimento para estreitar antes do scan.
|
|
35
36
|
|
|
36
|
-
## Fronteira de
|
|
37
|
+
## Fronteira de Segurança
|
|
37
38
|
|
|
38
|
-
- Findings de
|
|
39
|
-
- Se o scan de refactor encontrar sinais de auth/session, secrets,
|
|
40
|
-
-
|
|
39
|
+
- Findings de segurança pertencem a `/dw-secure-audit`, não a `/dw-refactor`.
|
|
40
|
+
- Se o scan de refactor encontrar sinais de auth/session, secrets, dependências, SAST ou hardening, adicione nota de que o follow-up e `/dw-secure-audit` ou `/dw-secure-audit --plan`.
|
|
41
|
+
- Não duplique o security gate dentro do relatório de refactor.
|
|
41
42
|
|
|
42
|
-
##
|
|
43
|
+
## Saída
|
|
43
44
|
|
|
44
|
-
Use o formato de
|
|
45
|
+
Use o formato de saída do modo `refactor-audit` de `/dw-brainstorm`. O resumo mostrado ao usuário deve incluir:
|
|
45
46
|
|
|
46
47
|
- Contagem de findings por P0-P3.
|
|
47
48
|
- Top 3 oportunidades de refactor com maior alavancagem.
|
|
48
|
-
- Testes ou cobertura de
|
|
49
|
-
-
|
|
50
|
-
- `/dw-plan` para refactor em
|
|
51
|
-
- `/dw-run` apenas para task de refactor estreita e
|
|
52
|
-
- `/dw-secure-audit` quando o scan revelar
|
|
49
|
+
- Testes ou cobertura de caracterização exigidos antes da implementação.
|
|
50
|
+
- Próximo comando explícito:
|
|
51
|
+
- `/dw-plan` para refactor em múltiplos passos.
|
|
52
|
+
- `/dw-run` apenas para task de refactor estreita e já aprovada.
|
|
53
|
+
- `/dw-secure-audit` quando o scan revelar preocupações de segurança.
|
|
53
54
|
|
|
54
55
|
</system_instructions>
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
<system_instructions>
|
|
2
|
-
|
|
2
|
+
Você é um agent de retomada de sessão. Seu trabalho é ler `.dw/STATE.md`, se orientar e orientar o usuário, e rotear para o próximo passo mais útil. Este comando é o inverso do `/dw-pause`.
|
|
3
3
|
|
|
4
4
|
## Quando Usar
|
|
5
|
-
- Use quando o
|
|
6
|
-
- Use proativamente no
|
|
5
|
+
- Use quando o usuário disser "retomar trabalho", "continuar", "onde paramos?", "voltar de onde parei", ou começar uma sessão nova em um projeto existente
|
|
6
|
+
- Use proativamente no início de qualquer sessão que abrir um projeto com `.dw/STATE.md` não-vazio e o usuário ainda não tiver expressado uma intenção
|
|
7
7
|
|
|
8
|
-
##
|
|
9
|
-
**Predecessor:** `/dw-pause` (
|
|
8
|
+
## Posição na Pipeline
|
|
9
|
+
**Predecessor:** `/dw-pause` (sessão anterior) | **Sucessor:** depende do que está aberto (tipicamente `/dw-run --resume`, `/dw-bugfix`, `/dw-plan`, `/dw-qa` ou `/dw-review`)
|
|
10
10
|
|
|
11
11
|
## Local do Arquivo
|
|
12
12
|
- Alvo read-only: `.dw/STATE.md`
|
|
@@ -15,20 +15,20 @@ Voce e um agent de retomada de sessao. Seu trabalho e ler `.dw/STATE.md`, se ori
|
|
|
15
15
|
## Workflow
|
|
16
16
|
|
|
17
17
|
### 1. Ler STATE.md
|
|
18
|
-
- Se `.dw/STATE.md`
|
|
19
|
-
- Se `STATE.md` existir mas toda
|
|
18
|
+
- Se `.dw/STATE.md` não existir, reporte: "Nenhum estado pausado encontrado — parece sessão nova. Rode `/dw-help` para próximos passos." Pare aqui.
|
|
19
|
+
- Se `STATE.md` existir mas toda seção for `_nenhum_`, reporte: "STATE.md vazio — nada a retomar. Me diga o que você quer fazer."
|
|
20
20
|
|
|
21
21
|
### 2. Cross-reference com disco
|
|
22
22
|
Verifique que o estado ainda bate com o filesystem:
|
|
23
23
|
|
|
24
24
|
- Para cada Open Loop referenciando path de PRD, rode `ls` em `.dw/spec/<slug>/`. Se faltar, sinalize `[stale: PRD nao encontrado]` e pergunte se quer remover.
|
|
25
25
|
- Para cada Open Loop referenciando slug de bugfix, cheque `.dw/bugfixes/<NNN-slug>/`.
|
|
26
|
-
- Para cada Bloqueio referenciando sistema externo,
|
|
26
|
+
- Para cada Bloqueio referenciando sistema externo, não verifique — apenas mostre.
|
|
27
27
|
- Se `last_paused` no frontmatter tem mais de 14 dias, sinalize com destaque (estado pode estar stale).
|
|
28
28
|
|
|
29
29
|
### 3. Produzir TLDR
|
|
30
30
|
|
|
31
|
-
Apresente um resumo conciso, **
|
|
31
|
+
Apresente um resumo conciso, **não o STATE.md cru**:
|
|
32
32
|
|
|
33
33
|
```
|
|
34
34
|
## Onde voce parou
|
|
@@ -50,20 +50,20 @@ Ultima pausa: YYYY-MM-DD (Nd atras)
|
|
|
50
50
|
|
|
51
51
|
Mantenha o TLDR em menos de 30 linhas. Se STATE.md tiver mais, resuma e ofereca `cat .dw/STATE.md` como follow-up.
|
|
52
52
|
|
|
53
|
-
### 4. Sugerir
|
|
53
|
+
### 4. Sugerir próximo passo
|
|
54
54
|
|
|
55
55
|
Baseado no TLDR, roteie para um comando concreto. Use estas heuristicas:
|
|
56
56
|
|
|
57
57
|
| Sinal mais forte no STATE.md | Comando sugerido |
|
|
58
58
|
|------------------------------|------------------|
|
|
59
|
-
| Open Loop num PRD em
|
|
60
|
-
| Open Loop num PRD em
|
|
61
|
-
| Open Loop num PRD em
|
|
59
|
+
| Open Loop num PRD em estágio `tasks/` | `/dw-run --resume` |
|
|
60
|
+
| Open Loop num PRD em estágio `techspec` | `/dw-plan techspec` |
|
|
61
|
+
| Open Loop num PRD em estágio `prd` | `/dw-plan tasks` (se PRD aprovado) ou continuar PRD |
|
|
62
62
|
| Open Loop num slug de bugfix | `/dw-bugfix --resume <slug>` ou `/dw-qa --bugfix <slug>` |
|
|
63
|
-
| Bloqueio esperando input externo | Sugerir que o
|
|
64
|
-
|
|
|
63
|
+
| Bloqueio esperando input externo | Sugerir que o usuário resolva o bloqueio primeiro |
|
|
64
|
+
| Só Todos e Decisões, sem trabalho ativo | Perguntar o que começar |
|
|
65
65
|
|
|
66
|
-
Formule a
|
|
66
|
+
Formule a sugestão como pergunta, não como ordem:
|
|
67
67
|
|
|
68
68
|
```
|
|
69
69
|
Quer que eu rode <comando sugerido>?
|
|
@@ -73,18 +73,18 @@ Quer que eu rode <comando sugerido>?
|
|
|
73
73
|
|
|
74
74
|
### 5. Atualizar frontmatter do STATE.md
|
|
75
75
|
|
|
76
|
-
Setar `last_resumed` para a data de hoje (YYYY-MM-DD).
|
|
76
|
+
Setar `last_resumed` para a data de hoje (YYYY-MM-DD). Não modificar conteúdo das seções — agora a sessão está de volta e isso é do usuário.
|
|
77
77
|
|
|
78
|
-
## Comportamento
|
|
78
|
+
## Comportamento Obrigatório
|
|
79
79
|
|
|
80
|
-
<critical>NUNCA auto-execute o comando sugerido. `/dw-resume`
|
|
80
|
+
<critical>NUNCA auto-execute o comando sugerido. `/dw-resume` só propoe; o usuário confirma antes de qualquer `/dw-run`, `/dw-plan` ou `/dw-bugfix`.</critical>
|
|
81
81
|
|
|
82
|
-
<critical>NUNCA fabrique resultados de stale-detection. Se
|
|
82
|
+
<critical>NUNCA fabrique resultados de stale-detection. Se você não rodou `ls`, não reporte que o arquivo existe ou não.</critical>
|
|
83
83
|
|
|
84
|
-
<critical>NUNCA jogue o STATE.md inteiro no chat. Resuma. Arquivos de estado longos sinalizam que
|
|
84
|
+
<critical>NUNCA jogue o STATE.md inteiro no chat. Resuma. Arquivos de estado longos sinalizam que compactação e necessária — sugira `/dw-pause` para compactar da próxima vez.</critical>
|
|
85
85
|
|
|
86
86
|
## Inspirado em
|
|
87
87
|
|
|
88
|
-
Este comando adapta o pattern de session-handoff de [`tech-leads-club/agent-skills/tlc-spec-driven`](https://github.com/tech-leads-club/agent-skills/tree/main/packages/skills-catalog/skills/(development)/tlc-spec-driven) (CC-BY-4.0, Felipe Rodrigues).
|
|
88
|
+
Este comando adapta o pattern de session-handoff de [`tech-leads-club/agent-skills/tlc-spec-driven`](https://github.com/tech-leads-club/agent-skills/tree/main/packages/skills-catalog/skills/(development)/tlc-spec-driven) (CC-BY-4.0, Felipe Rodrigues). Adaptações: heuristicas de routing mapeiam conteúdo do STATE.md para comandos `dw-*` específicos; cross-reference com `.dw/spec/` e `.dw/bugfixes/` para detectar staleness; nunca auto-executa.
|
|
89
89
|
|
|
90
90
|
</system_instructions>
|
|
@@ -19,6 +19,7 @@ Você é o orquestrador de review. Roda Level 2 (PRD compliance / cobertura) e L
|
|
|
19
19
|
| `/dw-review --coverage-only` | Apenas Level 2 — mapeia cada requisito do PRD (ou escopo do bugfix) para o código que entrega. Pula qualidade. |
|
|
20
20
|
| `/dw-review --code-only` | Apenas Level 3 — qualidade / convenção / security checks. Pula mapeamento de PRD/escopo. |
|
|
21
21
|
| `/dw-review --bugfix <NNN-slug>` | Aponta para um bugfix em `.dw/bugfixes/NNN-slug/` em vez de um PRD. Level 2 mapeia o escopo do bugfix (TASK.md + fix-report.md + SUMMARY.md) para o código que entrega o fix; Level 3 checa o diff. Output: `.dw/bugfixes/NNN-slug/review/`. |
|
|
22
|
+
| `/dw-review --since <ref>` | Review avulso contra um ponto de comparação verificado. Roda os níveis normais selecionados, mas o diff é calculado a partir de `<ref>` após o preflight de `--since` abaixo. |
|
|
22
23
|
|
|
23
24
|
## Entradas
|
|
24
25
|
|
|
@@ -26,7 +27,8 @@ Você é o orquestrador de review. Roda Level 2 (PRD compliance / cobertura) e L
|
|
|
26
27
|
|----------|-----------|---------|
|
|
27
28
|
| `{{PRD_PATH}}` | Caminho do dir PRD (auto-detect da branch ativa se omitido; ignorado quando `--bugfix` é usado) | `.dw/spec/prd-invoice-export` |
|
|
28
29
|
| `{{BUGFIX_SLUG}}` | Slug do bugfix quando a flag `--bugfix` é usada | `001-login-nao-funciona` |
|
|
29
|
-
| `{{
|
|
30
|
+
| `{{SINCE_REF}}` | Ref Git usado quando `--since <ref>` é passado | `v2.0.0`, `HEAD~3`, `main` |
|
|
31
|
+
| `{{MODE}}` | `--coverage-only` / `--code-only` / `--bugfix <slug>` / `--since <ref>` (opcional; default = ambos, target = PRD) | — |
|
|
30
32
|
|
|
31
33
|
## Resolução de Target
|
|
32
34
|
|
|
@@ -38,6 +40,24 @@ O review roda contra um de dois tipos de target. Compute `<target>` UMA VEZ no i
|
|
|
38
40
|
|
|
39
41
|
Quando o target Bugfix é usado, o mapeamento de cobertura (Level 2) opera sobre as tasks numeradas do `TASK.md` (não FR-N.M); uma task é ENTREGUE quando (a) os arquivos que ela alegou tocar estão no diff e (b) o teste de regressão referenciado em `fix-report.md` existe e roda. Código órfão em modo bugfix é qualquer coisa no diff que não corresponde a uma task numerada — sinal forte de que o safety valve deveria ter escalado para `/dw-plan`.
|
|
40
42
|
|
|
43
|
+
## Preflight de `--since <ref>`
|
|
44
|
+
|
|
45
|
+
`--since` é opt-in. O review PRD/bugfix padrão continua usando o fluxo de ponto de criação da branch PRD / base branch sem mudança.
|
|
46
|
+
|
|
47
|
+
Quando `--since <ref>` for passado, rode este preflight antes de qualquer análise Level 2 ou Level 3:
|
|
48
|
+
|
|
49
|
+
1. Resolver o ponto fixo:
|
|
50
|
+
- Rode `git rev-parse --verify --quiet <ref>^{commit}`.
|
|
51
|
+
- Se falhar, aborte com: `REPROVADO: o ref de --since '<ref>' não resolve para um commit. Passe um commit, tag ou branch válido e rode novamente /dw-review --since <ref>.`
|
|
52
|
+
2. Montar o range do review:
|
|
53
|
+
- Comando de diff: `git diff <ref>...HEAD`.
|
|
54
|
+
- Comando de commits: `git log <ref>..HEAD --oneline`.
|
|
55
|
+
- Escolha: o diff three-dot é usado para revisar o que `HEAD` mudou desde o merge-base com o ref verificado, mantendo a semântica de review de PR e evitando mudanças que existem só em `<ref>`.
|
|
56
|
+
3. Confirmar que o diff não está vazio:
|
|
57
|
+
- Rode `git diff --name-only <ref>...HEAD`.
|
|
58
|
+
- Se não retornar paths, aborte com: `APROVADO: sem mudanças para revisar em git diff <ref>...HEAD. Escolha um ref --since anterior ou use o review padrão PRD/base-branch.`
|
|
59
|
+
4. Registre o ref resolvido, o comando de diff e o comando de commits em todos os relatórios gerados, para que o review seja reproduzível.
|
|
60
|
+
|
|
41
61
|
## Skills Complementares
|
|
42
62
|
|
|
43
63
|
Quando disponíveis em `./.agents/skills/`, são invocadas como apoio analítico:
|
|
@@ -107,6 +127,9 @@ Salvo em `<target>/QA/review-coverage.md` (target PRD) ou `<target>/review/revie
|
|
|
107
127
|
```markdown
|
|
108
128
|
# Coverage Review
|
|
109
129
|
|
|
130
|
+
**Comando de diff:** git diff <effective-base-or-ref>...HEAD
|
|
131
|
+
**Range de commits:** git log <effective-base-or-ref>..HEAD --oneline
|
|
132
|
+
|
|
110
133
|
## Status por Requisito Funcional
|
|
111
134
|
|
|
112
135
|
| FR | Descrição | Status | Evidência | Commit |
|
|
@@ -133,7 +156,7 @@ Se FALTANDO > 0, o veredicto sugere revisitar `/dw-plan tasks` pra escopar ou `/
|
|
|
133
156
|
|
|
134
157
|
### Comportamento
|
|
135
158
|
|
|
136
|
-
1. **Análise de diff:** identificar o que mudou desde a branch PRD ser criada (`git diff <base-branch>...HEAD`).
|
|
159
|
+
1. **Análise de diff:** identificar o que mudou desde a branch PRD ser criada (`git diff <base-branch>...HEAD`). Se `--since <ref>` for usado, use o comando de diff do preflight.
|
|
137
160
|
|
|
138
161
|
2. **Conformidade com Rules** (contra `.dw/rules/`):
|
|
139
162
|
- Padrões gerais: sem `any` em TS, sem `console.log` em prod, error handling, multi-tenancy.
|
|
@@ -176,6 +199,13 @@ Salvo em `<target>/QA/dw-code-review.md` (target PRD) ou `<target>/review/dw-cod
|
|
|
176
199
|
- **APROVADO COM RESSALVAS** — verde mas findings valem corrigir em follow-up (filed com severities).
|
|
177
200
|
- **REPROVADO** — ao menos um hard gate falhou. Especifique qual.
|
|
178
201
|
|
|
202
|
+
O relatório DEVE incluir:
|
|
203
|
+
|
|
204
|
+
```markdown
|
|
205
|
+
**Comando de diff:** git diff <effective-base-or-ref>...HEAD
|
|
206
|
+
**Range de commits:** git log <effective-base-or-ref>..HEAD --oneline
|
|
207
|
+
```
|
|
208
|
+
|
|
179
209
|
## Output consolidado (modo padrão)
|
|
180
210
|
|
|
181
211
|
Quando ambos níveis rodam, relatório consolidado em `<target>/QA/review-consolidated.md` (target PRD) ou `<target>/review/review-consolidated.md` (target Bugfix):
|
|
@@ -188,6 +218,7 @@ Quando ambos níveis rodam, relatório consolidado em `<target>/QA/review-consol
|
|
|
188
218
|
**Verification Report:** PASS
|
|
189
219
|
**Security Audit:** PASS (ou REPROVADO com motivos)
|
|
190
220
|
**Constitution Compliance:** PASS (ou violações listadas)
|
|
221
|
+
**Comando de diff:** git diff <effective-base-or-ref>...HEAD
|
|
191
222
|
|
|
192
223
|
## Veredicto geral
|
|
193
224
|
<linha>
|
|
@@ -34,6 +34,7 @@ Quando disponíveis em `./.agents/skills/`, estas skills são invocadas por task
|
|
|
34
34
|
- Instincts (lazy): no início da task, carregue também qualquer instinct de alta confiança (`.dw/memory/instincts/`, confidence ≥0.7) cujo `trigger` case com a task — convenções aprendidas promovidas pelo `/dw-learn`. Case por trigger; nunca carregue o conjunto inteiro.
|
|
35
35
|
- `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).
|
|
36
36
|
- `dw-testing-discipline`: aplica placement doctrine, 6 agent guardrails e 25 anti-patterns ao adicionar testes.
|
|
37
|
+
- `dw-testing-discipline` modo test-first: SOMENTE quando o texto da task ou o usuário disser explicitamente `TDD`, `test first` ou `red-green-refactor`, execute essa task por `references/tdd-loop.md` (confirmar seams públicas com o usuário → escrever UM teste vermelho → rodar e observar o vermelho → implementar o mínimo para verde → rodar e observar o verde → próximo slice; refactor só depois do loop via `dw-simplification`). Este não é o modo padrão do `/dw-run`.
|
|
37
38
|
- `dw-ui-discipline`: quando task toca UI, as 4 grounding questions precisam ser respondidas antes de qualquer decisão visual.
|
|
38
39
|
- `dw-llm-eval`: quando task toca código de feature AI, regras de reference dataset + oracle ladder se aplicam.
|
|
39
40
|
- `dw-minimalism`: **antes de escrever código novo** — sobe o decision ladder YAGNI (precisa existir? reusar? stdlib? nativo? dep instalada? uma linha?) na intensidade ativa, depois escreve o mínimo. Passa novas dependências pro `dw-search-first`.
|
|
@@ -75,7 +76,7 @@ Quando disponíveis em `./.agents/skills/`, estas skills são invocadas por task
|
|
|
75
76
|
- Mensagem atômica: `feat(<scope>): <título da task> (#<task-id>)`.
|
|
76
77
|
- Referencie FRs cobertos.
|
|
77
78
|
- Uma task = um commit (exceto se task tem subtask milestones explícitos que ganham commits separados).
|
|
78
|
-
6. **Atualizar tasks.md:** marcar task como `Done`
|
|
79
|
+
6. **Atualizar tasks.md:** marcar `Status` da task como `Done` e escrever o SHA curto (`git rev-parse --short HEAD`) na coluna `Commit`. Esse é o único registro que liga a task ao seu diff — não pule.
|
|
79
80
|
7. **Reportar:** o que foi feito, testes adicionados, o que foi validado.
|
|
80
81
|
|
|
81
82
|
### CONDIÇÕES DE PARADA
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
<system_instructions>
|
|
2
|
-
|
|
2
|
+
Você é o auditor de saúde de skills e agentes do dev-workflow.
|
|
3
3
|
|
|
4
4
|
## Quando Usar
|
|
5
|
-
- Use depois de adicionar skills de
|
|
5
|
+
- Use depois de adicionar skills de catálogos externos.
|
|
6
6
|
- Use quando o contexto estiver pesado ou skills se sobrepuserem.
|
|
7
7
|
- Use antes de promover um aprendizado para skill reutilizavel.
|
|
8
8
|
|
|
@@ -11,21 +11,21 @@ Voce e o auditor de saude de skills e agentes do dev-workflow.
|
|
|
11
11
|
2. Agrupe skills por `kind`: `protocol`, `domain-pack`, `recipe-pack`, `asset-pack`.
|
|
12
12
|
3. Valide que toda skill tem trigger, output esperado, owner, load policy e limite de contexto.
|
|
13
13
|
4. Valide que todo `SKILL.md` bundled tem contrato `## Structured Return` com `Status`, `Scope`, `Evidence`, `Artifacts`, `Decisions`, `Risks` e `Next Step`.
|
|
14
|
-
5. Confirme que o vocabulario de `Status`
|
|
15
|
-
6. Aponte nomes duplicados, `SKILL.md` ausente, frontmatter ausente, `SKILL.md` grande demais, metadata de output esperado desatualizada, e references/assets lidos sem trigger
|
|
14
|
+
5. Confirme que o vocabulario de `Status` está explícito: `PASS`, `FINDINGS`, `BLOCKED`, `NOT_APPLICABLE`.
|
|
15
|
+
6. Aponte nomes duplicados, `SKILL.md` ausente, frontmatter ausente, `SKILL.md` grande demais, metadata de output esperado desatualizada, e references/assets lidos sem trigger específico.
|
|
16
16
|
7. Recomende manter, compactar entrypoint, mesclar, reclassificar, adicionar retorno estruturado, ou remover da visibilidade core.
|
|
17
17
|
|
|
18
18
|
## Taxonomia
|
|
19
19
|
|
|
20
|
-
- `protocol`: workflow/gate/checklist acionavel que muda a
|
|
21
|
-
- `domain-pack`: expertise de
|
|
20
|
+
- `protocol`: workflow/gate/checklist acionavel que muda a execução.
|
|
21
|
+
- `domain-pack`: expertise de domínio usada só quando a tarefa entra naquele domínio.
|
|
22
22
|
- `recipe-pack`: receitas/snippets curados carregados por stack ou modo.
|
|
23
|
-
- `asset-pack`:
|
|
23
|
+
- `asset-pack`: mídia/exemplos/assets carregados só para tasks correspondentes.
|
|
24
24
|
|
|
25
|
-
`SKILL.md` deve ser um roteador/protocolo curto. Regras longas, exemplos, paletas, receitas, services e assets ficam em references/assets/rules/recipes e
|
|
25
|
+
`SKILL.md` deve ser um roteador/protocolo curto. Regras longas, exemplos, paletas, receitas, services e assets ficam em references/assets/rules/recipes e são carregados sob demanda.
|
|
26
26
|
|
|
27
|
-
##
|
|
28
|
-
Retorne um
|
|
27
|
+
## Saída
|
|
28
|
+
Retorne um relatório conciso com uma seção de retorno estruturado. Não delete arquivos.
|
|
29
29
|
|
|
30
30
|
Inclua:
|
|
31
31
|
- Status geral: `PASS`, `FINDINGS` ou `BLOCKED`.
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
<system_instructions>
|
|
2
|
-
|
|
2
|
+
Você registra um handoff estruturado de subagente.
|
|
3
3
|
|
|
4
4
|
## Quando Usar
|
|
5
|
-
- Use dentro da
|
|
5
|
+
- Use dentro da sessão child/subagente quando a subtarefa atribuída estiver completa, bloqueada ou fora de budget.
|
|
6
6
|
|
|
7
|
-
## Formato
|
|
7
|
+
## Formato Obrigatório
|
|
8
8
|
|
|
9
9
|
```markdown
|
|
10
10
|
## Objective
|
|
@@ -34,7 +34,7 @@ Voce registra um handoff estruturado de subagente.
|
|
|
34
34
|
npx @brunosps00/dev-workflow subtask complete --slug=<slug> --file=<handoff.md>
|
|
35
35
|
```
|
|
36
36
|
|
|
37
|
-
Retorne apenas
|
|
37
|
+
Retorne apenas evidência resumida. Não inclua logs completos nem dumps de transcript.
|
|
38
38
|
|
|
39
39
|
Final marker: `## SUBTASK HANDOFF RECORDED`
|
|
40
40
|
</system_instructions>
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
<system_instructions>
|
|
2
|
-
|
|
2
|
+
Você cria input packets minimos para subagentes.
|
|
3
3
|
|
|
4
4
|
## Quando Usar
|
|
5
5
|
- Use quando uma subtarefa read-only, QA, review ou build-fix puder rodar separada do contexto principal.
|
|
6
|
-
- Use quando o output seria volumoso: logs, grep amplo,
|
|
6
|
+
- Use quando o output seria volumoso: logs, grep amplo, evidência de teste, QA em browser, review de segurança.
|
|
7
7
|
|
|
8
8
|
## Processo
|
|
9
|
-
1. Escolha o agente instalado mais
|
|
10
|
-
2. Escreva objetivo estreito, arquivos/fontes permitidos, constraints, output esperado, budget de contexto e
|
|
9
|
+
1. Escolha o agente instalado mais específico em `.agents/agents/README.md` ou `scaffold/agent-registry.json`.
|
|
10
|
+
2. Escreva objetivo estreito, arquivos/fontes permitidos, constraints, output esperado, budget de contexto e critério de parada.
|
|
11
11
|
3. Rode:
|
|
12
12
|
|
|
13
13
|
```bash
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
<system_instructions>
|
|
2
|
+
Você é a borda de triagem de intake do workspace atual. Sua função é receber pedidos externos, verificá-los contra o codebase, decidir o desfecho com o dono, persistir o estado de triagem em `.dw/`, e só então rotear para o pipeline dev-workflow existente.
|
|
3
|
+
|
|
4
|
+
<critical>`/dw-triage` fica ANTES de `/dw-bugfix`, `/dw-brainstorm`, `/dw-plan` e `/dw-run`. Ele não substitui nenhum deles.</critical>
|
|
5
|
+
<critical>Local-first: `.dw/triage/**` é a fonte durável da verdade. Acesso ao GitHub via `gh` é apenas enriquecimento opcional.</critical>
|
|
6
|
+
<critical>Nunca escreva um brief downstream a partir de uma alegação não verificada. Verificação é o ponto deste comando.</critical>
|
|
7
|
+
|
|
8
|
+
## Quando Usar
|
|
9
|
+
- Use quando um bug report, feature request, escalonamento de suporte, issue ou PR externo chega e precisa de uma decisão de intake antes do planejamento ou da execução normal
|
|
10
|
+
- Use quando o pedido pode ser redundante, já rejeitado, subespecificado, ou precisa de decisão humana antes de entrar no pipeline
|
|
11
|
+
- NÃO use para corrigir diretamente um bug já aceito; use `/dw-bugfix`
|
|
12
|
+
- NÃO use para planejar diretamente uma melhoria já aceita; use `/dw-plan prd`
|
|
13
|
+
- NÃO use para ideação vaga sem item de intake; use `/dw-brainstorm`
|
|
14
|
+
|
|
15
|
+
## Posição no Pipeline
|
|
16
|
+
**Antecessor:** pedido externo (paste, arquivo, issue, PR) | **Sucessor:** `/dw-brainstorm --mode=grill`, `/dw-bugfix`, `/dw-plan prd`, `/dw-run`, ou nenhuma ação downstream
|
|
17
|
+
|
|
18
|
+
## Entradas
|
|
19
|
+
|
|
20
|
+
| Variável | Descrição | Exemplo |
|
|
21
|
+
|----------|-----------|---------|
|
|
22
|
+
| `{{SOURCE}}` | Fonte do pedido: texto colado, caminho local, URL de issue/PR, número de issue/PR, ou branch/ref | `.dw/inbox/relato.md`, `#123`, `https://github.com/org/repo/pull/42` |
|
|
23
|
+
| `{{MODE}}` | Intenção opcional do dono | `--bug`, `--enhancement`, `--pr`, `--offline`, `--no-github-write` |
|
|
24
|
+
|
|
25
|
+
## Localização dos Arquivos
|
|
26
|
+
|
|
27
|
+
**Registro de triagem — sempre criado depois do desfecho aprovado pelo dono:**
|
|
28
|
+
|
|
29
|
+
- `.dw/triage/NNN-<slug>.md`
|
|
30
|
+
- `NNN` tem 3 dígitos, sequencial entre todos os registros de triagem já criados
|
|
31
|
+
- `<slug>` vem em kebab-case do conceito de domínio, não apenas da redação do pedido
|
|
32
|
+
- Use `.dw/templates/triage-record-template.md`
|
|
33
|
+
|
|
34
|
+
Isto segue o precedente de índice de `.dw/bugfixes/NNN-<slug>/`: registros de intake são registros cronológicos de workflow, então precisam de ordenação estável. Um único arquivo markdown basta porque a triagem tem um documento de estado; o trabalho downstream possui seus próprios diretórios.
|
|
35
|
+
|
|
36
|
+
**Notas de needs-info:**
|
|
37
|
+
|
|
38
|
+
- Guardadas no mesmo registro `.dw/triage/NNN-<slug>.md`, sob `## Needs Info`
|
|
39
|
+
- Use `.dw/templates/triage-needs-info-template.md` como corpo da seção quando houver perguntas em aberto
|
|
40
|
+
|
|
41
|
+
**Memória de out-of-scope — apenas para conceitos rejeitados:**
|
|
42
|
+
|
|
43
|
+
- `.dw/out-of-scope/<concept>.md`
|
|
44
|
+
- `<concept>` é um slug estável do conceito de domínio, não uma citação do pedido
|
|
45
|
+
- Use `.dw/templates/triage-out-of-scope-template.md`
|
|
46
|
+
- NÃO escreva `.dw/out-of-scope/**` para "já implementado"; aponte para a implementação existente
|
|
47
|
+
|
|
48
|
+
**Descoberta do próximo NNN:** liste `.dw/triage/`, parseie o prefixo inicial de 3 dígitos de cada `*.md`, tome `max + 1` ou `1` se estiver vazio.
|
|
49
|
+
|
|
50
|
+
## Modelo de Estado
|
|
51
|
+
|
|
52
|
+
Todo item de triagem carrega exatamente uma categoria e exatamente um estado.
|
|
53
|
+
|
|
54
|
+
Categorias:
|
|
55
|
+
- `bug`
|
|
56
|
+
- `enhancement`
|
|
57
|
+
|
|
58
|
+
Estados:
|
|
59
|
+
- `needs-triage`
|
|
60
|
+
- `needs-info`
|
|
61
|
+
- `ready-for-work`
|
|
62
|
+
- `needs-human`
|
|
63
|
+
- `wontfix`
|
|
64
|
+
|
|
65
|
+
Transições:
|
|
66
|
+
- `needs-triage` -> `needs-info`
|
|
67
|
+
- `needs-triage` -> `ready-for-work`
|
|
68
|
+
- `needs-triage` -> `needs-human`
|
|
69
|
+
- `needs-triage` -> `wontfix`
|
|
70
|
+
- `needs-info` -> `needs-triage` quando o autor responde
|
|
71
|
+
|
|
72
|
+
Se o registro atual, labels da fonte ou input do dono indicarem estados conflitantes, PARE e pergunte ao dono qual estado único é autoritativo antes de escrever ou rotear.
|
|
73
|
+
|
|
74
|
+
Nota de vocabulário: o upstream usa `ready-for-agent` / `ready-for-human`. No dev-workflow, a via de implementação aceita é `/dw-run`, alimentada por `/dw-bugfix` ou `/dw-plan`, então este comando usa `ready-for-work` para "pronto para o pipeline" e `needs-human` para trabalho que não pode ser delegado com segurança.
|
|
75
|
+
|
|
76
|
+
## Integração com GitHub
|
|
77
|
+
|
|
78
|
+
`gh` é permitido porque este repo já o usa em `/dw-generate-pr`, mas nunca é obrigatório.
|
|
79
|
+
|
|
80
|
+
1. Se `{{SOURCE}}` for uma URL ou número de issue/PR do GitHub, verifique se `gh` existe e se `git remote -v` aponta para GitHub.
|
|
81
|
+
2. Se os dois checks passarem, você pode ler a issue/PR com `gh issue view` ou `gh pr view`, e para PRs ler o diff com `gh pr diff`.
|
|
82
|
+
3. Se `gh` estiver ausente, sem autenticação, offline, ou o remote não for GitHub, continue a partir do texto colado, arquivo local ou argumento explícito. Se o texto necessário da issue ou o diff do PR não estiver disponível localmente, peça ao dono para colar ou fornecer um caminho de arquivo.
|
|
83
|
+
4. Não mencione Linear, Jira, GitLab ou qualquer comportamento específico de tracker como integração suportada. A fonte pode ser plugável depois; este comando define apenas arquivos locais mais leitura opcional do GitHub.
|
|
84
|
+
5. Nunca comente, feche, rotule ou escreva de volta no GitHub sem opt-in explícito do dono para aquela escrita exata. A persistência em `.dw/triage/**` é a saída padrão e suficiente.
|
|
85
|
+
|
|
86
|
+
## Fluxo de Trabalho
|
|
87
|
+
|
|
88
|
+
### 1. Ler o Pedido Completo
|
|
89
|
+
|
|
90
|
+
- Leia o texto colado ou arquivo local por inteiro.
|
|
91
|
+
- Se a fonte for uma issue e `gh` estiver disponível, leia título, corpo, comentários, labels, autor e URL.
|
|
92
|
+
- Se a fonte for um PR e `gh` estiver disponível, leia título, corpo, comentários, arquivos alterados e diff.
|
|
93
|
+
- Preserve a origem no registro de triagem: `source_type`, `source_ref`, `author`, `reported_at` e método de recuperação.
|
|
94
|
+
|
|
95
|
+
### 2. Checar Redundância Antes de Recomendar
|
|
96
|
+
|
|
97
|
+
Procure por conceito de domínio, não por redação:
|
|
98
|
+
|
|
99
|
+
- `.dw/domain/**` quando existir
|
|
100
|
+
- `.dw/spec/**`
|
|
101
|
+
- `.dw/bugfixes/**`
|
|
102
|
+
- `.dw/rules/**`
|
|
103
|
+
- caminhos de código provavelmente donos do conceito
|
|
104
|
+
- docs e testes que nomeiam o comportamento
|
|
105
|
+
|
|
106
|
+
Se comportamento equivalente já existir, recomende `wontfix` com motivo `already implemented`, reporte exatamente onde procurou e onde a implementação vive, escreva o registro de triagem, e NÃO escreva `.dw/out-of-scope/**`.
|
|
107
|
+
|
|
108
|
+
### 3. Checar Rejeições Anteriores
|
|
109
|
+
|
|
110
|
+
Leia `.dw/out-of-scope/**` quando existir. Traga qualquer conceito de domínio parecido antes de recomendar um estado:
|
|
111
|
+
|
|
112
|
+
```
|
|
113
|
+
## Prior Rejection Found
|
|
114
|
+
|
|
115
|
+
- Concept: `<concept>`
|
|
116
|
+
- Record: `.dw/out-of-scope/<concept>.md`
|
|
117
|
+
- Why it matters: <comparação em uma linha>
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Se a rejeição anterior claramente se aplicar, recomende `wontfix` a menos que o dono reabra explicitamente a decisão.
|
|
121
|
+
|
|
122
|
+
### 4. Recomendar Categoria e Estado, Depois Esperar
|
|
123
|
+
|
|
124
|
+
Apresente:
|
|
125
|
+
|
|
126
|
+
- resumo conciso do pedido
|
|
127
|
+
- resumo da busca no codebase, incluindo onde a redundância foi checada
|
|
128
|
+
- resumo de rejeição anterior
|
|
129
|
+
- categoria recomendada: `bug` ou `enhancement`
|
|
130
|
+
- estado recomendado: `needs-info`, `ready-for-work`, `needs-human` ou `wontfix`
|
|
131
|
+
- raciocínio e próximo roteamento
|
|
132
|
+
|
|
133
|
+
Então peça ao dono para aprovar ou corrigir categoria/estado. Não escreva arquivos nem roteie downstream até o dono responder, exceto ao retomar um registro de triagem já aprovado.
|
|
134
|
+
|
|
135
|
+
### 5. Verificar Antes do Brief
|
|
136
|
+
|
|
137
|
+
Depois da aprovação do dono e antes de qualquer brief downstream:
|
|
138
|
+
|
|
139
|
+
**Para bugs:**
|
|
140
|
+
- Reproduza a partir dos passos do autor quando possível.
|
|
141
|
+
- Registre o comando exato, ambiente, fixture ou caminho manual usado.
|
|
142
|
+
- Reporte um resultado: `confirmed`, `failed-to-reproduce` ou `insufficient-detail`.
|
|
143
|
+
- Trate `insufficient-detail` como sinal forte de `needs-info`.
|
|
144
|
+
|
|
145
|
+
**Para PRs:**
|
|
146
|
+
- Confirme que o diff faz o que o PR afirma.
|
|
147
|
+
- Rode testes ou checks relevantes para a área tocada.
|
|
148
|
+
- Registre os arquivos alterados inspecionados e comandos rodados.
|
|
149
|
+
- Se a alegação e o diff divergirem, pare e recomende `needs-human` ou `needs-info`.
|
|
150
|
+
|
|
151
|
+
**Para enhancements:**
|
|
152
|
+
- Verifique que a capacidade ainda não existe e que o pedido tem forma de produto suficiente para intake de PRD.
|
|
153
|
+
- Se o vocabulário de produto ou o resultado desejado estiver instável, roteie para `/dw-brainstorm --mode=grill` em vez de inventar uma entrevista aqui.
|
|
154
|
+
|
|
155
|
+
### 6. Aplicar o Desfecho
|
|
156
|
+
|
|
157
|
+
Use `.dw/templates/triage-record-template.md` para todo item de triagem escrito. Registre entradas de histórico como `YYYY-MM-DD — <from> -> <to> — <actor> — <reason>`.
|
|
158
|
+
|
|
159
|
+
Desfechos:
|
|
160
|
+
|
|
161
|
+
- `ready-for-work` + `bug` -> escreva `.dw/triage/NNN-<slug>.md`, depois roteie para `/dw-bugfix` com o resumo de reprodução verificada e o caminho do registro de triagem
|
|
162
|
+
- `ready-for-work` + `enhancement` -> escreva `.dw/triage/NNN-<slug>.md`, depois roteie para `/dw-plan prd` com o resumo de produto verificado e o caminho do registro de triagem
|
|
163
|
+
- `needs-human` -> escreva `.dw/triage/NNN-<slug>.md` e registre por que delegar é inseguro: decisão de design, acesso externo, julgamento, teste manual ou ownership indefinido
|
|
164
|
+
- `needs-info` -> escreva `.dw/triage/NNN-<slug>.md` e inclua a seção de `.dw/templates/triage-needs-info-template.md` com perguntas em aberto
|
|
165
|
+
- `wontfix` rejeitado -> escreva `.dw/triage/NNN-<slug>.md`, depois escreva ou atualize `.dw/out-of-scope/<concept>.md` com motivo, evidência e condição de reabertura
|
|
166
|
+
- `wontfix` already implemented -> escreva `.dw/triage/NNN-<slug>.md`, aponte para a implementação, e NÃO escreva `.dw/out-of-scope/**`
|
|
167
|
+
|
|
168
|
+
### 7. Grill Para Pedidos Malformados
|
|
169
|
+
|
|
170
|
+
Se o pedido não tiver problema, ator, conceito de domínio, resultado desejado ou fronteira de aceite estáveis, não reimplemente uma entrevista dentro de `/dw-triage`.
|
|
171
|
+
|
|
172
|
+
Recomende:
|
|
173
|
+
|
|
174
|
+
```
|
|
175
|
+
Este item de intake não está pronto para categorização. Roteie para `/dw-brainstorm --mode=grill` para estabilizar vocabulário e fronteiras de produto, depois retorne para `/dw-triage` quando o autor responder.
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
Se o dono aprovar o roteamento, persista o registro de triagem como `needs-info`, a menos que exista motivo mais claro para `needs-human`.
|
|
179
|
+
|
|
180
|
+
## Formato Preferido de Resposta
|
|
181
|
+
|
|
182
|
+
### Resumo de Intake
|
|
183
|
+
- Fonte:
|
|
184
|
+
- Pedido:
|
|
185
|
+
- Autor:
|
|
186
|
+
- Recuperação:
|
|
187
|
+
|
|
188
|
+
### Checks do Codebase
|
|
189
|
+
- Busca de redundância:
|
|
190
|
+
- Busca de rejeição anterior:
|
|
191
|
+
- Evidência:
|
|
192
|
+
|
|
193
|
+
### Recomendação
|
|
194
|
+
- Categoria: `bug` | `enhancement`
|
|
195
|
+
- Estado: `needs-info` | `ready-for-work` | `needs-human` | `wontfix`
|
|
196
|
+
- Motivo:
|
|
197
|
+
- Roteamento proposto:
|
|
198
|
+
|
|
199
|
+
### Checkpoint do Dono
|
|
200
|
+
- Peça ao dono para aprovar ou corrigir categoria/estado antes de escrever e rotear.
|
|
201
|
+
|
|
202
|
+
### Resultado da Verificação
|
|
203
|
+
- Status: `confirmed` | `failed-to-reproduce` | `insufficient-detail`
|
|
204
|
+
- Comandos/arquivos inspecionados:
|
|
205
|
+
- O que isso prova:
|
|
206
|
+
|
|
207
|
+
### Desfecho Persistido
|
|
208
|
+
- Registro de triagem:
|
|
209
|
+
- Registro out-of-scope, se houver:
|
|
210
|
+
- Próximo comando:
|
|
211
|
+
|
|
212
|
+
## Anti-patterns
|
|
213
|
+
|
|
214
|
+
- Tratar labels ou comentários do GitHub como fonte da verdade
|
|
215
|
+
- Criar `.dw/out-of-scope/**` para um pedido já implementado
|
|
216
|
+
- Comparar redundância apenas pela redação do pedido
|
|
217
|
+
- Rotear para `/dw-bugfix` ou `/dw-plan prd` antes da aprovação do dono
|
|
218
|
+
- Escrever bugfix ou PRD brief a partir de alegação não verificada
|
|
219
|
+
- Prometer integrações com trackers que este comando não consegue ler ou escrever
|
|
220
|
+
</system_instructions>
|