adi_dev_workflow 1.3.0 → 1.4.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/frameworks/commands/ministack/generate-tasks.md +212 -212
- package/frameworks/commands/sdd/generate-task-plan.md +4 -4
- package/frameworks/commands/sdd/generate-tech-direction.md +2 -2
- package/frameworks/commands/sdd/generate-tech-spec.md +4 -4
- package/frameworks/commands/sdd/generate-tests.md +171 -39
- package/frameworks/config/ai-framework-config.yaml +2 -2
- package/frameworks/skills/ministack-tasks-expert/SKILL.md +115 -104
- package/frameworks/skills/ministack-tech-direction-expert/SKILL.md +21 -6
- package/frameworks/skills/prompt-engineer-expert/SKILL.md +10 -7
- package/frameworks/skills/sdd-tech-direction-expert/SKILL.md +21 -6
- package/frameworks/skills/sdd-tech-spec-expert/SKILL.md +23 -7
- package/package.json +1 -1
- package/src/cli.js +27 -2
- package/src/installer.js +185 -106
- package/frameworks/agents/qa-validation-expert.md +0 -458
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/benchmark.json +0 -99
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/benchmark.md +0 -64
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/eval_metadata.json +0 -12
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/grading.json +0 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/outputs/response.md +0 -134
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/outputs/transcript.md +0 -68
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/timing.json +0 -5
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/grading.json +0 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/outputs/response.md +0 -525
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/outputs/transcript.md +0 -30
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/timing.json +0 -5
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/eval_metadata.json +0 -12
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/grading.json +0 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/outputs/response.md +0 -1126
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/outputs/transcript.md +0 -131
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/timing.json +0 -5
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/grading.json +0 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/outputs/response.md +0 -452
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/outputs/transcript.md +0 -78
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/timing.json +0 -5
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/eval_metadata.json +0 -12
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/grading.json +0 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/outputs/response.md +0 -101
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/outputs/transcript.md +0 -133
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/timing.json +0 -5
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/grading.json +0 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/outputs/response.md +0 -248
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/outputs/transcript.md +0 -49
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/timing.json +0 -5
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/review.html +0 -1325
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/benchmark.json +0 -94
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/benchmark.md +0 -67
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/eval_metadata.json +0 -12
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/grading.json +0 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/outputs/response.md +0 -117
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/outputs/transcript.md +0 -91
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/timing.json +0 -1
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/grading.json +0 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/outputs/response.md +0 -694
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/outputs/transcript.md +0 -45
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/timing.json +0 -1
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/eval_metadata.json +0 -12
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/grading.json +0 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/outputs/response.md +0 -1087
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/outputs/transcript.md +0 -124
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/timing.json +0 -1
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/grading.json +0 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/outputs/response.md +0 -458
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/outputs/transcript.md +0 -84
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/timing.json +0 -1
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/eval_metadata.json +0 -12
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/grading.json +0 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/outputs/response.md +0 -70
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/outputs/transcript.md +0 -148
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/timing.json +0 -1
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/grading.json +0 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/outputs/response.md +0 -249
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/outputs/transcript.md +0 -80
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/timing.json +0 -1
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/review.html +0 -1325
|
@@ -1,39 +1,171 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: "Gera estrategia de testes
|
|
3
|
-
argument-hint: "<spec_tech.md ex: docs/feature-user/v1/spec_tech.md> ou <task ex: docs/feature-user/v1/tasks/T1.md>"
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
> **Paths**: Leia `.claude/config/ai-framework-config.yaml` secao `sdd` antes de salvar artefatos.
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
## Contexto
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
## Modos de Uso
|
|
15
|
-
|
|
16
|
-
### Modo 1: Estrategia completa para uma feature
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
1
|
+
---
|
|
2
|
+
description: "Gera estrategia de testes usando o agente qa-staff-engineer para feature/task do SDD. Param: caminho do spec_tech.md ou arquivo de task"
|
|
3
|
+
argument-hint: "<spec_tech.md ex: docs/specs/feature-user/v1/spec_tech.md> ou <task ex: docs/specs/feature-user/v1/tasks/T1.md>"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
> **Paths**: Leia `.claude/config/ai-framework-config.yaml` secao `sdd` antes de salvar artefatos. O path real de cada artefato vem do config (`docs/specs/{feature}/{version}/...`).
|
|
7
|
+
|
|
8
|
+
Este comando delega a geracao de testes ao agente **`qa-staff-engineer`**. Voce (comando orquestrador) prepara a entrada, dispara o agente, converte o JSON retornado em markdown tabular e integra ao arquivo destino.
|
|
9
|
+
|
|
10
|
+
## Contexto
|
|
11
|
+
|
|
12
|
+
O comando atua como orquestrador — o **qa-staff-engineer** (definido em `.claude/agents/qa-staff-engineer.md`) e quem gera os casos de teste de alto valor como QA Engineer Senior / SDET.
|
|
13
|
+
|
|
14
|
+
## Modos de Uso
|
|
15
|
+
|
|
16
|
+
### Modo 1: Estrategia completa para uma feature (SPEC_TECH)
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
/sdd:generate-tests docs/specs/auth-oauth2/v1/spec_tech.md
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Preenche a **secao 14 do SPEC_TECH** (unitarios, integracao, e2e, cenarios de erro).
|
|
23
|
+
|
|
24
|
+
### Modo 2: Testes para uma task especifica
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
/sdd:generate-tests docs/specs/auth-oauth2/v1/tasks/T1.md
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Preenche a **secao 6 da task individual** (unitarios, integracao, e2e, cenarios de erro).
|
|
31
|
+
|
|
32
|
+
## Processo Orquestrado
|
|
33
|
+
|
|
34
|
+
### Passo 1: Identificar o alvo
|
|
35
|
+
|
|
36
|
+
A partir do `$ARGUMENTS`, determine:
|
|
37
|
+
|
|
38
|
+
- Se e um `spec_tech.md` → alvo e a **secao 14 do SPEC_TECH**
|
|
39
|
+
- Se e uma `tasks/T[N].md` → alvo e a **secao 6 da task**
|
|
40
|
+
|
|
41
|
+
### Passo 2: Preparar a lista de arquivos
|
|
42
|
+
|
|
43
|
+
Monte a lista de `arquivos` que o agente deve ler:
|
|
44
|
+
|
|
45
|
+
- **SPEC_TECH**: `docs/specs/[nome-feature]/[versao]/spec_tech.md`
|
|
46
|
+
- **PRD**: `docs/specs/[nome-feature]/[versao]/prd.md`
|
|
47
|
+
- **Task alvo** (modo 2): `docs/specs/[nome-feature]/[versao]/tasks/T[N].md`
|
|
48
|
+
- **Regras do projeto**: `CLAUDE.md`, `.claude/rules/*.md`
|
|
49
|
+
- **Testes existentes** relacionados aos componentes impactados
|
|
50
|
+
- **Codigo-fonte existente** listado na secao 15 do SPEC_TECH (modo 1) ou secao 5 da task (modo 2)
|
|
51
|
+
|
|
52
|
+
### Passo 3: Preparar as instrucoes
|
|
53
|
+
|
|
54
|
+
Monte o campo `instrucoes` com:
|
|
55
|
+
|
|
56
|
+
1. O **escopo** do que testar (feature inteira ou task especifica)
|
|
57
|
+
2. Os **criterios de aceite** (CA-XX do PRD ou da task)
|
|
58
|
+
3. Os **arquivos impactados**
|
|
59
|
+
4. O **tipo** (feature completa, task de handler, task de service, etc.)
|
|
60
|
+
5. Contexto adicional relevante
|
|
61
|
+
|
|
62
|
+
### Passo 4: Disparar o agente qa-staff-engineer
|
|
63
|
+
|
|
64
|
+
Lance o agente usando a ferramenta `Agent` com:
|
|
65
|
+
|
|
66
|
+
- **subagent_type**: `qa-staff-engineer`
|
|
67
|
+
- **description**: "QA gerar testes [feature ou TN]"
|
|
68
|
+
- **prompt**: Monte o prompt com os 3 parametros obrigatorios:
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
Voce foi invocado com os seguintes parametros:
|
|
72
|
+
|
|
73
|
+
1. **modo**: GERAR_TESTES
|
|
74
|
+
2. **arquivos**: [lista de caminhos dos arquivos preparados no Passo 2]
|
|
75
|
+
3. **instrucoes**: [conteudo preparado no Passo 3]
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Passo 5: Converter JSON em markdown tabular
|
|
79
|
+
|
|
80
|
+
O agente retorna um JSON com `casos_teste[]`. Converta para o formato tabular da secao destino usando o mapeamento:
|
|
81
|
+
|
|
82
|
+
| Campo `tipo` no JSON | Subsecao destino |
|
|
83
|
+
|---------------------|-----------------|
|
|
84
|
+
| `UNITARIO` | **14.1 / 6.1 — Testes Unitarios** |
|
|
85
|
+
| `INTEGRACAO` | **14.2 / 6.2 — Testes de Integracao** |
|
|
86
|
+
| `E2E` | **14.3 / 6.3 — Testes E2E** |
|
|
87
|
+
| `SEGURANCA` / `PERFORMANCE` | **14.4 / 6.4 — Cenarios de Erro** |
|
|
88
|
+
|
|
89
|
+
Alem disso, inclua em 14.4/6.4 todo `casos_teste` com `categoria` igual a `tratamento_erro`, `caso_extremo` ou `fronteira`.
|
|
90
|
+
|
|
91
|
+
#### Formato tabular — Testes Unitarios
|
|
92
|
+
|
|
93
|
+
```markdown
|
|
94
|
+
#### [Camada]: [NomeComponente] (`arquivo_test.go`)
|
|
95
|
+
|
|
96
|
+
Mock: [interfaces mockadas]
|
|
97
|
+
|
|
98
|
+
| CT | Teste | CA | Objetivo | Input | Expected | Mock |
|
|
99
|
+
|----|-------|----|----------|-------|----------|------|
|
|
100
|
+
| CT-XX | TestMetodo_Cenario | CA-XX | Verificar que [comportamento] quando [condicao] | dados entrada | resultado esperado | dependencias mockadas |
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
#### Formato tabular — Testes de Integracao
|
|
104
|
+
|
|
105
|
+
```markdown
|
|
106
|
+
#### [CamadaA + CamadaB] (`arquivo_test.go`)
|
|
107
|
+
|
|
108
|
+
Setup: [banco in-memory, migracoes, fixtures]
|
|
109
|
+
|
|
110
|
+
| CT | Teste | CA | Objetivo | Fluxo | Validacao |
|
|
111
|
+
|----|-------|----|----------|-------|-----------|
|
|
112
|
+
| CT-XX | TestIntegracao_Cenario | CA-XX | Verificar que [comportamento] quando [condicao] | Passos do fluxo | Assertions esperadas |
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
#### Formato descritivo — Testes E2E
|
|
116
|
+
|
|
117
|
+
```markdown
|
|
118
|
+
#### Fluxo: [Nome do Fluxo] (CT-XX)
|
|
119
|
+
- **CA**: CA-XX, CA-YY
|
|
120
|
+
- **Objetivo**: (1 frase descrevendo o que este fluxo E2E valida de ponta a ponta)
|
|
121
|
+
- **Pre-condicoes**: (estado inicial do sistema)
|
|
122
|
+
- **Passos**:
|
|
123
|
+
1. Passo 1
|
|
124
|
+
2. Passo 2
|
|
125
|
+
- **Validacoes**: (assertions sobre dados e estado final)
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
#### Formato tabular — Cenarios de Erro
|
|
129
|
+
|
|
130
|
+
```markdown
|
|
131
|
+
| Cenario | CA | Objetivo | Trigger | Codigo/Status | Log Esperado |
|
|
132
|
+
|---------|----|----------|---------|---------------|-------------|
|
|
133
|
+
| Descricao do cenario | CA-XX | Verificar que [constraint] impede [operacao] | Acao trigger | Codigo erro | Mensagem log |
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### Passo 6: Integrar ao arquivo destino
|
|
137
|
+
|
|
138
|
+
1. Leia o arquivo destino (`spec_tech.md` ou `tasks/T[N].md`)
|
|
139
|
+
2. Substitua a secao de testes (14 ou 6) pelo conteudo convertido
|
|
140
|
+
3. Valide coerencia: componentes testados devem existir em secoes anteriores; testes devem cobrir os criterios de aceite
|
|
141
|
+
4. Salve o arquivo
|
|
142
|
+
|
|
143
|
+
### Passo 7: Apresentar ao usuario
|
|
144
|
+
|
|
145
|
+
Apresente o resumo ao usuario (nao o conteudo completo):
|
|
146
|
+
|
|
147
|
+
```
|
|
148
|
+
Testes gerados para: [feature ou TN]
|
|
149
|
+
Total: [N] casos de teste
|
|
150
|
+
- Unitarios: [n]
|
|
151
|
+
- Integracao: [n]
|
|
152
|
+
- E2E: [n]
|
|
153
|
+
- Cenarios de erro: [n]
|
|
154
|
+
|
|
155
|
+
Arquivo atualizado: [path]
|
|
156
|
+
|
|
157
|
+
Aprova essa secao de testes? (sim/nao)
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
## Regras Adicionais
|
|
161
|
+
|
|
162
|
+
- **Claude Code**: use a ferramenta `AskUserQuestion` para esclarecer duvidas com o usuario
|
|
163
|
+
- **NUNCA** gere testes genericos — cada teste deve ter cenario especifico e verificavel
|
|
164
|
+
- **SEMPRE** mapeie criterios de aceite (CA-XX) para testes
|
|
165
|
+
- **SEMPRE** considere cenarios de erro, boundary values e edge cases
|
|
166
|
+
- Todo fluxo de sucesso deve ter **pelo menos 2 cenarios de falha** correspondentes
|
|
167
|
+
- Para tasks sem codigo (documentacao, configuracao): preencha "N/A — task nao envolve codigo testavel"
|
|
168
|
+
|
|
169
|
+
## Entrada
|
|
170
|
+
|
|
171
|
+
$ARGUMENTS
|
|
@@ -95,11 +95,11 @@ ministack:
|
|
|
95
95
|
# --------------------------------------------------------------------------
|
|
96
96
|
taskcard:
|
|
97
97
|
task_plan:
|
|
98
|
-
path: "docs/specs/{feature}/{version}/
|
|
98
|
+
path: "docs/specs/{feature}/{version}/task_plan.md"
|
|
99
99
|
generated_by: "taskcard:generate-taskcard"
|
|
100
100
|
|
|
101
101
|
tasks:
|
|
102
|
-
dir: "docs/specs/{feature}/{version}/"
|
|
102
|
+
dir: "docs/specs/{feature}/{version}/tasks/"
|
|
103
103
|
pattern: "task-{nn}-{slug}.md"
|
|
104
104
|
generated_by: "taskcard:generate-taskcard"
|
|
105
105
|
|
|
@@ -1,15 +1,31 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ministack-tasks-expert
|
|
3
|
-
description: Especialista em
|
|
4
|
-
argument-hint: [
|
|
3
|
+
description: Especialista em geração de TASKS do framework miniStack. Atua como Engenheiro de Software Sênior decompondo SCOPE em tasks atômicas e executáveis.
|
|
4
|
+
argument-hint: [caminho do intent.md + caminho do scope.md]
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Você é um **Engenheiro de Software Sênior** que decompõe SCOPE aprovado em tasks atômicas e executáveis.
|
|
8
8
|
|
|
9
9
|
Você domina completamente o framework miniStack e seu foco é **EXCLUSIVAMENTE** na geração de TASKS — definindo COMO EXECUTAR a implementação em unidades atômicas de trabalho.
|
|
10
10
|
|
|
11
11
|
---
|
|
12
12
|
|
|
13
|
+
# Paths dos Artefatos
|
|
14
|
+
|
|
15
|
+
> **OBRIGATÓRIO**: Antes de salvar qualquer artefato, leia `.claude/config/ai-framework-config.yaml` seção `ministack` e use os paths ali definidos.
|
|
16
|
+
|
|
17
|
+
Paths definidos no config (para referência):
|
|
18
|
+
|
|
19
|
+
| Artefato | Path |
|
|
20
|
+
|----------|------|
|
|
21
|
+
| task_plan | `docs/specs/{feature}/{version}/task_plan.md` |
|
|
22
|
+
| tasks (dir) | `docs/specs/{feature}/{version}/tasks/` |
|
|
23
|
+
| tasks (arquivo) | `docs/specs/{feature}/{version}/tasks/T{n}.md` |
|
|
24
|
+
|
|
25
|
+
Substitua `{feature}` pelo nome da feature em kebab-case e `{version}` pela versão (ex: `v1`) identificados a partir do path da INTENT/SCOPE recebido como argumento.
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
13
29
|
# Regra de Acentuação
|
|
14
30
|
|
|
15
31
|
Todo artefato gerado por esta skill é um documento em português brasileiro. Todo conteúdo textual (títulos, descrições, instruções, regras, mensagens) deve usar acentuação correta do pt-BR:
|
|
@@ -24,178 +40,173 @@ Apenas nomes de código (funções, variáveis, structs, pacotes) permanecem sem
|
|
|
24
40
|
|
|
25
41
|
# Framework miniStack — Especialista TASKS
|
|
26
42
|
|
|
27
|
-
##
|
|
43
|
+
## Visão Geral
|
|
28
44
|
|
|
29
|
-
**miniStack**
|
|
45
|
+
**miniStack** é um framework estruturado para decomposição e execução de features de forma colaborativa, baseado em documentação clara com **3 etapas principais**: INTENT, SCOPE e TASKS.
|
|
30
46
|
|
|
31
47
|
### Fluxo Completo
|
|
32
48
|
|
|
33
49
|
```
|
|
34
|
-
|
|
50
|
+
Descrição da Feature
|
|
35
51
|
|
|
|
36
|
-
/generate-intent
|
|
52
|
+
/generate-intent (ministack-intent-expert)
|
|
37
53
|
| (INTENT aprovada)
|
|
38
|
-
/generate-scope
|
|
54
|
+
/generate-scope (ministack-scope-expert)
|
|
39
55
|
| (SCOPE aprovado)
|
|
40
|
-
/generate-tasks
|
|
56
|
+
/generate-tasks <-- você está aqui (ministack-tasks-expert)
|
|
41
57
|
| (TASKS aprovadas)
|
|
42
|
-
/run-ministack-tasks
|
|
58
|
+
/run-ministack-tasks (comando orquestrador)
|
|
43
59
|
|
|
|
44
60
|
Feature Implementada
|
|
45
61
|
```
|
|
46
62
|
|
|
47
|
-
O TASKS Expert responde: **COMO decompor o SCOPE em unidades
|
|
63
|
+
O TASKS Expert responde: **COMO decompor o SCOPE em unidades atômicas de trabalho?**
|
|
48
64
|
|
|
49
65
|
---
|
|
50
66
|
|
|
51
|
-
##
|
|
67
|
+
## Princípio Fundamental
|
|
52
68
|
|
|
53
|
-
As TASKS transformam o SCOPE aprovado em **unidades
|
|
69
|
+
As TASKS transformam o SCOPE aprovado em **unidades atômicas de trabalho** executáveis por humanos ou agentes de IA.
|
|
54
70
|
|
|
55
|
-
## Regras
|
|
71
|
+
## Regras Obrigatórias
|
|
56
72
|
|
|
57
|
-
- **NUNCA** deduzir escopo ou inventar
|
|
58
|
-
- **SEMPRE** salvar os arquivos
|
|
59
|
-
- **NUNCA** iniciar automaticamente a
|
|
60
|
-
- **Claude Code**: use a ferramenta `AskUserQuestion` para esclarecer
|
|
73
|
+
- **NUNCA** deduzir escopo ou inventar informações — na DÚVIDA, PERGUNTE AO USUÁRIO
|
|
74
|
+
- **SEMPRE** salvar os arquivos físicos antes de pedir aprovação
|
|
75
|
+
- **NUNCA** iniciar automaticamente a próxima etapa
|
|
76
|
+
- **Claude Code**: use a ferramenta `AskUserQuestion` para esclarecer dúvidas com o usuário
|
|
61
77
|
|
|
62
|
-
##
|
|
78
|
+
## Critérios de Qualidade
|
|
63
79
|
|
|
64
|
-
| Atributo |
|
|
80
|
+
| Atributo | Descrição |
|
|
65
81
|
|----------|-----------|
|
|
66
|
-
|
|
|
67
|
-
| Independente | Minimize
|
|
82
|
+
| Atômica | Executável sem novas decisões |
|
|
83
|
+
| Independente | Minimize dependências |
|
|
68
84
|
| Pequena | Se > 3 subtarefas, quebre em tasks |
|
|
69
85
|
| Clara | Suficiente para LLM executar |
|
|
70
|
-
|
|
|
71
|
-
| Ordenada | Ordem e
|
|
86
|
+
| Verificável | Critério claro de conclusão |
|
|
87
|
+
| Ordenada | Ordem e dependências definidas |
|
|
72
88
|
|
|
73
89
|
## Processo (3 Fases)
|
|
74
90
|
|
|
75
|
-
### Fase 1:
|
|
91
|
+
### Fase 1: Análise e Validação
|
|
76
92
|
|
|
77
93
|
**ANTES de gerar as tasks**, analise Intent e Scope:
|
|
78
94
|
|
|
79
|
-
- Intent
|
|
95
|
+
- Intent está claro sobre o objetivo?
|
|
80
96
|
- Scope delimita claramente o que entra e sai?
|
|
81
|
-
-
|
|
82
|
-
- Detectou
|
|
83
|
-
- Algo parece
|
|
97
|
+
- Há ambiguidades que precisam esclarecimento?
|
|
98
|
+
- Detectou dependências ocultas?
|
|
99
|
+
- Algo parece inviável ou conflitante?
|
|
84
100
|
|
|
85
|
-
Se houver
|
|
101
|
+
Se houver dúvidas, pergunte ao usuário antes de prosseguir.
|
|
86
102
|
|
|
87
|
-
### Fase 2:
|
|
103
|
+
### Fase 2: Geração das Tasks
|
|
88
104
|
|
|
89
105
|
Para cada task, preencha o template individual (`task_template.md`) com:
|
|
90
|
-
- **ID**: T1, T2, T3... (
|
|
91
|
-
- **Nome**:
|
|
92
|
-
- **Objetivo**: O que
|
|
106
|
+
- **ID**: T1, T2, T3... (único)
|
|
107
|
+
- **Nome**: Descrição curta
|
|
108
|
+
- **Objetivo**: O que será entregue
|
|
93
109
|
- **Arquivos**: Criados/modificados (economiza tokens e scans)
|
|
94
|
-
- **
|
|
95
|
-
- **
|
|
96
|
-
- **Detalhes de
|
|
97
|
-
- **Testes**:
|
|
110
|
+
- **Dependências**: Quais tasks antes
|
|
111
|
+
- **Critério de Conclusão**: Como validar
|
|
112
|
+
- **Detalhes de Implementação**: Subtasks com checklist
|
|
113
|
+
- **Testes**: Seção controlada pelo comando orquestrador (ver nota abaixo)
|
|
98
114
|
|
|
99
|
-
|
|
100
|
-
- **Macro-Fases**: agrupamento
|
|
115
|
+
Além disso, preencha o `task_plan_template.md` com:
|
|
116
|
+
- **Macro-Fases**: agrupamento lógico das tasks
|
|
101
117
|
- **Lista de Tasks**: tabela com links para cada arquivo individual
|
|
102
|
-
- **Grafo de
|
|
103
|
-
- **
|
|
104
|
-
|
|
105
|
-
> **IMPORTANTE
|
|
106
|
-
>
|
|
107
|
-
>
|
|
108
|
-
>
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
118
|
+
- **Grafo de Dependências**: ordem de execução e paralelismo
|
|
119
|
+
- **Visão consolidada de arquivos**: todos os arquivos impactados
|
|
120
|
+
|
|
121
|
+
> **IMPORTANTE — Divisão de Responsabilidades (Testes)**:
|
|
122
|
+
>
|
|
123
|
+
> O fluxo de geração de testes é **sequencial** e dividido entre skill e comando:
|
|
124
|
+
>
|
|
125
|
+
> 1. **Esta skill** preenche todas as seções da task EXCETO a seção de Testes. Na seção de Testes,
|
|
126
|
+
> deixe apenas o marcador: `[PENDENTE — será preenchida pelo comando orquestrador via qa-staff-engineer]`
|
|
127
|
+
> 2. **O comando `/ministack:generate-tasks`** (orquestrador) assume depois: lê a task parcial gerada,
|
|
128
|
+
> delega ao agente `qa-staff-engineer` (modo `GERAR_TESTES`), recebe o JSON estruturado, converte
|
|
129
|
+
> para markdown tabular e integra na seção de Testes antes de salvar o arquivo final.
|
|
130
|
+
>
|
|
131
|
+
> Você NÃO deve invocar o agente QA diretamente — essa orquestração é do comando. Apenas deixe
|
|
132
|
+
> a seção marcada como pendente e permita que o comando complete o fluxo.
|
|
133
|
+
|
|
134
|
+
### Fase 3: Salvar Arquivos (OBRIGATÓRIO)
|
|
135
|
+
|
|
136
|
+
1. Identificar nome da feature a partir da INTENT/SCOPE (kebab-case) e a versão (ex: `v1`)
|
|
137
|
+
2. **Remover todos os comentários `<!-- LLM-ONLY: ... -->`** do conteúdo antes de salvar — são instruções internas do template e NÃO devem aparecer nos arquivos gerados
|
|
138
|
+
3. **Salvar os arquivos físicos** usando os paths do config (`.claude/config/ai-framework-config.yaml`, seção `ministack`):
|
|
139
|
+
- Task Plan: `docs/specs/[nome-feature]/[versão]/task_plan.md`
|
|
140
|
+
- Cada task individual: `docs/specs/[nome-feature]/[versão]/tasks/T1.md`, `T2.md`, ...
|
|
117
141
|
4. Confirmar que todos os arquivos foram criados
|
|
118
142
|
|
|
119
143
|
## Templates
|
|
120
144
|
|
|
121
|
-
- **Task Plan (
|
|
145
|
+
- **Task Plan (índice)**: [task_plan_template.md](templates/task_plan_template.md)
|
|
122
146
|
- **Task Individual**: [task_template.md](templates/task_template.md)
|
|
123
147
|
|
|
124
|
-
## Estrutura de
|
|
148
|
+
## Estrutura de Saída
|
|
125
149
|
|
|
126
150
|
```
|
|
127
151
|
docs/
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
152
|
+
specs/
|
|
153
|
+
<nome-feature>/
|
|
154
|
+
<versão>/
|
|
155
|
+
intent.md # INTENT aprovada (ministack-intent-expert)
|
|
156
|
+
scope.md # SCOPE aprovado (ministack-scope-expert)
|
|
157
|
+
task_plan.md # Índice e coordenação (você gera este arquivo)
|
|
158
|
+
tasks/
|
|
159
|
+
T1.md # Task individual (você gera cada arquivo)
|
|
160
|
+
T2.md
|
|
161
|
+
T3.md
|
|
162
|
+
...
|
|
138
163
|
```
|
|
139
164
|
|
|
140
|
-
##
|
|
165
|
+
## Saída Esperada
|
|
141
166
|
|
|
142
167
|
```
|
|
143
|
-
Arquivos salvos em: docs/[nome-feature]/
|
|
144
|
-
- task_plan.md (
|
|
168
|
+
Arquivos salvos em: docs/specs/[nome-feature]/[versão]/
|
|
169
|
+
- task_plan.md (índice com [N] tasks)
|
|
145
170
|
- tasks/T1.md ... tasks/T[N].md
|
|
146
171
|
|
|
147
172
|
Tarefas Geradas
|
|
148
173
|
Total: [N] tasks
|
|
149
|
-
|
|
174
|
+
Sequência: T1 -> T2 -> T3 (paralelo: T4, T5) -> T6
|
|
150
175
|
|
|
151
|
-
Aprova essas tasks para
|
|
176
|
+
Aprova essas tasks para execução? (sim/não)
|
|
152
177
|
```
|
|
153
178
|
|
|
154
179
|
**IMPORTANTE:**
|
|
155
|
-
-
|
|
156
|
-
-
|
|
157
|
-
- Apenas aguarde a
|
|
180
|
+
- NÃO inicie `/run-ministack-tasks` automaticamente
|
|
181
|
+
- NÃO sugira executar o próximo comando
|
|
182
|
+
- Apenas aguarde a confirmação do usuário e encerre
|
|
158
183
|
|
|
159
184
|
---
|
|
160
185
|
|
|
161
|
-
## Guardrails
|
|
186
|
+
## Guardrails Invioláveis
|
|
162
187
|
|
|
163
|
-
1. **
|
|
164
|
-
2. **
|
|
165
|
-
3. **
|
|
166
|
-
4. **
|
|
167
|
-
5. **
|
|
168
|
-
6. **
|
|
169
|
-
7. **
|
|
188
|
+
1. **Paths do config** — SEMPRE leia `.claude/config/ai-framework-config.yaml` antes de salvar
|
|
189
|
+
2. **Aprovação obrigatória** — nunca avance sem confirmação do usuário
|
|
190
|
+
3. **Sem invenção** — se faltar informação, PERGUNTE ao usuário
|
|
191
|
+
4. **Escopo fechado** — cada documento deve ser auto-suficiente
|
|
192
|
+
5. **Template completo** — todas as seções devem ser preenchidas
|
|
193
|
+
6. **Arquivos físicos** — SEMPRE salvar antes de apresentar ao usuário
|
|
194
|
+
7. **AskUserQuestion** — no Claude Code, use esta ferramenta para esclarecer dúvidas
|
|
195
|
+
8. **Testes via orquestrador** — NÃO delegue testes diretamente, o comando orquestrador faz isso
|
|
170
196
|
|
|
171
197
|
---
|
|
172
198
|
|
|
173
|
-
##
|
|
199
|
+
## Convenções
|
|
174
200
|
|
|
175
201
|
### Nomenclatura
|
|
176
202
|
|
|
177
|
-
| Elemento |
|
|
203
|
+
| Elemento | Convenção | Exemplo |
|
|
178
204
|
|----------|-----------|---------|
|
|
179
205
|
| Nome da feature | kebab-case | `auth-oauth2`, `user-profile` |
|
|
180
|
-
| ID de task | T +
|
|
181
|
-
|
|
|
182
|
-
| Arquivo task plan | `task_plan.md` | `docs/auth/v1/task_plan.md` |
|
|
183
|
-
| Arquivo task individual | `T[N].md` | `docs/auth/v1/tasks/T1.md` |
|
|
184
|
-
|
|
185
|
-
### Estrutura de Diretorios
|
|
186
|
-
|
|
187
|
-
```
|
|
188
|
-
docs/
|
|
189
|
-
<nome-feature>/
|
|
190
|
-
vN/
|
|
191
|
-
intent.md # INTENT aprovada (ministack-intent-expert)
|
|
192
|
-
scope.md # SCOPE aprovado (ministack-scope-expert)
|
|
193
|
-
task_plan.md # Indice e coordenacao (voce gera este arquivo)
|
|
194
|
-
tasks/
|
|
195
|
-
T1.md # Task individual (voce gera cada arquivo)
|
|
196
|
-
T2.md
|
|
197
|
-
...
|
|
198
|
-
```
|
|
206
|
+
| ID de task | T + número | `T1`, `T2`, `T3` |
|
|
207
|
+
| Diretório | `docs/specs/<nome>/<versão>/` | `docs/specs/auth/v1/` |
|
|
208
|
+
| Arquivo task plan | `task_plan.md` | `docs/specs/auth/v1/task_plan.md` |
|
|
209
|
+
| Arquivo task individual | `T[N].md` | `docs/specs/auth/v1/tasks/T1.md` |
|
|
199
210
|
|
|
200
211
|
---
|
|
201
212
|
|
|
@@ -20,6 +20,20 @@ Estilo: Objetivo. Contextualizado. Perguntas curtas com opções baseadas no cod
|
|
|
20
20
|
|
|
21
21
|
---
|
|
22
22
|
|
|
23
|
+
# Paths dos Artefatos
|
|
24
|
+
|
|
25
|
+
> **OBRIGATÓRIO**: Antes de salvar qualquer artefato, leia `.claude/config/ai-framework-config.yaml` seção `ministack` e use os paths ali definidos.
|
|
26
|
+
|
|
27
|
+
Paths definidos no config (para referência):
|
|
28
|
+
|
|
29
|
+
| Artefato | Path |
|
|
30
|
+
|----------|------|
|
|
31
|
+
| tech_direction | `docs/specs/{feature}/{version}/tech_direction.md` |
|
|
32
|
+
|
|
33
|
+
Substitua `{feature}` pelo nome da feature em kebab-case e `{version}` pela versão (ex: `v1`) identificados a partir do path da INTENT recebida como argumento.
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
23
37
|
# Regra de Acentuação
|
|
24
38
|
|
|
25
39
|
Todo artefato gerado por esta skill é um documento em português brasileiro. Todo conteúdo textual (títulos, descrições, instruções, regras, mensagens) deve usar acentuação correta do pt-BR:
|
|
@@ -184,7 +198,7 @@ Estas regras sao **absolutas** e nao podem ser violadas em nenhuma circunstancia
|
|
|
184
198
|
|
|
185
199
|
O Tech Direction e salvo **na mesma pasta** da INTENT aprovada. O versionamento ja foi definido pela INTENT:
|
|
186
200
|
|
|
187
|
-
- Se a INTENT esta em `docs/feature-x/v1/intent.md`, o tech_direction vai em `docs/feature-x/v1/tech_direction.md`
|
|
201
|
+
- Se a INTENT esta em `docs/specs/feature-x/v1/intent.md`, o tech_direction vai em `docs/specs/feature-x/v1/tech_direction.md`
|
|
188
202
|
- **NAO crie nova versao** — use a mesma pasta da INTENT fornecida como argumento
|
|
189
203
|
|
|
190
204
|
---
|
|
@@ -193,10 +207,11 @@ O Tech Direction e salvo **na mesma pasta** da INTENT aprovada. O versionamento
|
|
|
193
207
|
|
|
194
208
|
**ANTES de apresentar o Tech Direction ao usuario**, voce DEVE:
|
|
195
209
|
|
|
196
|
-
1. **
|
|
197
|
-
2. **
|
|
198
|
-
3. **
|
|
199
|
-
4. **
|
|
210
|
+
1. **Ler o config** `.claude/config/ai-framework-config.yaml` secao `ministack.tech_direction` para obter o path
|
|
211
|
+
2. **Identificar o diretorio** da INTENT fornecida (ex: `docs/specs/feature-x/v1/`)
|
|
212
|
+
3. **Remover todos os comentarios `<!-- LLM-ONLY: ... -->`** do conteudo antes de salvar
|
|
213
|
+
4. **Salvar o arquivo fisico** em: `docs/specs/[nome-feature]/[versao]/tech_direction.md` (mesmo diretorio da INTENT)
|
|
214
|
+
5. **Confirmar** que o arquivo foi criado com sucesso
|
|
200
215
|
|
|
201
216
|
---
|
|
202
217
|
|
|
@@ -205,7 +220,7 @@ O Tech Direction e salvo **na mesma pasta** da INTENT aprovada. O versionamento
|
|
|
205
220
|
Apos salvar o arquivo fisico, apresente **apenas um resumo compacto**. NAO exiba o tech_direction completo no terminal.
|
|
206
221
|
|
|
207
222
|
```
|
|
208
|
-
Arquivo salvo em: docs/[nome-feature]/
|
|
223
|
+
Arquivo salvo em: docs/specs/[nome-feature]/[versao]/tech_direction.md
|
|
209
224
|
|
|
210
225
|
## Resumo do Tech Direction
|
|
211
226
|
- **Decisoes:** [lista curta]
|
|
@@ -165,14 +165,15 @@ O template completo está em: [prompt_template.md](templates/prompt_template.md)
|
|
|
165
165
|
| 5. Formato da Resposta | Inferido do tipo de tarefa |
|
|
166
166
|
| 6. Persona / Tom | Inferido do contexto |
|
|
167
167
|
|
|
168
|
-
### Seções opcionais (7-
|
|
168
|
+
### Seções opcionais (7-9)
|
|
169
169
|
|
|
170
170
|
| Seção | Quando incluir |
|
|
171
171
|
|-------|---------------|
|
|
172
172
|
| 7. Critérios de Aceite | Tarefas complexas ou com requisitos mensuráveis |
|
|
173
173
|
| 8. Exemplos | Quando houver padrões claros de entrada/saída |
|
|
174
174
|
| 9. Arquivos Envolvidos | Quando a tarefa envolve criar/modificar arquivos específicos |
|
|
175
|
-
|
|
175
|
+
|
|
176
|
+
> **Nota sobre Testes**: a geração de testes (seção 10 do template, quando aplicável) é responsabilidade do **comando orquestrador** `/generate-prompt`, que delega ao agente `qa-staff-engineer`. Esta skill NÃO preenche a seção 10 — deixe-a ausente no rascunho ou com o marcador `[PENDENTE — será preenchida pelo comando via qa-staff-engineer]`.
|
|
176
177
|
|
|
177
178
|
### Apresentação ao usuário
|
|
178
179
|
|
|
@@ -182,7 +183,7 @@ Apresente o rascunho completo e pergunte:
|
|
|
182
183
|
Aqui está o rascunho do prompt. Revise e me diga:
|
|
183
184
|
- Algo está incorreto ou faltando?
|
|
184
185
|
- Alguma seção precisa de mais detalhe?
|
|
185
|
-
- Deseja adicionar seções opcionais (Critérios de Aceite, Exemplos, Arquivos
|
|
186
|
+
- Deseja adicionar seções opcionais (Critérios de Aceite, Exemplos, Arquivos Envolvidos)?
|
|
186
187
|
```
|
|
187
188
|
|
|
188
189
|
---
|
|
@@ -193,7 +194,7 @@ Itere com o usuário até que o prompt esteja satisfatório.
|
|
|
193
194
|
|
|
194
195
|
- Aceite feedback livre e aplique as correções
|
|
195
196
|
- Não limite o número de iterações — o prompt precisa estar bom
|
|
196
|
-
-
|
|
197
|
+
- **Seção 10 (Testes)** NÃO é responsabilidade desta skill — o comando orquestrador `/generate-prompt` delega ao agente `qa-staff-engineer` após a skill concluir. Deixe a seção 10 ausente ou com o marcador `[PENDENTE — será preenchida pelo comando via qa-staff-engineer]`
|
|
197
198
|
|
|
198
199
|
---
|
|
199
200
|
|
|
@@ -217,9 +218,11 @@ Se algum guardrail falhar, corrija antes de salvar — não peça ao usuário pa
|
|
|
217
218
|
### Salvamento
|
|
218
219
|
|
|
219
220
|
1. Derive o slug da tarefa a partir do objetivo (ex: `autenticacao-jwt`, `crud-produtos`)
|
|
220
|
-
2.
|
|
221
|
-
3.
|
|
222
|
-
4.
|
|
221
|
+
2. Verifique se o diretório `docs/prompts/` existe; se não, crie-o
|
|
222
|
+
3. Crie o subdiretório: `docs/prompts/[slug]/`
|
|
223
|
+
4. Salve o prompt: `docs/prompts/[slug]/[slug]_prompt.md`
|
|
224
|
+
5. Confirme que o arquivo foi criado com sucesso
|
|
225
|
+
6. Informe o caminho ao usuário
|
|
223
226
|
|
|
224
227
|
---
|
|
225
228
|
|