adi_dev_workflow 1.0.0 → 1.1.1
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/agents/qa-staff-engineer.md +311 -0
- package/frameworks/agents/qa-validation-expert.md +458 -0
- package/frameworks/agents/tech-review-conformance.md +200 -0
- package/frameworks/commands/generate-project-profile.md +68 -0
- package/frameworks/commands/generate-prompt.md +33 -98
- 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 +113 -25
- package/frameworks/commands/taskcard/run-taskcard.md +203 -34
- package/frameworks/skills/ministack-intent-expert/SKILL.md +16 -3
- package/frameworks/skills/ministack-intent-expert/templates/intent-template.md +1 -1
- package/frameworks/skills/ministack-scope-expert/SKILL.md +19 -11
- package/frameworks/skills/ministack-scope-expert/templates/scope-template.md +1 -1
- package/frameworks/skills/ministack-tasks-expert/SKILL.md +204 -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 +230 -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/prompt-engineer-expert/SKILL.md +232 -0
- package/frameworks/skills/prompt-engineer-expert/templates/prompt_template.md +139 -0
- package/frameworks/skills/sdd-prd-expert/SKILL.md +155 -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 +191 -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 +235 -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 +317 -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 +40 -77
- package/frameworks/skills/taskcard-expert/templates/template.md +0 -2
- package/frameworks/templates/prompt_template.md +44 -1
- 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
|
@@ -1,30 +1,29 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Executa tasks do miniStack com rastreamento no Linear
|
|
3
|
-
argument-hint:
|
|
2
|
+
description: "Executa tasks do miniStack com rastreamento no Linear. Params: <task_plan.md> <team-linear> <agent_name>"
|
|
3
|
+
argument-hint: "<caminho task_plan.md ex: docs/carrinho-compra/v1/task_plan.md> <team-linear ex: Backend> <agent_name ex: go-expert>"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
Voce e um **Coordenador de Sub-agentes** com rastreamento no Linear. Seu papel e **orquestrar**, nao executar diretamente.
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
Voce deve seguir as regras e o processo da **ETAPA 5: EXECUCAO** definida na skill ministack-expert, com rastreamento automatico no Linear.
|
|
8
|
+
Siga **todas as regras, gates e fluxo de validacao** definidos no comando `/ministack:run-ministack-tasks`, com as seguintes adicoes para integracao com Linear.
|
|
11
9
|
|
|
12
10
|
## Argumentos
|
|
13
11
|
|
|
14
12
|
O `$ARGUMENTS` deve conter:
|
|
15
13
|
|
|
16
|
-
1. **
|
|
14
|
+
1. **task_plan_path** (obrigatorio) - Caminho do task_plan.md (ex: `docs/carrinho-compra/v1/task_plan.md`)
|
|
17
15
|
2. **Team no Linear** (obrigatorio) - Nome ou ID do time no Linear
|
|
18
|
-
3. **Agente
|
|
16
|
+
3. **Agente executor** (obrigatorio) - Nome do sub-agente executor
|
|
19
17
|
|
|
20
18
|
**Formatos aceitos:**
|
|
21
|
-
- `docs/minha-feature/v1 Backend` -
|
|
22
|
-
- `docs/minha-feature/v1 Backend go-backend-implementer` - Com agente especifico
|
|
19
|
+
- `docs/minha-feature/v1/task_plan.md Backend go-expert` - task_plan + team + agente
|
|
23
20
|
|
|
24
21
|
## Fluxo de Execucao
|
|
25
22
|
|
|
26
23
|
### Fase 1: Descoberta e Validacao
|
|
27
|
-
- Ler
|
|
24
|
+
- Ler o task_plan.md fornecido
|
|
25
|
+
- Extrair caminhos de Intent e Scope da secao 1 (Identificacao) do task_plan
|
|
26
|
+
- Ler cada tasks/T[N].md no diretorio-base
|
|
28
27
|
- Extrair nome da feature e lista de tasks
|
|
29
28
|
- Validar contexto e dependencias
|
|
30
29
|
|
|
@@ -45,19 +44,20 @@ O `$ARGUMENTS` deve conter:
|
|
|
45
44
|
blockedBy: [dependencias]
|
|
46
45
|
```
|
|
47
46
|
|
|
48
|
-
### Fase 3: Execucao (
|
|
47
|
+
### Fase 3: Execucao com Gates (mesmo fluxo do run-ministack-tasks)
|
|
49
48
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
49
|
+
Para cada task:
|
|
50
|
+
1. Atualizar issue para "In Progress"
|
|
51
|
+
2. Delegar ao executor (agent_name)
|
|
52
|
+
3. **Gate 1: qa-staff-engineer** (VALIDAR_IMPLEMENTACAO)
|
|
53
|
+
4. **Gate 2: tech-review-conformance** (apos QA aprovado)
|
|
54
|
+
5. Se aprovado: atualizar issue para "Done", marcar como `Concluido` em tasks/T[N].md e task_plan.md
|
|
55
|
+
6. Se rejeitado: loop de correcao (max 3 tentativas)
|
|
56
|
+
7. Se bloqueado: atualizar issue para "Blocked", marcar como `Bloqueado` em tasks/T[N].md e task_plan.md
|
|
57
57
|
|
|
58
58
|
### Fase 4: Relatorio Final
|
|
59
59
|
|
|
60
|
-
Mostrar resumo
|
|
60
|
+
Mostrar resumo: tasks executadas, issues no Linear, arquivos modificados, vereditos QA e Tech Review.
|
|
61
61
|
|
|
62
62
|
## Tratamento de Bloqueios
|
|
63
63
|
|
|
@@ -66,6 +66,7 @@ Se encontrar bloqueio:
|
|
|
66
66
|
2. Atualizar issue da task para "Blocked"
|
|
67
67
|
3. Atualizar issue da feature para "Blocked"
|
|
68
68
|
4. Gerar relatorio parcial
|
|
69
|
+
5. Escalar ao usuario
|
|
69
70
|
|
|
70
71
|
## Comandos Linear MCP Utilizados
|
|
71
72
|
|
|
@@ -83,12 +84,12 @@ Se encontrar bloqueio:
|
|
|
83
84
|
|-----------------|---------------|
|
|
84
85
|
| Aguardando | Todo / Backlog |
|
|
85
86
|
| Em execucao | In Progress |
|
|
86
|
-
| Concluido | Done / Completed |
|
|
87
|
+
| Concluido (QA + Review aprovados) | Done / Completed |
|
|
87
88
|
| Bloqueado | Blocked |
|
|
88
89
|
| Cancelado | Canceled |
|
|
89
90
|
|
|
90
91
|
## Entrada
|
|
91
92
|
|
|
92
|
-
**Formato:** `[
|
|
93
|
+
**Formato:** `[task_plan_path] [team-linear] [agente-executor]`
|
|
93
94
|
|
|
94
95
|
$ARGUMENTS
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Mostra o status do pipeline miniStack de uma feature: artefatos gerados, resumo do último passo e próximo comando. Param: caminho da pasta da feature"
|
|
3
|
+
argument-hint: "<pasta da feature> (ex: docs/carrinho-compra/v1)"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Comando: miniStack Status
|
|
7
|
+
|
|
8
|
+
Você é um **Status Reporter** do framework miniStack. Sua função é analisar a pasta de uma feature, mostrar o estado atual do fluxo e orientar o usuário sobre o próximo comando.
|
|
9
|
+
|
|
10
|
+
## Instruções
|
|
11
|
+
|
|
12
|
+
### 1. Receber o caminho da feature
|
|
13
|
+
|
|
14
|
+
O caminho da pasta da feature é: `$ARGUMENTS`
|
|
15
|
+
|
|
16
|
+
Se `$ARGUMENTS` estiver vazio, liste as pastas disponíveis em `docs/` e pergunte ao usuário qual feature deseja consultar.
|
|
17
|
+
|
|
18
|
+
### 2. Ler o ministack_state.yaml (fonte primária)
|
|
19
|
+
|
|
20
|
+
Verifique se existe `ministack_state.yaml` na pasta informada.
|
|
21
|
+
|
|
22
|
+
**Se existir:** use-o como fonte primária — NÃO leia os artefatos (economiza tokens).
|
|
23
|
+
|
|
24
|
+
**Se NÃO existir:** faça fallback para detecção por artefatos (seção 3).
|
|
25
|
+
|
|
26
|
+
### 3. Fallback: Detectar artefatos (só se ministack_state.yaml não existir)
|
|
27
|
+
|
|
28
|
+
Verifique a existência dos seguintes arquivos:
|
|
29
|
+
|
|
30
|
+
| Artefato | Arquivo |
|
|
31
|
+
|----------|---------|
|
|
32
|
+
| INTENT | `intent.md` |
|
|
33
|
+
| Tech Direction | `tech_direction.md` |
|
|
34
|
+
| SCOPE | `scope.md` |
|
|
35
|
+
| Task Plan | `task_plan.md` |
|
|
36
|
+
| Tasks | `tasks/T*.md` |
|
|
37
|
+
| Code Review | resultado do code-review |
|
|
38
|
+
|
|
39
|
+
Se for preciso gerar resumo sem o YAML, leia o último artefato gerado e extraia:
|
|
40
|
+
|
|
41
|
+
**INTENT:** nome da feature, objetivo (1 linha), escopo IN/OUT
|
|
42
|
+
**Tech Direction:** decisões técnicas principais
|
|
43
|
+
**SCOPE:** resumo técnico, componentes, tabelas de banco, endpoints
|
|
44
|
+
**Task Plan:** total de tasks, fases, paralelizáveis vs sequenciais
|
|
45
|
+
|
|
46
|
+
### 4. Apresentar o status
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
═══════════════════════════════════════════════
|
|
50
|
+
miniStack STATUS: <nome da feature>
|
|
51
|
+
Pasta: <caminho>
|
|
52
|
+
═══════════════════════════════════════════════
|
|
53
|
+
|
|
54
|
+
Artefatos:
|
|
55
|
+
INTENT ✓ intent.md
|
|
56
|
+
Tech Direction — (opcional, não gerado)
|
|
57
|
+
SCOPE ✓ scope.md
|
|
58
|
+
Task Plan ✗ pendente
|
|
59
|
+
Tasks ✗ pendente
|
|
60
|
+
|
|
61
|
+
───────────────────────────────────────────────
|
|
62
|
+
Resumo do último passo: <nome do step>
|
|
63
|
+
───────────────────────────────────────────────
|
|
64
|
+
<summary do ministack_state.yaml OU resumo extraído do artefato>
|
|
65
|
+
|
|
66
|
+
───────────────────────────────────────────────
|
|
67
|
+
Próximo passo
|
|
68
|
+
───────────────────────────────────────────────
|
|
69
|
+
<orientação com comando exato>
|
|
70
|
+
|
|
71
|
+
═══════════════════════════════════════════════
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Símbolos:
|
|
75
|
+
- `✓` artefato existe / step completed
|
|
76
|
+
- `✗` pendente (obrigatório)
|
|
77
|
+
- `—` opcional, não gerado / skipped
|
|
78
|
+
- `⧖` em andamento (in_progress)
|
|
79
|
+
|
|
80
|
+
### 5. Orientar o próximo passo
|
|
81
|
+
|
|
82
|
+
Com base no `current_step` do YAML (ou artefatos detectados), oriente:
|
|
83
|
+
|
|
84
|
+
**Se nenhum artefato / sem YAML:**
|
|
85
|
+
```
|
|
86
|
+
Próximo passo: Gerar a INTENT
|
|
87
|
+
/ministack:generate-intent '<breve descrição da feature>'
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
**Se current_step = intent (completed):**
|
|
91
|
+
```
|
|
92
|
+
Próximo passo: Você tem duas opções
|
|
93
|
+
|
|
94
|
+
Caminho direto (recomendado):
|
|
95
|
+
/ministack:generate-scope <caminho>/intent.md
|
|
96
|
+
|
|
97
|
+
Caminho com Tech Direction (opcional):
|
|
98
|
+
/ministack:generate-tech-direction <caminho>/intent.md
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
**Se current_step = tech_direction (completed):**
|
|
102
|
+
```
|
|
103
|
+
Próximo passo: Gerar o SCOPE
|
|
104
|
+
/ministack:generate-scope <caminho>/intent.md
|
|
105
|
+
(o tech_direction.md será consumido automaticamente)
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
**Se current_step = scope (completed):**
|
|
109
|
+
```
|
|
110
|
+
Próximo passo: Gerar as Tasks
|
|
111
|
+
/ministack:generate-tasks <caminho>/intent.md <caminho>/scope.md
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
**Se current_step = task_plan (completed):**
|
|
115
|
+
```
|
|
116
|
+
Próximo passo: Executar as tasks
|
|
117
|
+
/ministack:run-ministack-tasks <caminho>/task_plan.md <agent_name>
|
|
118
|
+
|
|
119
|
+
Exemplo:
|
|
120
|
+
/ministack:run-ministack-tasks <caminho>/task_plan.md go-expert
|
|
121
|
+
|
|
122
|
+
Code Review antes de executar (opcional):
|
|
123
|
+
/ministack:code-review <caminho>/task_plan.md
|
|
124
|
+
|
|
125
|
+
Com rastreamento Linear (opcional):
|
|
126
|
+
/ministack:run-ministack-withlinear <caminho>/task_plan.md <team-linear> <agent_name>
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
**Se current_step = execution (in_progress):**
|
|
130
|
+
```
|
|
131
|
+
Execução em andamento: <tasks_completed>/<tasks_total> tasks concluídas
|
|
132
|
+
|
|
133
|
+
Para continuar:
|
|
134
|
+
/ministack:run-ministack-tasks <caminho>/task_plan.md <agent_name>
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
**Se current_step = execution (completed):**
|
|
138
|
+
```
|
|
139
|
+
Feature concluída!
|
|
140
|
+
|
|
141
|
+
Para revisar o código (recomendado):
|
|
142
|
+
/ministack:code-review <caminho>/task_plan.md
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### 6. Regras
|
|
146
|
+
|
|
147
|
+
- **NÃO** gere nenhum artefato — apenas leia e reporte
|
|
148
|
+
- **NÃO** modifique nenhum arquivo
|
|
149
|
+
- **PRIORIZE** o `ministack_state.yaml` — só leia artefatos se o YAML não existir
|
|
150
|
+
- Resumos devem ser **sucintos** — máximo 5-8 linhas
|
|
151
|
+
- Sempre mostre o **caminho completo** nos comandos sugeridos
|
|
152
|
+
- O Tech Direction é **sempre opcional** — nunca apresente como obrigatório
|
|
153
|
+
- O Code Review é **sempre opcional** — apresente como recomendação
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
description:
|
|
3
|
-
argument-hint:
|
|
2
|
+
description: "Code review do SDD validando PRD, SPEC_TECH e Tasks. Param: caminho do task_plan.md"
|
|
3
|
+
argument-hint: "<task_plan.md ex: docs/feature-user/v1/task_plan.md>"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
Voce e um **Engenheiro de Software Senior** com mais de 20 anos de experiencia, atuando tambem como **QA Lead** e **Security Specialist**.
|
|
@@ -36,15 +36,15 @@ Voce e **criterioso, meticuloso e implacavel**. Voce nao aceita:
|
|
|
36
36
|
|
|
37
37
|
## Fase 1: Coleta de Contexto
|
|
38
38
|
|
|
39
|
-
1. **
|
|
40
|
-
|
|
41
|
-
|
|
39
|
+
1. **Leia o task_plan.md** fornecido no argumento
|
|
40
|
+
2. **Extraia os caminhos** de **SPEC_TECH** e **PRD** da secao 1 (Identificacao) do task_plan.md
|
|
41
|
+
3. **Derive o diretorio-base** a partir do task_plan.md (diretorio pai)
|
|
42
42
|
|
|
43
|
-
|
|
44
|
-
- **PRD**:
|
|
45
|
-
- **TechSpec**:
|
|
46
|
-
- **Task Plan**:
|
|
47
|
-
- **Tasks**:
|
|
43
|
+
4. **Identifique os documentos a analisar** (APENAS ESTES):
|
|
44
|
+
- **PRD**: caminho extraido do task_plan (campo PRD)
|
|
45
|
+
- **TechSpec**: caminho extraido do task_plan (campo SPEC_TECH)
|
|
46
|
+
- **Task Plan**: o arquivo fornecido como argumento
|
|
47
|
+
- **Tasks**: `[diretorio-base]/tasks/*.md` (todos os arquivos da pasta tasks)
|
|
48
48
|
|
|
49
49
|
3. **NAO ANALISE outros arquivos**:
|
|
50
50
|
- NAO leia arquivos de codigo fonte implementados
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Gera
|
|
3
|
-
argument-hint:
|
|
2
|
+
description: "Gera PRD completo do SDD a partir de uma ideia. Param: descricao da feature (ex: 'modulo de autenticacao com JWT')"
|
|
3
|
+
argument-hint: "<descricao da feature em texto livre>"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
Use a skill **sdd-prd-expert** para gerar o PRD.
|
|
@@ -17,6 +17,36 @@ Voce deve atuar como um **Product Owner / Product Manager** especialista e segui
|
|
|
17
17
|
- Faca **UMA pergunta por vez**, aguardando a resposta antes de avancar
|
|
18
18
|
- Numere as User Stories com formato **US-XX** e os Criterios de Aceite com **CA-XX**
|
|
19
19
|
- **SEMPRE** salve o arquivo fisico antes de apresentar ao usuario
|
|
20
|
+
- Apos o usuario aprovar o PRD, pergunte: **"Voce tem pontos especificos de definicao tecnica que deseja registrar antes do SPEC_TECH?"**
|
|
21
|
+
- Se sim, crie o arquivo `tech_direction.md` na mesma pasta do PRD usando o template da skill (sem preencher) e avise o usuario para preencher
|
|
22
|
+
- Se nao, encerre normalmente
|
|
23
|
+
|
|
24
|
+
## Estado do Pipeline (sdd_state.yaml)
|
|
25
|
+
|
|
26
|
+
Apos salvar o PRD com sucesso, voce DEVE criar/atualizar o arquivo `sdd_state.yaml` no mesmo diretorio do PRD.
|
|
27
|
+
|
|
28
|
+
Se o arquivo **nao existir**, crie-o com a estrutura completa:
|
|
29
|
+
|
|
30
|
+
```yaml
|
|
31
|
+
feature: "<nome da feature extraido da secao 1 do PRD>"
|
|
32
|
+
current_step: prd
|
|
33
|
+
steps:
|
|
34
|
+
prd:
|
|
35
|
+
status: completed
|
|
36
|
+
summary: "<US count> US, <CA count> CA. <objetivo em 1 frase curta>"
|
|
37
|
+
tech_direction:
|
|
38
|
+
status: pending
|
|
39
|
+
spec_tech:
|
|
40
|
+
status: pending
|
|
41
|
+
validation:
|
|
42
|
+
status: pending
|
|
43
|
+
task_plan:
|
|
44
|
+
status: pending
|
|
45
|
+
execution:
|
|
46
|
+
status: pending
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Se o arquivo **ja existir** (ex: revisao do PRD), atualize apenas o bloco `prd` e resete os steps posteriores para `pending`.
|
|
20
50
|
|
|
21
51
|
## Entrada
|
|
22
52
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Gera
|
|
3
|
-
argument-hint:
|
|
2
|
+
description: "Gera TASK PLAN + tasks individuais do SDD a partir de SPEC_TECH aprovado. Param: caminho do spec_tech.md"
|
|
3
|
+
argument-hint: "<spec_tech.md ex: docs/feature-user/v1/spec_tech.md>"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
Use a skill **sdd-task-plan-expert** para gerar o TASK PLAN e as tasks individuais.
|
|
@@ -10,7 +10,9 @@ Use a skill **sdd-task-plan-expert** para gerar o TASK PLAN e as tasks individua
|
|
|
10
10
|
Voce deve atuar como um **Engenheiro de Software Senior** especializado em decomposicao de tarefas e seguir todo o processo interativo definido na skill sdd-task-plan-expert.
|
|
11
11
|
|
|
12
12
|
O $ARGUMENTS deve conter:
|
|
13
|
-
1. **
|
|
13
|
+
1. **caminho do spec_tech.md** (obrigatorio) — ex: `docs/feature-user/v1/spec_tech.md`
|
|
14
|
+
|
|
15
|
+
O task_plan.md e as tasks individuais serao gerados no mesmo diretorio do spec_tech.md. O PRD sera localizado a partir de referencia interna no spec_tech.md.
|
|
14
16
|
|
|
15
17
|
## Regras Adicionais
|
|
16
18
|
|
|
@@ -18,10 +20,202 @@ O $ARGUMENTS deve conter:
|
|
|
18
20
|
- **NUNCA** deduza escopo ou invente informacoes — na **DUVIDA PERGUNTE AO USUARIO**
|
|
19
21
|
- Somente o **COMO** tecnico — nunca inclua o **O QUE** de produto
|
|
20
22
|
- Liste **TODOS** os arquivos envolvidos e as acoes (criar/modificar/referencia) em cada task — economiza tokens e scans
|
|
21
|
-
-
|
|
22
|
-
- Preencha a tabela de **rastreabilidade User Stories → Tasks** para garantir cobertura completa
|
|
23
|
+
- Preencha a tabela de **rastreabilidade User Stories -> Tasks** para garantir cobertura completa
|
|
23
24
|
- Ofereca **2-4 opcoes** de abordagem tecnica quando houver duvida
|
|
24
25
|
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Delegacao QA — Secao 6 de cada Task (Testes)
|
|
29
|
+
|
|
30
|
+
A **secao 6 (Testes)** de cada task NAO deve ser preenchida pelo engenheiro de tarefas. Voce DEVE delegar para o subagente **qa-staff-engineer** que retorna um JSON estruturado. Depois, voce converte o JSON em markdown no formato checklist da secao 6.
|
|
31
|
+
|
|
32
|
+
### Quando executar
|
|
33
|
+
|
|
34
|
+
Para **cada task**, apos preencher as secoes 1-5 e 7-8, **ANTES de salvar o arquivo da task**. Se varias tasks estao sendo criadas, voce pode disparar subagentes QA em **paralelo** para maximizar eficiencia.
|
|
35
|
+
|
|
36
|
+
### Passo 1: Preparar a lista de arquivos
|
|
37
|
+
|
|
38
|
+
Monte a lista de `arquivos` que o subagente deve ler para CADA task. Inclua:
|
|
39
|
+
|
|
40
|
+
- **PRD aprovado**: `docs/[nome-feature]/vN/prd.md`
|
|
41
|
+
- **SPEC_TECH aprovado**: `docs/[nome-feature]/vN/spec_tech.md`
|
|
42
|
+
- **Regras do projeto**: `CLAUDE.md`, `.claude/rules/*.md`
|
|
43
|
+
- **Migracoes**: `internal/db/migrations/*.sql` (relacionadas a task)
|
|
44
|
+
- **Queries SQLC**: `internal/db/queries/*.sql` (relacionadas a task)
|
|
45
|
+
- **Testes existentes**: busque arquivos `*_test.go` relacionados aos arquivos impactados pela task
|
|
46
|
+
- **Codigo-fonte existente**: arquivos listados na secao 5 da task (a criar ou modificar)
|
|
47
|
+
|
|
48
|
+
### Passo 2: Preparar as instrucoes
|
|
49
|
+
|
|
50
|
+
Monte o campo `instrucoes` com:
|
|
51
|
+
|
|
52
|
+
1. O conteudo completo da **task parcial (secoes 1-5)** que voce montou ate o momento
|
|
53
|
+
2. Os **criterios de aceite tecnico** da task (secao 4)
|
|
54
|
+
3. Os **arquivos impactados** pela task (secao 5) — para o QA saber quais camadas testar
|
|
55
|
+
4. O **tipo da task** (cria handler, cria service, cria repository, cria migracao, etc.)
|
|
56
|
+
5. Qualquer contexto adicional relevante para o QA
|
|
57
|
+
|
|
58
|
+
### Passo 3: Disparar o subagente
|
|
59
|
+
|
|
60
|
+
Lance o subagente usando a ferramenta `Agent` com:
|
|
61
|
+
|
|
62
|
+
- **subagent_type**: `qa-staff-engineer`
|
|
63
|
+
- **description**: "QA gerar testes task TN"
|
|
64
|
+
- **prompt**: Monte o prompt com os 3 parametros obrigatorios:
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
Voce foi invocado com os seguintes parametros:
|
|
68
|
+
|
|
69
|
+
1. **modo**: GERAR_TESTES
|
|
70
|
+
2. **arquivos**: [lista de caminhos dos arquivos preparados no Passo 1]
|
|
71
|
+
3. **instrucoes**: [conteudo preparado no Passo 2]
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### Passo 4: Converter JSON em Markdown (secao 6)
|
|
75
|
+
|
|
76
|
+
O subagente retorna um JSON com `casos_teste[]`. Voce DEVE converter para o formato **checklist** da secao 6 usando o mapeamento abaixo:
|
|
77
|
+
|
|
78
|
+
#### Mapeamento de tipos
|
|
79
|
+
|
|
80
|
+
| Campo `tipo` no JSON | Subsecao destino |
|
|
81
|
+
|---------------------|-----------------|
|
|
82
|
+
| `UNITARIO` | **6.1 Testes Unitarios** |
|
|
83
|
+
| `INTEGRACAO` | **6.2 Testes de Integracao** |
|
|
84
|
+
| `E2E` | **6.3 Testes E2E** |
|
|
85
|
+
| `SEGURANCA` | **6.4 Cenarios de Erro** |
|
|
86
|
+
| `PERFORMANCE` | **6.4 Cenarios de Erro** |
|
|
87
|
+
|
|
88
|
+
#### Mapeamento de categorias para 6.4
|
|
89
|
+
|
|
90
|
+
Alem dos testes tipo `SEGURANCA` e `PERFORMANCE`, inclua em 6.4 todos os `casos_teste` com `categoria` igual a:
|
|
91
|
+
- `tratamento_erro`
|
|
92
|
+
- `caso_extremo`
|
|
93
|
+
- `fronteira` (quando o teste foca em comportamento de erro)
|
|
94
|
+
|
|
95
|
+
#### Formato de saida por subsecao
|
|
96
|
+
|
|
97
|
+
O formato de saida DEVE seguir o **formato tabular** identico ao da secao 14 do SPEC_TECH. Isso garante consistencia entre os dois documentos e facilita a validacao visual.
|
|
98
|
+
|
|
99
|
+
Infira o nome do arquivo de teste a partir do componente testado:
|
|
100
|
+
- Handler → `[nome]_handler_test.go`
|
|
101
|
+
- Service → `[nome]_service_test.go`
|
|
102
|
+
- Repository → `[nome]_repository_test.go`
|
|
103
|
+
|
|
104
|
+
Infira o nome da funcao de teste a partir do titulo do CT:
|
|
105
|
+
- Use formato `TestNomeMetodo_CenarioDescritivo` (Go convention)
|
|
106
|
+
|
|
107
|
+
**6.1 Testes Unitarios** — formato tabular agrupado por componente:
|
|
108
|
+
|
|
109
|
+
```markdown
|
|
110
|
+
#### [Camada]: [NomeComponente] (`arquivo_test.go`)
|
|
111
|
+
|
|
112
|
+
Mock: [interfaces mockadas]
|
|
113
|
+
|
|
114
|
+
| CT | Teste | CA | Objetivo | Input | Expected | Mock |
|
|
115
|
+
|----|-------|----|----------|-------|----------|------|
|
|
116
|
+
| CT-XX | TestMetodo_Cenario | CA-XX | Verificar que [comportamento] quando [condicao] | dados entrada | resultado esperado | dependencias mockadas |
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
**6.2 Testes de Integracao** — formato tabular com Setup acima:
|
|
120
|
+
|
|
121
|
+
```markdown
|
|
122
|
+
#### [CamadaA + CamadaB] (`arquivo_test.go`)
|
|
123
|
+
|
|
124
|
+
Setup: [banco in-memory, migracoes, fixtures]
|
|
125
|
+
|
|
126
|
+
| CT | Teste | CA | Objetivo | Fluxo | Validacao |
|
|
127
|
+
|----|-------|----|----------|-------|-----------|
|
|
128
|
+
| CT-XX | TestIntegracao_Cenario | CA-XX | Verificar que [comportamento] quando [condicao] | Passos do fluxo | Assertions esperadas |
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
**6.3 Testes E2E** — formato descritivo por fluxo:
|
|
132
|
+
|
|
133
|
+
```markdown
|
|
134
|
+
#### Fluxo: [Nome do Fluxo] (CT-XX)
|
|
135
|
+
- **CA**: CA-XX, CA-YY
|
|
136
|
+
- **Objetivo**: (1 frase descrevendo o que este fluxo E2E valida de ponta a ponta)
|
|
137
|
+
- **Pre-condicoes**: (estado inicial do sistema)
|
|
138
|
+
- **Passos**:
|
|
139
|
+
1. Passo 1
|
|
140
|
+
2. Passo 2
|
|
141
|
+
- **Validacoes**: (assertions sobre dados e estado final)
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
**6.4 Cenarios de Erro** — formato tabular:
|
|
145
|
+
|
|
146
|
+
```markdown
|
|
147
|
+
| Cenario | CA | Objetivo | Trigger | Codigo/Status | Log Esperado |
|
|
148
|
+
|---------|----|----------|---------|---------------|-------------|
|
|
149
|
+
| Descricao do cenario | CA-XX | Verificar que [constraint] impede [operacao] | Acao trigger | Codigo erro | Mensagem log |
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
#### Testes Existentes a Modificar
|
|
153
|
+
|
|
154
|
+
Apos as subsecoes 6.1-6.4, adicione a tabela de testes existentes. Infira a partir de:
|
|
155
|
+
- Campo `recomendacoes` do JSON (se mencionar testes existentes)
|
|
156
|
+
- Arquivos de teste ja existentes para os componentes impactados pela task (secao 5.2 - Arquivos a Modificar)
|
|
157
|
+
|
|
158
|
+
```markdown
|
|
159
|
+
### Testes Existentes a Modificar
|
|
160
|
+
| Arquivo | Motivo da Modificacao |
|
|
161
|
+
|---------|----------------------|
|
|
162
|
+
| [arquivo] | [motivo] |
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
Se nenhum teste existente precisa ser modificado: `> Nenhum teste existente impactado.`
|
|
166
|
+
|
|
167
|
+
#### Informacoes adicionais do JSON
|
|
168
|
+
|
|
169
|
+
- **`cenarios_nao_cobertos`**: adicione como nota apos a secao 6.4
|
|
170
|
+
- **`recomendacoes`**: use para complementar testes ou identificar testes existentes a modificar
|
|
171
|
+
- **`erros_leitura`**: se houver, mencione quais arquivos nao puderam ser lidos
|
|
172
|
+
|
|
173
|
+
### Passo 5: Validar como engenheiro de tarefas
|
|
174
|
+
|
|
175
|
+
Antes de integrar a secao 6 na task:
|
|
176
|
+
|
|
177
|
+
1. Verifique **coerencia** com as secoes 1-5 da task (os componentes testados existem na secao 5?)
|
|
178
|
+
2. Verifique que os testes cobrem os **criterios de aceite tecnico** da secao 4
|
|
179
|
+
3. Ajuste nomenclatura de arquivos e funcoes de teste para seguir os padroes do projeto
|
|
180
|
+
4. Para tasks que NAO envolvem codigo (ex: documentacao, configuracao), preencha "N/A — task nao envolve codigo testavel"
|
|
181
|
+
|
|
182
|
+
### Passo 6: Integrar e salvar
|
|
183
|
+
|
|
184
|
+
1. Insira a secao 6 convertida na task
|
|
185
|
+
2. Salve o arquivo `tasks/TN.md`
|
|
186
|
+
3. Apresente ao usuario para aprovacao
|
|
187
|
+
|
|
188
|
+
**NAO peca aprovacao isolada da secao 6** — apresente a task completa para validacao.
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## Estado do Pipeline (sdd_state.yaml)
|
|
193
|
+
|
|
194
|
+
Apos salvar o task_plan.md e todas as tasks com sucesso, atualize o arquivo `sdd_state.yaml` no mesmo diretorio:
|
|
195
|
+
|
|
196
|
+
```yaml
|
|
197
|
+
# atualizar apenas estes campos:
|
|
198
|
+
current_step: task_plan
|
|
199
|
+
steps:
|
|
200
|
+
task_plan:
|
|
201
|
+
status: completed
|
|
202
|
+
summary: "<N tasks>, <M fases>, <P paralelizaveis>. US cobertas: <X/Y>"
|
|
203
|
+
execution:
|
|
204
|
+
status: pending
|
|
205
|
+
tasks_total: <N>
|
|
206
|
+
tasks_completed: 0
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
Se a validacao SDD nao foi executada, marque-a como `skipped`:
|
|
210
|
+
|
|
211
|
+
```yaml
|
|
212
|
+
steps:
|
|
213
|
+
validation:
|
|
214
|
+
status: skipped
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
Se o `sdd_state.yaml` nao existir, nao crie — o generate-prd e responsavel por criar.
|
|
218
|
+
|
|
25
219
|
## Entrada
|
|
26
220
|
|
|
27
221
|
$ARGUMENTS
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Gera TECH DIRECTION do SDD a partir de PRD aprovado. Param: caminho do prd.md"
|
|
3
|
+
argument-hint: "<prd.md ex: docs/feature-user/v1/prd.md>"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Use a skill **sdd-tech-direction-expert** para gerar o tech_direction.md.
|
|
7
|
+
|
|
8
|
+
## Contexto
|
|
9
|
+
|
|
10
|
+
Voce deve atuar como um **Arquiteto de Software Senior** especializado em tomada de decisao tecnica e seguir todo o processo interativo definido na skill sdd-tech-direction-expert para construir um tech_direction completo.
|
|
11
|
+
|
|
12
|
+
## Pre-requisito
|
|
13
|
+
|
|
14
|
+
Antes de iniciar, verifique se `.claude/rules/project-profile.md` existe. Se NAO existir, interrompa e peca ao usuario para executar `/generate-project-profile` primeiro.
|
|
15
|
+
|
|
16
|
+
## Regras Adicionais
|
|
17
|
+
|
|
18
|
+
- **Claude Code**: use a ferramenta `AskUserQuestion` para esclarecer duvidas com o usuario
|
|
19
|
+
- **NUNCA** deduza decisoes ou invente informacoes — na **DUVIDA PERGUNTE AO USUARIO**
|
|
20
|
+
- Leia o **project-profile.md** para entender stack, padroes e convencoes do projeto
|
|
21
|
+
- Pesquise o codebase ANTES de fazer perguntas (regras, padroes, libs)
|
|
22
|
+
- Faca **UMA pergunta por vez**, aguardando a resposta antes de avancar
|
|
23
|
+
- **SEMPRE** salve o arquivo fisico antes de apresentar ao usuario
|
|
24
|
+
- O arquivo deve ser salvo no mesmo diretorio do PRD: `docs/[nome-feature]/vN/tech_direction.md`
|
|
25
|
+
|
|
26
|
+
## Estado do Pipeline (sdd_state.yaml)
|
|
27
|
+
|
|
28
|
+
Apos salvar o tech_direction.md com sucesso, atualize o arquivo `sdd_state.yaml` no mesmo diretorio:
|
|
29
|
+
|
|
30
|
+
```yaml
|
|
31
|
+
# atualizar apenas estes campos:
|
|
32
|
+
current_step: tech_direction
|
|
33
|
+
steps:
|
|
34
|
+
tech_direction:
|
|
35
|
+
status: completed
|
|
36
|
+
summary: "<listar as principais decisoes tecnicas em 1 frase>"
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Se o `sdd_state.yaml` nao existir, nao crie — o generate-prd e responsavel por criar.
|
|
40
|
+
|
|
41
|
+
## Entrada
|
|
42
|
+
|
|
43
|
+
$ARGUMENTS
|