adi_dev_workflow 1.0.0 → 1.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/bin/index.js +0 -0
- package/frameworks/commands/generate-project-profile.md +68 -0
- package/frameworks/commands/generate-prompt.md +4 -2
- package/frameworks/commands/ministack/README.md +61 -46
- package/frameworks/commands/ministack/code-review.md +36 -49
- package/frameworks/commands/ministack/generate-intent.md +25 -2
- package/frameworks/commands/ministack/generate-scope.md +30 -6
- package/frameworks/commands/ministack/generate-tasks.md +191 -6
- package/frameworks/commands/ministack/generate-tech-direction.md +43 -0
- package/frameworks/commands/ministack/run-ministack-tasks.md +352 -33
- package/frameworks/commands/ministack/run-ministack-withlinear.md +23 -22
- package/frameworks/commands/ministack/status.md +153 -0
- package/frameworks/commands/sdd/code-review.md +10 -10
- package/frameworks/commands/sdd/generate-prd.md +32 -2
- package/frameworks/commands/sdd/generate-task-plan.md +199 -5
- package/frameworks/commands/sdd/generate-tech-direction.md +43 -0
- package/frameworks/commands/sdd/generate-tech-spec.md +218 -0
- package/frameworks/commands/sdd/generate-tests.md +2 -2
- package/frameworks/commands/sdd/run_tasks.md +391 -43
- package/frameworks/commands/sdd/run_tasks_withlinear.md +276 -37
- package/frameworks/commands/sdd/status.md +160 -0
- package/frameworks/commands/sdd/validate-sdd.md +18 -2
- package/frameworks/commands/sync-tasks-to-linear.md +588 -588
- package/frameworks/commands/taskcard/generate-taskcard.md +42 -25
- package/frameworks/commands/taskcard/run-taskcard.md +203 -34
- package/frameworks/skills/ministack-intent-expert/SKILL.md +3 -2
- package/frameworks/skills/ministack-intent-expert/templates/intent-template.md +1 -1
- package/frameworks/skills/ministack-scope-expert/SKILL.md +6 -10
- package/frameworks/skills/ministack-scope-expert/templates/scope-template.md +1 -1
- package/frameworks/skills/ministack-tasks-expert/SKILL.md +192 -0
- package/frameworks/skills/ministack-tasks-expert/templates/task_plan_template.md +78 -0
- package/frameworks/skills/ministack-tasks-expert/templates/task_template.md +103 -0
- package/frameworks/skills/ministack-tech-direction-expert/SKILL.md +218 -0
- package/frameworks/skills/ministack-tech-direction-expert/evals/evals.json +1 -0
- package/frameworks/skills/ministack-tech-direction-expert/templates/tech_direction-template.md +17 -0
- package/frameworks/skills/sdd-prd-expert/SKILL.md +143 -95
- package/frameworks/skills/sdd-prd-expert/evals/evals.json +59 -0
- package/frameworks/skills/sdd-prd-expert/templates/prd_template.md +46 -46
- package/frameworks/skills/sdd-prd-expert/templates/tech_direction-template.md +23 -0
- package/frameworks/skills/sdd-task-plan-expert/SKILL.md +179 -201
- package/frameworks/skills/sdd-task-plan-expert/evals/evals.json +109 -0
- package/frameworks/skills/sdd-task-plan-expert/templates/task_plan_template.md +33 -33
- package/frameworks/skills/sdd-task-plan-expert/templates/task_template.md +58 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/benchmark.json +99 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/benchmark.md +64 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/eval_metadata.json +12 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/grading.json +32 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/outputs/response.md +134 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/outputs/transcript.md +68 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/timing.json +5 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/grading.json +32 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/outputs/response.md +525 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/outputs/transcript.md +30 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/timing.json +5 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/eval_metadata.json +12 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/grading.json +32 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/outputs/response.md +1126 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/outputs/transcript.md +131 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/timing.json +5 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/grading.json +32 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/outputs/response.md +452 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/outputs/transcript.md +78 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/timing.json +5 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/eval_metadata.json +12 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/grading.json +32 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/outputs/response.md +101 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/outputs/transcript.md +133 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/timing.json +5 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/grading.json +32 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/outputs/response.md +248 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/outputs/transcript.md +49 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/timing.json +5 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/review.html +1325 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/benchmark.json +94 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/benchmark.md +67 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/eval_metadata.json +12 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/grading.json +32 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/outputs/response.md +117 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/outputs/transcript.md +91 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/timing.json +1 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/grading.json +32 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/outputs/response.md +694 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/outputs/transcript.md +45 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/timing.json +1 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/eval_metadata.json +12 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/grading.json +32 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/outputs/response.md +1087 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/outputs/transcript.md +124 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/timing.json +1 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/grading.json +32 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/outputs/response.md +458 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/outputs/transcript.md +84 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/timing.json +1 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/eval_metadata.json +12 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/grading.json +32 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/outputs/response.md +70 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/outputs/transcript.md +148 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/timing.json +1 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/grading.json +32 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/outputs/response.md +249 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/outputs/transcript.md +80 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/timing.json +1 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/review.html +1325 -0
- package/frameworks/skills/sdd-tech-direction-expert/SKILL.md +223 -0
- package/frameworks/skills/sdd-tech-direction-expert/evals/evals.json +1 -0
- package/frameworks/skills/sdd-tech-direction-expert/templates/tech_direction-template.md +23 -0
- package/frameworks/skills/sdd-tech-spec-expert/SKILL.md +304 -0
- package/frameworks/skills/sdd-tech-spec-expert/evals/evals.json +199 -0
- package/frameworks/skills/sdd-tech-spec-expert/templates/spec_tech_template.md +290 -0
- package/frameworks/skills/sdd-tech-spec-expert/templates/tech_direction-template.md +23 -0
- package/frameworks/skills/taskcard-expert/SKILL.md +26 -78
- package/frameworks/skills/taskcard-expert/templates/template.md +0 -2
- package/package.json +1 -1
- package/frameworks/commands/ministack/generate-tests.md +0 -37
- package/frameworks/commands/sdd/generate-spec-tech.md +0 -37
- package/frameworks/commands/taskcard/generate-tests.md +0 -37
- package/frameworks/skills/ministack-expert/SKILL.md +0 -415
- package/frameworks/skills/ministack-expert/templates/tasks-template.md +0 -141
- package/frameworks/skills/ministack-qa-expert/SKILL.md +0 -273
- package/frameworks/skills/ministack-qa-expert/templates/task_tests_template.md +0 -24
- package/frameworks/skills/ministack-qa-expert/templates/test_strategy_template.md +0 -75
- package/frameworks/skills/sdd-qa-expert/SKILL.md +0 -284
- package/frameworks/skills/sdd-qa-expert/templates/task_tests_template.md +0 -24
- package/frameworks/skills/sdd-qa-expert/templates/test_strategy_template.md +0 -75
- package/frameworks/skills/sdd-spec-tech-expert/SKILL.md +0 -387
- package/frameworks/skills/sdd-spec-tech-expert/templates/spec_tech_template.md +0 -246
- package/frameworks/skills/sdd-spec-tech-expert/templates/tech_direction-template.md +0 -23
- package/frameworks/skills/taskcard-qa-expert/SKILL.md +0 -265
- package/frameworks/skills/taskcard-qa-expert/templates/task_tests_template.md +0 -78
- package/frameworks/templates/prompt_template.md +0 -164
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
description:
|
|
3
|
-
|
|
2
|
+
description: "Executa tasks do SDD via sub-agentes. Params: <task_plan.md> <agent_name> (ex: docs/feature-user/v1/task_plan.md go-expert)"
|
|
3
|
+
argument-hint: "<caminho task_plan.md ex: docs/feature-user/v1/task_plan.md> <agent_name ex: go-expert>"
|
|
4
4
|
---
|
|
5
5
|
Você é um **Coordenador de Sub-agentes** dentro do framework de desenvolvimento assistido por IA. Seu papel é **orquestrar**, não executar diretamente.
|
|
6
6
|
|
|
@@ -8,21 +8,19 @@ Você é um **Coordenador de Sub-agentes** dentro do framework de desenvolviment
|
|
|
8
8
|
|
|
9
9
|
O `$ARGUMENTS` deve conter:
|
|
10
10
|
|
|
11
|
-
1. **
|
|
12
|
-
2. **agent_name** (obrigatório) — Nome do sub-agente executor (ex: `
|
|
11
|
+
1. **task_plan_path** (obrigatório) — Caminho do task_plan.md (ex: `docs/feature-user/v1/task_plan.md`)
|
|
12
|
+
2. **agent_name** (obrigatório) — Nome do sub-agente executor (ex: `go-expert`, `flutter-dev-agent`)
|
|
13
13
|
|
|
14
|
-
**Formato:** `<
|
|
14
|
+
**Formato:** `<task_plan_path> <agent_name>`
|
|
15
15
|
|
|
16
16
|
**Exemplos:**
|
|
17
|
-
- `
|
|
18
|
-
- `
|
|
19
|
-
- `user-interface flutter-dev-agent`
|
|
17
|
+
- `docs/feature-user/v1/task_plan.md go-expert`
|
|
18
|
+
- `docs/feature-menu/v1/task_plan.md go-expert`
|
|
20
19
|
|
|
21
|
-
A partir do **
|
|
22
|
-
- **task_plan.md
|
|
23
|
-
- **Arquivos de tasks**: `
|
|
24
|
-
- **spec_tech.md**:
|
|
25
|
-
- **prd.md**: `docs/<nome-feature>/prd.md`
|
|
20
|
+
A partir do **task_plan_path**, derive:
|
|
21
|
+
- **diretório base**: diretório pai do task_plan.md (ex: `docs/feature-user/v1/`)
|
|
22
|
+
- **Arquivos de tasks**: `[diretório-base]/tasks/<ID>.md`
|
|
23
|
+
- **spec_tech.md** e **prd.md**: extrair os caminhos da seção 1 (Identificação) do task_plan.md — campos **SPEC_TECH** e **PRD**
|
|
26
24
|
|
|
27
25
|
## Contexto do Framework
|
|
28
26
|
|
|
@@ -33,9 +31,9 @@ O fluxo oficial é:
|
|
|
33
31
|
|
|
34
32
|
Você SEMPRE terá acesso a:
|
|
35
33
|
- O repositório completo do projeto
|
|
36
|
-
-
|
|
37
|
-
- Arquivos de tasks individuais em: `
|
|
38
|
-
-
|
|
34
|
+
- O task_plan.md fornecido como parâmetro
|
|
35
|
+
- Arquivos de tasks individuais em: `[diretório-base]/tasks/<ID>.md`
|
|
36
|
+
- SPEC_TECH e PRD referenciados na seção 1 do task_plan.md
|
|
39
37
|
- Uma tabela de rastreabilidade **User Stories → Tasks** no `task_plan.md` (seção 5)
|
|
40
38
|
|
|
41
39
|
---
|
|
@@ -69,23 +67,313 @@ Você SEMPRE terá acesso a:
|
|
|
69
67
|
- **Descrição Detalhada** (seção 3)
|
|
70
68
|
- **Aceite Técnico** (seção 4)
|
|
71
69
|
- **Arquivos Impactados** — com as subseções: 5.1 A Criar, 5.2 A Modificar, 5.3 De Referência
|
|
70
|
+
- **Testes** (seção 6) — o sub-agente DEVE criar e executar os testes especificados
|
|
72
71
|
- **User Stories Relacionadas** (campo na seção 1 - Identificação)
|
|
73
72
|
- O sub-agente deve consultar o SPEC_TECH em `docs/<nome-feature>/spec_tech.md` se necessário
|
|
74
73
|
- O sub-agente planeja a implementação em 3–7 bullets
|
|
75
74
|
- O sub-agente aplica as modificações no código
|
|
76
|
-
- O sub-agente
|
|
75
|
+
- O sub-agente cria e executa os testes definidos na seção 6
|
|
77
76
|
- O sub-agente garante que a mudança atende o "Aceite Técnico"
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
77
|
+
- **Após implementar, o sub-agente DEVE executar o Checklist Final (seção 8 da task)** e validar cada item:
|
|
78
|
+
- [ ] Código implementado conforme SPEC_TECH
|
|
79
|
+
- [ ] Testes unitários criados/atualizados
|
|
80
|
+
- [ ] Testes de integração criados/atualizados
|
|
81
|
+
- [ ] Aceite técnico atendido
|
|
82
|
+
- [ ] Revisada
|
|
83
|
+
- Se algum item do checklist NÃO estiver atendido, o sub-agente DEVE corrigir antes de reportar conclusão
|
|
84
|
+
- O sub-agente marca cada item como `[x]` no arquivo `docs/<nome-feature>/tasks/<ID>.md` ao confirmar
|
|
85
|
+
|
|
86
|
+
6. **Após o sub-agente concluir, VALIDE com o QA** (ver seção "Validação QA pós-implementação")
|
|
87
|
+
|
|
88
|
+
7. **Atualize a task individual** (após aprovação de AMBOS os gates):
|
|
89
|
+
- Marque Status como `Concluído` na seção 1 do arquivo `docs/<nome-feature>/tasks/<ID>.md`
|
|
90
|
+
- Confirme que o Checklist Final tem todos os items `[x]`
|
|
91
|
+
|
|
92
|
+
8. **Atualize o task_plan.md** (após aprovação de AMBOS os gates):
|
|
93
|
+
- Marque a task com Status `Concluído` na tabela de tasks
|
|
81
94
|
- Se houver bloqueios, marque como `Bloqueado` e anote o motivo
|
|
82
95
|
|
|
96
|
+
9. **Após TODAS as tasks concluídas, atualize os Critérios de Conclusão Geral (seção 7 do task_plan.md)**:
|
|
97
|
+
- Valide e marque cada item como `[x]`:
|
|
98
|
+
- [ ] Todas as tasks concluídas
|
|
99
|
+
- [ ] Objetivo técnico atingido
|
|
100
|
+
- [ ] Código compila sem erros — executar `CGO_ENABLED=1 go build ./...`
|
|
101
|
+
- [ ] Testes unitários passando — executar `CGO_ENABLED=1 go test ./... -v`
|
|
102
|
+
- [ ] Testes de integração passando (se aplicável)
|
|
103
|
+
- [ ] Testes E2E passando (se aplicável)
|
|
104
|
+
- Se algum critério NÃO for atendido, investigue e corrija antes de marcar
|
|
105
|
+
- Atualize o Status geral do task_plan.md para `Concluído`
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## Validação pós-implementação (QA + Tech Review)
|
|
110
|
+
|
|
111
|
+
Após CADA task ser implementada pelo sub-agente executor, voce DEVE validar a implementação em **dois gates obrigatórios** antes de marcar a task como concluída:
|
|
112
|
+
|
|
113
|
+
1. **Gate 1 — QA (qa-staff-engineer)**: validação funcional, testes, critérios de aceite
|
|
114
|
+
2. **Gate 2 — Tech Review (tech-review-conformance)**: conformidade arquitetural, padrões do projeto, requisitos técnicos
|
|
115
|
+
|
|
116
|
+
**Nenhuma task é considerada concluída sem aprovação de AMBOS os gates.**
|
|
117
|
+
|
|
118
|
+
### Fluxo de Validação
|
|
119
|
+
|
|
120
|
+
```
|
|
121
|
+
Executor (agent_name) implementa task
|
|
122
|
+
↓
|
|
123
|
+
┌─── GATE 1: qa-staff-engineer valida (VALIDAR_IMPLEMENTACAO)
|
|
124
|
+
│ ↓
|
|
125
|
+
│ ┌── APROVADO → avançar para Gate 2
|
|
126
|
+
│ ├── APROVADO_COM_OBSERVACOES (0 críticos) → avançar para Gate 2, registrar obs
|
|
127
|
+
│ ├── APROVADO_COM_OBSERVACOES (com críticos) → corrigir (tratar como REJEITADO)
|
|
128
|
+
│ └── REJEITADO → enviar correções ao executor
|
|
129
|
+
│ ↓
|
|
130
|
+
│ Executor corrige → QA re-valida (máx 3 tentativas)
|
|
131
|
+
│ ↓
|
|
132
|
+
│ Ainda rejeitado? → escalar ao usuário
|
|
133
|
+
│
|
|
134
|
+
└─── GATE 2: tech-review-conformance valida (após QA aprovado)
|
|
135
|
+
↓
|
|
136
|
+
┌── approved → task concluída, continuar
|
|
137
|
+
├── partial → enviar correções ao executor
|
|
138
|
+
└── rejected → enviar correções ao executor
|
|
139
|
+
↓
|
|
140
|
+
Executor corrige
|
|
141
|
+
↓
|
|
142
|
+
QA re-valida + Tech Review re-valida (máx 3 tentativas)
|
|
143
|
+
↓
|
|
144
|
+
Ainda rejeitado? → escalar ao usuário
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### Passo 1: Preparar a lista de arquivos para o QA
|
|
148
|
+
|
|
149
|
+
Após o executor concluir a implementação, monte a lista de `arquivos` que o QA deve ler:
|
|
150
|
+
|
|
151
|
+
- **Task implementada**: `docs/<nome-feature>/tasks/<ID>.md`
|
|
152
|
+
- **SPEC_TECH**: `docs/<nome-feature>/spec_tech.md`
|
|
153
|
+
- **PRD**: `docs/<nome-feature>/prd.md`
|
|
154
|
+
- **Regras do projeto**: `CLAUDE.md`, `.claude/rules/*.md`
|
|
155
|
+
- **Arquivos criados/modificados**: todos os arquivos que o executor criou ou modificou (extrair da seção 5 da task)
|
|
156
|
+
- **Arquivos de teste**: todos os arquivos `*_test.go` criados ou modificados pelo executor
|
|
157
|
+
- **Migrações**: se a task criou migrações
|
|
158
|
+
- **Queries SQLC**: se a task criou queries
|
|
159
|
+
|
|
160
|
+
### Passo 2: Preparar as instruções para o QA
|
|
161
|
+
|
|
162
|
+
Monte o campo `instrucoes` com:
|
|
163
|
+
|
|
164
|
+
1. **ID e nome da task**: para contexto
|
|
165
|
+
2. **Critérios de aceite técnico** da task (seção 4) — o QA deve validar CADA critério
|
|
166
|
+
3. **Testes definidos** na task (seção 6) — o QA deve executar os testes e verificar se passam
|
|
167
|
+
4. **Comando de teste**: `CGO_ENABLED=1 go test ./[pacote]/... -v` (ajustar ao pacote relevante)
|
|
168
|
+
5. Instrução explícita: "Execute os testes e valide a implementação contra os critérios de aceite"
|
|
169
|
+
|
|
170
|
+
### Passo 3: Disparar o subagente QA
|
|
171
|
+
|
|
172
|
+
Lance o subagente usando a ferramenta `Agent` com:
|
|
173
|
+
|
|
174
|
+
- **subagent_type**: `qa-staff-engineer`
|
|
175
|
+
- **description**: "QA validar task TN"
|
|
176
|
+
- **prompt**:
|
|
177
|
+
|
|
178
|
+
```
|
|
179
|
+
Voce foi invocado com os seguintes parametros:
|
|
180
|
+
|
|
181
|
+
1. **modo**: VALIDAR_IMPLEMENTACAO
|
|
182
|
+
2. **arquivos**: [lista de caminhos preparada no Passo 1]
|
|
183
|
+
3. **instrucoes**: [conteudo preparado no Passo 2]
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
### Passo 4: Interpretar o resultado do QA
|
|
187
|
+
|
|
188
|
+
O QA retorna um JSON com o campo `resumo.veredito`. Interprete assim:
|
|
189
|
+
|
|
190
|
+
| Veredito | Problemas Críticos | Ação |
|
|
191
|
+
|----------|-------------------|------|
|
|
192
|
+
| `APROVADO` | 0 | QA aprovado. **Avançar para Gate 2 (Tech Review)** |
|
|
193
|
+
| `APROVADO_COM_OBSERVACOES` | 0 | QA aprovado. Registrar observações. **Avançar para Gate 2 (Tech Review)** |
|
|
194
|
+
| `APROVADO_COM_OBSERVACOES` | > 0 | Tratar como REJEITADO — corrigir problemas críticos |
|
|
195
|
+
| `REJEITADO` | qualquer | Enviar ao executor para correção (Passo 5) |
|
|
196
|
+
|
|
197
|
+
### Passo 5: Loop de correção QA (quando REJEITADO)
|
|
198
|
+
|
|
199
|
+
Se o QA rejeitar a implementação:
|
|
200
|
+
|
|
201
|
+
1. **Extraia do JSON do QA**:
|
|
202
|
+
- `problemas.criticos[]` — cada item tem `titulo`, `descricao`, `arquivo`, `linha`, `correcao_sugerida`
|
|
203
|
+
- `problemas.altos[]` — mesma estrutura
|
|
204
|
+
- `testes_executados.detalhes_falhas[]` — testes que falharam
|
|
205
|
+
- `criterios_aceitacao[]` onde `status == "FALHOU"` ou `status == "PARCIAL"`
|
|
206
|
+
|
|
207
|
+
2. **Monte o prompt de correção** para o executor (agent_name):
|
|
208
|
+
|
|
209
|
+
```
|
|
210
|
+
A task [ID] foi REJEITADA pelo QA. Você deve corrigir os seguintes problemas:
|
|
211
|
+
|
|
212
|
+
## Problemas Críticos
|
|
213
|
+
[lista de problemas.criticos com titulo, descricao, arquivo, linha e correcao_sugerida]
|
|
214
|
+
|
|
215
|
+
## Problemas Altos
|
|
216
|
+
[lista de problemas.altos]
|
|
217
|
+
|
|
218
|
+
## Testes que Falharam
|
|
219
|
+
[lista de detalhes_falhas com nome do teste, erro e arquivo]
|
|
220
|
+
|
|
221
|
+
## Critérios de Aceite não Atendidos
|
|
222
|
+
[lista de criterios_aceitacao com status FALHOU ou PARCIAL, incluindo detalhes]
|
|
223
|
+
|
|
224
|
+
Corrija TODOS os problemas listados acima. Após corrigir, execute os testes novamente para garantir que passam.
|
|
225
|
+
|
|
226
|
+
Arquivos a corrigir:
|
|
227
|
+
[lista de arquivos dos problemas]
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
3. **Dispare o executor** com o prompt de correção
|
|
231
|
+
4. **Após a correção, re-valide** com o QA (voltar ao Passo 3)
|
|
232
|
+
5. **Limite máximo: 3 tentativas** de correção por task (este limite é compartilhado com o Tech Review — ver Passo 8)
|
|
233
|
+
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
### Passo 6: Preparar o contexto para o Tech Review
|
|
237
|
+
|
|
238
|
+
Após o QA aprovar, monte o contexto completo para o Tech Review:
|
|
239
|
+
|
|
240
|
+
1. **Da task** (`docs/<nome-feature>/tasks/<ID>.md`), extraia:
|
|
241
|
+
- **Objetivo da Task** (seção 2)
|
|
242
|
+
- **Descrição Detalhada** (seção 3)
|
|
243
|
+
- **Aceite Técnico** (seção 4) — o Tech Review DEVE validar CADA critério técnico
|
|
244
|
+
- **Arquivos Impactados** (seção 5) — 5.1 A Criar, 5.2 A Modificar, 5.3 De Referência
|
|
245
|
+
|
|
246
|
+
2. **Lista de arquivos para o Tech Review ler**:
|
|
247
|
+
- Todos os arquivos criados/modificados pelo executor (código de produção)
|
|
248
|
+
- Todos os arquivos de teste (`*_test.go`) criados/modificados
|
|
249
|
+
- Migrações criadas (se aplicável)
|
|
250
|
+
- Queries SQLC criadas (se aplicável)
|
|
251
|
+
- Arquivos de referência da seção 5.3 (para o reviewer comparar padrões)
|
|
252
|
+
|
|
253
|
+
### Passo 7: Disparar o Tech Review (Gate 2)
|
|
254
|
+
|
|
255
|
+
**Somente após o QA aprovar** (APROVADO ou APROVADO_COM_OBSERVACOES sem críticos), lance o subagente de revisão técnica usando a ferramenta `Agent` com:
|
|
256
|
+
|
|
257
|
+
- **subagent_type**: `tech-review-conformance`
|
|
258
|
+
- **description**: "Tech Review task TN"
|
|
259
|
+
- **prompt**:
|
|
260
|
+
|
|
261
|
+
```
|
|
262
|
+
Realize a revisão técnica da task [ID] - [Nome da Task].
|
|
263
|
+
|
|
264
|
+
## Contexto da Task
|
|
265
|
+
- **Objetivo**: [conteúdo da seção 2 da task]
|
|
266
|
+
- **Descrição Detalhada**: [conteúdo da seção 3 da task]
|
|
267
|
+
|
|
268
|
+
## Aceite Técnico (VALIDAR CADA ITEM)
|
|
269
|
+
[conteúdo completo da seção 4 da task — cada critério deve ser validado]
|
|
270
|
+
|
|
271
|
+
## Documentos de Referência (ler se necessário para contexto)
|
|
272
|
+
- Task completa: docs/<nome-feature>/tasks/<ID>.md
|
|
273
|
+
- SPEC_TECH: docs/<nome-feature>/spec_tech.md
|
|
274
|
+
- PRD: docs/<nome-feature>/prd.md
|
|
275
|
+
|
|
276
|
+
## Arquivos Implementados (DEVE LER TODOS)
|
|
277
|
+
[lista de todos os arquivos criados/modificados pelo executor]
|
|
278
|
+
|
|
279
|
+
## Arquivos de Teste (DEVE LER TODOS)
|
|
280
|
+
[lista de arquivos *_test.go criados/modificados]
|
|
281
|
+
|
|
282
|
+
## Migrações Criadas
|
|
283
|
+
[lista de arquivos de migração criados, ou "Nenhuma" se não aplicável]
|
|
284
|
+
|
|
285
|
+
## Queries SQLC Criadas
|
|
286
|
+
[lista de arquivos .sql de queries criados, ou "Nenhuma" se não aplicável]
|
|
287
|
+
|
|
288
|
+
## Arquivos de Referência (para comparação de padrões)
|
|
289
|
+
[lista de arquivos da seção 5.3 da task — o reviewer deve comparar a implementação com estes padrões existentes]
|
|
290
|
+
|
|
291
|
+
Leia TODOS os arquivos listados acima e valide:
|
|
292
|
+
1. Conformidade arquitetural (camadas, fluxo de dependência, separação de responsabilidades)
|
|
293
|
+
2. Aderência aos padrões do projeto (convenções, nomenclatura, estrutura)
|
|
294
|
+
3. Cada item do Aceite Técnico listado acima
|
|
295
|
+
4. Consistência com padrões existentes (comparar com arquivos de referência)
|
|
296
|
+
5. Riscos técnicos (débito técnico, testabilidade, robustez)
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
### Passo 8: Interpretar o resultado do Tech Review
|
|
300
|
+
|
|
301
|
+
O Tech Review retorna um JSON com o campo `status`. Interprete assim:
|
|
302
|
+
|
|
303
|
+
| Status | Ação |
|
|
304
|
+
|--------|------|
|
|
305
|
+
| `approved` | Task concluída. Marcar como `Concluído` no task_plan.md |
|
|
306
|
+
| `partial` | Há problemas `high` que precisam correção. Enviar ao executor (Passo 8) |
|
|
307
|
+
| `rejected` | Há problemas `critical`. Enviar ao executor (Passo 8) |
|
|
308
|
+
|
|
309
|
+
### Passo 9: Loop de correção Tech Review (quando partial ou rejected)
|
|
310
|
+
|
|
311
|
+
Se o Tech Review reprovar a implementação:
|
|
312
|
+
|
|
313
|
+
1. **Extraia do JSON do Tech Review**:
|
|
314
|
+
- `problems[]` — cada item tem `id`, `severity`, `category`, `title`, `description`, `expected`, `impact`, `suggested_fix`
|
|
315
|
+
- Foque nos problemas com severidade `critical` e `high`
|
|
316
|
+
|
|
317
|
+
2. **Monte o prompt de correção** para o executor (agent_name):
|
|
318
|
+
|
|
319
|
+
```
|
|
320
|
+
A task [ID] foi REPROVADA pela Revisão Técnica. Você deve corrigir os seguintes problemas:
|
|
321
|
+
|
|
322
|
+
## Problemas Encontrados
|
|
323
|
+
[Para cada problema do array problems com severity critical ou high:]
|
|
324
|
+
- **[P1] (critical/high)**: [title]
|
|
325
|
+
- Descrição: [description]
|
|
326
|
+
- Esperado: [expected]
|
|
327
|
+
- Impacto: [impact]
|
|
328
|
+
- Correção sugerida: [suggested_fix]
|
|
329
|
+
|
|
330
|
+
Corrija TODOS os problemas listados acima. Mantenha a conformidade com a arquitetura e padrões do projeto.
|
|
331
|
+
|
|
332
|
+
Arquivos a corrigir:
|
|
333
|
+
[lista de arquivos dos problemas]
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
3. **Dispare o executor** com o prompt de correção
|
|
337
|
+
4. **Após a correção, re-valide com AMBOS os gates**:
|
|
338
|
+
- Primeiro o QA (voltar ao Passo 3) — para garantir que a correção não quebrou nada
|
|
339
|
+
- Se QA aprovar, o Tech Review (voltar ao Passo 7)
|
|
340
|
+
5. **Limite máximo: 3 tentativas TOTAIS** de correção por task (compartilhado entre QA e Tech Review)
|
|
341
|
+
|
|
342
|
+
### Passo 10: Escalar ao usuário (após 3 tentativas)
|
|
343
|
+
|
|
344
|
+
Se após 3 tentativas totais de correção o QA ou Tech Review ainda reprovar:
|
|
345
|
+
|
|
346
|
+
1. **NÃO marque a task como concluída**
|
|
347
|
+
2. **Marque como `Bloqueado`** no task_plan.md
|
|
348
|
+
3. **Informe ao usuário** com o relatório completo:
|
|
349
|
+
- Qual task está bloqueada
|
|
350
|
+
- Quantas tentativas foram feitas
|
|
351
|
+
- Quais problemas persistem (extrair do último JSON do QA e/ou Tech Review)
|
|
352
|
+
- Qual gate está bloqueando (QA, Tech Review ou ambos)
|
|
353
|
+
- Sugestão de ação
|
|
354
|
+
4. **Pergunte ao usuário** como proceder antes de continuar
|
|
355
|
+
|
|
356
|
+
### Regras da Validação (QA + Tech Review)
|
|
357
|
+
|
|
358
|
+
- **Toda task que modifica código** DEVE passar por ambos os gates (QA + Tech Review) — sem exceção
|
|
359
|
+
- **Os gates são SEQUENCIAIS por task**: primeiro QA (Gate 1), depois Tech Review (Gate 2) — NUNCA em paralelo
|
|
360
|
+
- **NUNCA lance QA e Tech Review ao mesmo tempo** para a mesma task ou em lotes paralelos separados
|
|
361
|
+
- Tasks que não envolvem código (ex: documentação) podem ser marcadas como concluídas sem validação
|
|
362
|
+
- O QA deve **executar os testes** — não apenas revisar o código
|
|
363
|
+
- O Tech Review valida **conformidade arquitetural** — não repete a validação funcional do QA
|
|
364
|
+
- Se o QA encontrar problemas em arquivos NÃO relacionados à task, registre como observação mas NÃO rejeite por isso
|
|
365
|
+
- O executor NÃO deve modificar arquivos fora do escopo da task durante a correção
|
|
366
|
+
- Cada tentativa de correção gera uma nova validação completa de AMBOS os gates (não incremental) — sempre começando pelo QA
|
|
367
|
+
- O contador de tentativas é **compartilhado**: se a 1ª tentativa foi correção de QA e a 2ª foi correção de Tech Review, restam 1 tentativa
|
|
368
|
+
|
|
83
369
|
---
|
|
84
370
|
|
|
85
371
|
## Regras
|
|
86
372
|
|
|
87
373
|
- **SEMPRE delegar** para sub-agentes — o coordenador nunca implementa diretamente
|
|
88
374
|
- **Priorizar paralelismo** — se múltiplas tasks podem rodar juntas, crie sub-agentes em paralelo
|
|
375
|
+
- **SEMPRE validar com QA** após cada task — nenhuma task avança sem aprovação do QA
|
|
376
|
+
- **SEMPRE validar com Tech Review** após aprovação do QA — nenhuma task é concluída sem aprovação do Tech Review
|
|
89
377
|
- **Não alterar** PRD, SPEC_TECH ou criar novas tasks sem o usuário pedir
|
|
90
378
|
- Sempre descreva claramente o progresso e o resultado de cada task
|
|
91
379
|
- Tasks com dependências devem aguardar a conclusão das dependências antes de serem delegadas
|
|
@@ -115,19 +403,40 @@ Você SEMPRE terá acesso a:
|
|
|
115
403
|
- Se a task especificar outro sub-agente (ex: `@doc_agent`), use o especificado na task
|
|
116
404
|
- **Exemplos de agentes**: `flutter-dev-agent`, `go-dev-agent`, `react-dev-agent`, `python-dev-agent`
|
|
117
405
|
|
|
118
|
-
### Fluxo de Delegação
|
|
406
|
+
### Fluxo de Delegação (com Validação QA + Tech Review SEQUENCIAL)
|
|
407
|
+
|
|
408
|
+
**IMPORTANTE**: Os gates QA e Tech Review são **SEQUENCIAIS por task**, nunca em paralelo.
|
|
409
|
+
Para cada task individual: primeiro QA → se aprovado → Tech Review. Se Tech Review reprovar:
|
|
410
|
+
corrigir → QA novamente → se aprovado → Tech Review novamente.
|
|
411
|
+
|
|
119
412
|
```
|
|
120
|
-
Coordenador Sub-agentes
|
|
121
|
-
│
|
|
122
|
-
├─── Identifica tasks prontas
|
|
123
|
-
│
|
|
124
|
-
├─── [PARALELO] Cria N sub-agentes ──►├─► agent_name (T1)
|
|
125
|
-
│ para tasks paralelizáveis ├─► agent_name (T2)
|
|
126
|
-
│ └─► agent_name (T3)
|
|
413
|
+
Coordenador Sub-agentes
|
|
414
|
+
│
|
|
415
|
+
├─── Identifica tasks prontas
|
|
416
|
+
│
|
|
417
|
+
├─── [PARALELO] Cria N sub-agentes ──►├─► agent_name (T1) ──► implementa
|
|
418
|
+
│ para tasks paralelizáveis ├─► agent_name (T2) ──► implementa
|
|
419
|
+
│ └─► agent_name (T3) ──► implementa
|
|
127
420
|
│ │
|
|
128
421
|
◄────────── Aguarda conclusão ────────────┘
|
|
129
422
|
│
|
|
130
|
-
├───
|
|
423
|
+
├─── Para CADA task (SEQUENCIAL por task):
|
|
424
|
+
│ │
|
|
425
|
+
│ ├── T1: GATE 1 → qa-staff-engineer (T1)
|
|
426
|
+
│ │ ├── APROVADO → GATE 2 → tech-review-conformance (T1)
|
|
427
|
+
│ │ │ ├── approved → T1 Concluído
|
|
428
|
+
│ │ │ └── partial/rejected → executor corrige T1
|
|
429
|
+
│ │ │ → volta ao GATE 1 (QA re-valida)
|
|
430
|
+
│ │ └── REJEITADO → executor corrige T1
|
|
431
|
+
│ │ → volta ao GATE 1 (QA re-valida) (máx 3x total)
|
|
432
|
+
│ │
|
|
433
|
+
│ ├── T2: GATE 1 → qa-staff-engineer (T2)
|
|
434
|
+
│ │ ├── APROVADO → GATE 2 → tech-review-conformance (T2)
|
|
435
|
+
│ │ │ └── ... (mesmo fluxo)
|
|
436
|
+
│ │ └── REJEITADO → ... (mesmo fluxo)
|
|
437
|
+
│ │
|
|
438
|
+
│ └── T3: (mesmo fluxo sequencial)
|
|
439
|
+
│
|
|
131
440
|
├─── Atualiza task_plan.md
|
|
132
441
|
│
|
|
133
442
|
└─── Próximo grupo de tasks...
|
|
@@ -138,10 +447,12 @@ Coordenador Sub-agentes (agent_name)
|
|
|
138
447
|
## Relatório Final
|
|
139
448
|
|
|
140
449
|
Ao final, produza uma saída em formato Markdown com as seções:
|
|
141
|
-
-
|
|
142
|
-
-
|
|
143
|
-
-
|
|
144
|
-
-
|
|
450
|
+
- **Tasks Concluídas** (lista com ID, nome, arquivos modificados, veredito QA e veredito Tech Review)
|
|
451
|
+
- **Validação QA** (resumo por task: veredito, nota de qualidade, tentativas de correção)
|
|
452
|
+
- **Validação Tech Review** (resumo por task: status, problemas encontrados, tentativas de correção)
|
|
453
|
+
- **Tasks Bloqueadas** (se houver, com motivo, gate bloqueante e problemas pendentes)
|
|
454
|
+
- **Observações do QA e Tech Review** (observações de tasks aprovadas com observações)
|
|
455
|
+
- **Relatório Consolidado** (resumo geral + aceites técnicos atendidos + conformidade arquitetural)
|
|
145
456
|
|
|
146
457
|
---
|
|
147
458
|
|
|
@@ -149,18 +460,55 @@ Ao final, produza uma saída em formato Markdown com as seções:
|
|
|
149
460
|
|
|
150
461
|
Quero que você atue como um **coordenador de sub-agentes** guiado pelo framework de desenvolvimento assistido por IA.
|
|
151
462
|
|
|
152
|
-
1. Extraia **
|
|
153
|
-
2. Leia o `task_plan.md`
|
|
463
|
+
1. Extraia **task_plan_path** e **agent_name** de `$ARGUMENTS`
|
|
464
|
+
2. Leia o `task_plan.md` fornecido. Extraia os caminhos de **SPEC_TECH** e **PRD** da seção 1 (Identificação)
|
|
154
465
|
3. Consulte a tabela de **Rastreabilidade User Stories -> Tasks** (seção 5 do task_plan) para entender a cobertura
|
|
155
466
|
4. Descubra quais tasks estão prontas para execução (respeitando dependências)
|
|
156
467
|
5. **DELEGUE cada task para o sub-agente (agent_name)** — nunca execute diretamente
|
|
157
|
-
6. Para cada task, carregue `
|
|
158
|
-
7. O sub-agente deve
|
|
159
|
-
8. **
|
|
160
|
-
9.
|
|
161
|
-
10.
|
|
162
|
-
11.
|
|
163
|
-
|
|
164
|
-
**
|
|
468
|
+
6. Para cada task, carregue `[diretório-base]/tasks/<ID>.md` e passe as seções relevantes ao sub-agente
|
|
469
|
+
7. O sub-agente deve criar e executar os testes definidos na seção **Testes** (6.1 a 6.4) de cada task
|
|
470
|
+
8. **Após cada task ser implementada, VALIDE com qa-staff-engineer** (modo VALIDAR_IMPLEMENTACAO) — Gate 1
|
|
471
|
+
9. **Se o QA rejeitar, envie as correções de volta ao executor** (máx 3 tentativas totais)
|
|
472
|
+
10. **Após aprovação do QA, VALIDE com tech-review-conformance** — Gate 2
|
|
473
|
+
11. **Se o Tech Review reprovar, envie as correções de volta ao executor** e re-valide com AMBOS os gates
|
|
474
|
+
12. **Se após 3 tentativas totais o QA ou Tech Review ainda reprovar, ESCALE ao usuário** — NÃO continue
|
|
475
|
+
13. **Maximize o paralelismo**: crie múltiplos sub-agentes simultaneamente sempre que possível
|
|
476
|
+
14. Atualize o plano com os novos status (somente após aprovação de AMBOS os gates)
|
|
477
|
+
15. Reporte o que foi feito em um relatório estruturado incluindo vereditos do QA e Tech Review
|
|
478
|
+
|
|
479
|
+
**Lembre-se**: Você é o orquestrador, não o executor. Toda implementação é feita por sub-agentes usando o agente especificado nos argumentos. Validação funcional é feita pelo qa-staff-engineer. Validação técnica é feita pelo tech-review-conformance. Nenhuma task é concluída sem aprovação de AMBOS os gates. **Os gates são SEQUENCIAIS por task**: primeiro QA, depois Tech Review — NUNCA em paralelo. Se Tech Review reprovar, corrija e volte ao QA antes de rodar Tech Review novamente.
|
|
480
|
+
|
|
481
|
+
---
|
|
482
|
+
|
|
483
|
+
## Estado do Pipeline (sdd_state.yaml)
|
|
484
|
+
|
|
485
|
+
Ao iniciar a execucao, atualize o `sdd_state.yaml` no diretorio base da feature:
|
|
486
|
+
|
|
487
|
+
```yaml
|
|
488
|
+
current_step: execution
|
|
489
|
+
steps:
|
|
490
|
+
execution:
|
|
491
|
+
status: in_progress
|
|
492
|
+
tasks_completed: 0
|
|
493
|
+
tasks_total: <N>
|
|
494
|
+
```
|
|
495
|
+
|
|
496
|
+
A cada task concluida (aprovada por QA + Tech Review), atualize `tasks_completed`.
|
|
497
|
+
|
|
498
|
+
Ao finalizar todas as tasks:
|
|
499
|
+
|
|
500
|
+
```yaml
|
|
501
|
+
current_step: execution
|
|
502
|
+
steps:
|
|
503
|
+
execution:
|
|
504
|
+
status: completed
|
|
505
|
+
tasks_completed: <N>
|
|
506
|
+
tasks_total: <N>
|
|
507
|
+
summary: "<N/N tasks concluidas>. <bloqueadas se houver>"
|
|
508
|
+
```
|
|
509
|
+
|
|
510
|
+
Se o `sdd_state.yaml` nao existir, nao crie — o generate-prd e responsavel por criar.
|
|
511
|
+
|
|
512
|
+
---
|
|
165
513
|
|
|
166
514
|
$ARGUMENTS
|