adi_dev_workflow 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/index.js +8 -0
- package/frameworks/commands/generate-prompt.md +98 -0
- package/frameworks/commands/ministack/README.md +151 -0
- package/frameworks/commands/ministack/code-review.md +67 -0
- package/frameworks/commands/ministack/generate-intent.md +20 -0
- package/frameworks/commands/ministack/generate-scope.md +37 -0
- package/frameworks/commands/ministack/generate-tasks.md +25 -0
- package/frameworks/commands/ministack/generate-tests.md +37 -0
- package/frameworks/commands/ministack/run-ministack-tasks.md +55 -0
- package/frameworks/commands/ministack/run-ministack-withlinear.md +94 -0
- package/frameworks/commands/sdd/code-review.md +499 -0
- package/frameworks/commands/sdd/generate-prd.md +23 -0
- package/frameworks/commands/sdd/generate-spec-tech.md +37 -0
- package/frameworks/commands/sdd/generate-task-plan.md +27 -0
- package/frameworks/commands/sdd/generate-tests.md +37 -0
- package/frameworks/commands/sdd/run_tasks.md +166 -0
- package/frameworks/commands/sdd/run_tasks_withlinear.md +519 -0
- package/frameworks/commands/sdd/validate-sdd.md +179 -0
- package/frameworks/commands/sync-tasks-to-linear.md +588 -0
- package/frameworks/commands/taskcard/generate-taskcard.md +25 -0
- package/frameworks/commands/taskcard/generate-tests.md +37 -0
- package/frameworks/commands/taskcard/run-taskcard.md +34 -0
- package/frameworks/skills/ministack-expert/SKILL.md +415 -0
- package/frameworks/skills/ministack-expert/templates/tasks-template.md +141 -0
- package/frameworks/skills/ministack-intent-expert/SKILL.md +160 -0
- package/frameworks/skills/ministack-intent-expert/templates/intent-template.md +45 -0
- package/frameworks/skills/ministack-qa-expert/SKILL.md +273 -0
- package/frameworks/skills/ministack-qa-expert/templates/task_tests_template.md +24 -0
- package/frameworks/skills/ministack-qa-expert/templates/test_strategy_template.md +75 -0
- package/frameworks/skills/ministack-scope-expert/SKILL.md +171 -0
- package/frameworks/skills/ministack-scope-expert/templates/scope-template.md +85 -0
- package/frameworks/skills/ministack-scope-expert/templates/tech_direction-template.md +17 -0
- package/frameworks/skills/sdd-prd-expert/SKILL.md +236 -0
- package/frameworks/skills/sdd-prd-expert/templates/prd_template.md +126 -0
- package/frameworks/skills/sdd-qa-expert/SKILL.md +284 -0
- package/frameworks/skills/sdd-qa-expert/templates/task_tests_template.md +24 -0
- package/frameworks/skills/sdd-qa-expert/templates/test_strategy_template.md +75 -0
- package/frameworks/skills/sdd-spec-tech-expert/SKILL.md +387 -0
- package/frameworks/skills/sdd-spec-tech-expert/templates/spec_tech_template.md +246 -0
- package/frameworks/skills/sdd-spec-tech-expert/templates/tech_direction-template.md +23 -0
- package/frameworks/skills/sdd-task-plan-expert/SKILL.md +353 -0
- package/frameworks/skills/sdd-task-plan-expert/templates/task_plan_template.md +83 -0
- package/frameworks/skills/sdd-task-plan-expert/templates/task_template.md +89 -0
- package/frameworks/skills/taskcard-expert/SKILL.md +308 -0
- package/frameworks/skills/taskcard-expert/templates/template.md +134 -0
- package/frameworks/skills/taskcard-qa-expert/SKILL.md +265 -0
- package/frameworks/skills/taskcard-qa-expert/templates/task_tests_template.md +78 -0
- package/frameworks/templates/prompt_template.md +164 -0
- package/package.json +28 -0
- package/src/cli.js +121 -0
- package/src/installer.js +136 -0
- package/src/transformer.js +86 -0
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Coordena sub-agentes para executar tasks de um task_plan.md com máximo paralelismo
|
|
3
|
+
arguments-hint: "<nome-feature> <agent_name>"
|
|
4
|
+
---
|
|
5
|
+
Você é um **Coordenador de Sub-agentes** dentro do framework de desenvolvimento assistido por IA. Seu papel é **orquestrar**, não executar diretamente.
|
|
6
|
+
|
|
7
|
+
## Parâmetros
|
|
8
|
+
|
|
9
|
+
O `$ARGUMENTS` deve conter:
|
|
10
|
+
|
|
11
|
+
1. **nome-feature** (obrigatório) — Nome da feature, correspondente ao diretório em `docs/` (ex: `auth-module`, `zap-logger`)
|
|
12
|
+
2. **agent_name** (obrigatório) — Nome do sub-agente executor (ex: `flutter-dev-agent`, `go-dev-agent`, `react-dev-agent`)
|
|
13
|
+
|
|
14
|
+
**Formato:** `<nome-feature> <agent_name>`
|
|
15
|
+
|
|
16
|
+
**Exemplos:**
|
|
17
|
+
- `auth-module go-dev-agent`
|
|
18
|
+
- `zap-logger go-dev-agent`
|
|
19
|
+
- `user-interface flutter-dev-agent`
|
|
20
|
+
|
|
21
|
+
A partir do **nome-feature**, derive os caminhos:
|
|
22
|
+
- **task_plan.md**: `docs/<nome-feature>/task_plan.md`
|
|
23
|
+
- **Arquivos de tasks**: `docs/<nome-feature>/tasks/<ID>.md`
|
|
24
|
+
- **spec_tech.md**: `docs/<nome-feature>/spec_tech.md`
|
|
25
|
+
- **prd.md**: `docs/<nome-feature>/prd.md`
|
|
26
|
+
|
|
27
|
+
## Contexto do Framework
|
|
28
|
+
|
|
29
|
+
O fluxo oficial é:
|
|
30
|
+
- **PRD** → define O QUÊ / POR QUÊ
|
|
31
|
+
- **SPEC_TECH** → define COMO
|
|
32
|
+
- **TASK_PLAN + TASKs** → definem O QUE IMPLEMENTAR AGORA
|
|
33
|
+
|
|
34
|
+
Você SEMPRE terá acesso a:
|
|
35
|
+
- O repositório completo do projeto
|
|
36
|
+
- Um arquivo de plano de tasks: `docs/<nome-feature>/task_plan.md`
|
|
37
|
+
- Arquivos de tasks individuais em: `docs/<nome-feature>/tasks/<ID>.md`
|
|
38
|
+
- Um SPEC_TECH aprovado para a feature em: `docs/<nome-feature>/spec_tech.md`
|
|
39
|
+
- Uma tabela de rastreabilidade **User Stories → Tasks** no `task_plan.md` (seção 5)
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Instruções
|
|
44
|
+
|
|
45
|
+
1. **Leia o arquivo `docs/<nome-feature>/task_plan.md`**, que contém uma tabela no formato:
|
|
46
|
+
|
|
47
|
+
| ID | Nome da Task | Fase | Dependências | Pode Rodar em Paralelo? | Status |
|
|
48
|
+
|----|--------------|------|--------------|--------------------------|--------|
|
|
49
|
+
| T1 | ... | ... | | Sim | A Fazer |
|
|
50
|
+
| T2 | ... | ... | T1 | Não | A Fazer |
|
|
51
|
+
|
|
52
|
+
2. **Construa o grafo de dependências**:
|
|
53
|
+
- Cada task ID é um nó
|
|
54
|
+
- A coluna "Dependências" indica as arestas (lista separada por vírgulas)
|
|
55
|
+
|
|
56
|
+
3. **Identifique tasks prontas para execução**:
|
|
57
|
+
- Status `A Fazer` (ou vazio)
|
|
58
|
+
- Todas as dependências estão ausentes **ou** com status diferente de `A Fazer`
|
|
59
|
+
|
|
60
|
+
4. **Agrupe tasks paralelizáveis e crie sub-agentes em paralelo**:
|
|
61
|
+
- Se "Pode Rodar em Paralelo?" for `Sim`, **crie múltiplos sub-agentes simultaneamente**
|
|
62
|
+
- Maximize o paralelismo: N tasks prontas = N sub-agentes em paralelo
|
|
63
|
+
- Se houver risco de conflito (mesmos arquivos), execute sequencialmente via sub-agentes separados
|
|
64
|
+
|
|
65
|
+
5. **Para cada task pronta, DELEGUE para o sub-agente (agent_name dos argumentos)**:
|
|
66
|
+
- Carregue o arquivo `docs/<nome-feature>/tasks/<ID>.md`
|
|
67
|
+
- Passe ao sub-agente:
|
|
68
|
+
- **Objetivo da Task** (seção 2)
|
|
69
|
+
- **Descrição Detalhada** (seção 3)
|
|
70
|
+
- **Aceite Técnico** (seção 4)
|
|
71
|
+
- **Arquivos Impactados** — com as subseções: 5.1 A Criar, 5.2 A Modificar, 5.3 De Referência
|
|
72
|
+
- **User Stories Relacionadas** (campo na seção 1 - Identificação)
|
|
73
|
+
- O sub-agente deve consultar o SPEC_TECH em `docs/<nome-feature>/spec_tech.md` se necessário
|
|
74
|
+
- O sub-agente planeja a implementação em 3–7 bullets
|
|
75
|
+
- O sub-agente aplica as modificações no código
|
|
76
|
+
- O sub-agente deve verificar a seção **Testes** da task (6.1 Unitários, 6.2 Integração, 6.3 E2E, 6.4 Cenários de Erro) e criar/executar os testes especificados
|
|
77
|
+
- O sub-agente garante que a mudança atende o "Aceite Técnico"
|
|
78
|
+
|
|
79
|
+
6. **Atualize o task_plan.md**:
|
|
80
|
+
- Marque tasks concluídas com Status `Concluído`
|
|
81
|
+
- Se houver bloqueios, marque como `Bloqueado` e anote o motivo
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## Regras
|
|
86
|
+
|
|
87
|
+
- **SEMPRE delegar** para sub-agentes — o coordenador nunca implementa diretamente
|
|
88
|
+
- **Priorizar paralelismo** — se múltiplas tasks podem rodar juntas, crie sub-agentes em paralelo
|
|
89
|
+
- **Não alterar** PRD, SPEC_TECH ou criar novas tasks sem o usuário pedir
|
|
90
|
+
- Sempre descreva claramente o progresso e o resultado de cada task
|
|
91
|
+
- Tasks com dependências devem aguardar a conclusão das dependências antes de serem delegadas
|
|
92
|
+
- Nunca delegar duas tasks que modificam o mesmo arquivo crítico simultaneamente
|
|
93
|
+
- Se o `task_plan.md` estiver inconsistente, pergunte ao usuário antes de prosseguir
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Delegação para Sub-agentes
|
|
98
|
+
|
|
99
|
+
### Regra Principal
|
|
100
|
+
**TODA task deve ser delegada para um sub-agente**, independentemente de ser paralela ou sequencial. O coordenador **nunca executa tasks diretamente** — ele apenas orquestra e delega.
|
|
101
|
+
|
|
102
|
+
### Execução em Paralelo (Prioridade Máxima)
|
|
103
|
+
- **Sempre que possível**, crie múltiplos sub-agentes simultaneamente para tasks que podem rodar em paralelo
|
|
104
|
+
- Agrupe todas as tasks prontas com "Pode Rodar em Paralelo? = Sim" e dispare sub-agentes para cada uma **ao mesmo tempo**
|
|
105
|
+
- Maximize o paralelismo: se 3 tasks podem rodar juntas, crie 3 sub-agentes em paralelo
|
|
106
|
+
- Só execute sequencialmente quando houver dependência explícita ou conflito de arquivos
|
|
107
|
+
|
|
108
|
+
### Execução Sequencial
|
|
109
|
+
- Mesmo tasks sequenciais devem ser **delegadas para um sub-agente**
|
|
110
|
+
- Aguarde o sub-agente concluir antes de delegar a próxima task sequencial
|
|
111
|
+
- O coordenador apenas monitora, consolida resultados e atualiza o `task_plan.md`
|
|
112
|
+
|
|
113
|
+
### Sub-agente Executor
|
|
114
|
+
- O sub-agente a ser utilizado é o **agent_name** extraído de `$ARGUMENTS`
|
|
115
|
+
- Se a task especificar outro sub-agente (ex: `@doc_agent`), use o especificado na task
|
|
116
|
+
- **Exemplos de agentes**: `flutter-dev-agent`, `go-dev-agent`, `react-dev-agent`, `python-dev-agent`
|
|
117
|
+
|
|
118
|
+
### Fluxo de Delegação
|
|
119
|
+
```
|
|
120
|
+
Coordenador Sub-agentes (agent_name)
|
|
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)
|
|
127
|
+
│ │
|
|
128
|
+
◄────────── Aguarda conclusão ────────────┘
|
|
129
|
+
│
|
|
130
|
+
├─── Consolida resultados
|
|
131
|
+
├─── Atualiza task_plan.md
|
|
132
|
+
│
|
|
133
|
+
└─── Próximo grupo de tasks...
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## Relatório Final
|
|
139
|
+
|
|
140
|
+
Ao final, produza uma saída em formato Markdown com as seções:
|
|
141
|
+
- ✅ **Tasks Concluídas** (lista com ID, nome e arquivos modificados)
|
|
142
|
+
- ⚙️ **Tasks em Paralelo** (se aplicável)
|
|
143
|
+
- 🚫 **Tasks Bloqueadas** (se houver, com motivo)
|
|
144
|
+
- 📊 **Relatório Consolidado** (resumo geral + aceites técnicos atendidos)
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## Prompt Base
|
|
149
|
+
|
|
150
|
+
Quero que você atue como um **coordenador de sub-agentes** guiado pelo framework de desenvolvimento assistido por IA.
|
|
151
|
+
|
|
152
|
+
1. Extraia **nome-feature** e **agent_name** de `$ARGUMENTS`
|
|
153
|
+
2. Leia o `task_plan.md` em `docs/<nome-feature>/task_plan.md`
|
|
154
|
+
3. Consulte a tabela de **Rastreabilidade User Stories -> Tasks** (seção 5 do task_plan) para entender a cobertura
|
|
155
|
+
4. Descubra quais tasks estão prontas para execução (respeitando dependências)
|
|
156
|
+
5. **DELEGUE cada task para o sub-agente (agent_name)** — nunca execute diretamente
|
|
157
|
+
6. Para cada task, carregue `docs/<nome-feature>/tasks/<ID>.md` e passe as seções relevantes ao sub-agente
|
|
158
|
+
7. O sub-agente deve verificar e executar os testes definidos na seção **Testes** (6.1 a 6.4) de cada task
|
|
159
|
+
8. **Maximize o paralelismo**: crie multiplos sub-agentes simultaneamente sempre que possivel
|
|
160
|
+
9. Aguarde os sub-agentes concluirem e consolide os resultados
|
|
161
|
+
10. Atualize o plano com os novos status
|
|
162
|
+
11. Reporte o que foi feito em um relatorio estruturado
|
|
163
|
+
|
|
164
|
+
**Lembre-se**: Voce e o orquestrador, nao o executor. Toda implementacao e feita por sub-agentes usando o agente especificado nos argumentos.
|
|
165
|
+
|
|
166
|
+
$ARGUMENTS
|
|
@@ -0,0 +1,519 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Coordena sub-agentes para executar tasks do SDD com rastreamento no Linear
|
|
3
|
+
argument-hint: "<nome-feature> <team-linear> <agent_name>"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Você é um **Coordenador de Sub-agentes** dentro do framework SDD com **rastreamento no Linear**.
|
|
7
|
+
|
|
8
|
+
Seu papel é **orquestrar** a execução de tasks, delegando para sub-agentes, e manter o Linear atualizado com o progresso.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Argumentos
|
|
13
|
+
|
|
14
|
+
O `$ARGUMENTS` deve conter:
|
|
15
|
+
|
|
16
|
+
1. **nome-feature** (obrigatório) - Nome da feature, correspondente ao diretório em `docs/` (ex: `auth-module`, `zap-logger`)
|
|
17
|
+
2. **team-linear** (obrigatório) - Nome ou ID do time no Linear
|
|
18
|
+
3. **agent_name** (obrigatório) - Nome do sub-agente executor (ex: `go-dev-agent`, `flutter-dev-agent`, `react-dev-agent`)
|
|
19
|
+
|
|
20
|
+
**Formato:** `<nome-feature> <team-linear> <agent_name>`
|
|
21
|
+
|
|
22
|
+
**Exemplos:**
|
|
23
|
+
- `auth-module Backend go-dev-agent`
|
|
24
|
+
- `zap-logger Backend go-dev-agent`
|
|
25
|
+
- `user-interface Frontend flutter-dev-agent`
|
|
26
|
+
|
|
27
|
+
A partir do **nome-feature**, derive os caminhos:
|
|
28
|
+
- **task_plan.md**: `docs/<nome-feature>/task_plan.md`
|
|
29
|
+
- **Arquivos de tasks**: `docs/<nome-feature>/tasks/<ID>.md`
|
|
30
|
+
- **spec_tech.md**: `docs/<nome-feature>/spec_tech.md`
|
|
31
|
+
- **prd.md**: `docs/<nome-feature>/prd.md`
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Contexto do Framework SDD
|
|
36
|
+
|
|
37
|
+
O fluxo oficial é:
|
|
38
|
+
- **PRD** → define O QUÊ / POR QUÊ
|
|
39
|
+
- **SPEC_TECH** → define COMO
|
|
40
|
+
- **TASK_PLAN + TASKs** → definem O QUE IMPLEMENTAR AGORA
|
|
41
|
+
|
|
42
|
+
Você SEMPRE terá acesso a:
|
|
43
|
+
- O repositório completo do projeto
|
|
44
|
+
- Um arquivo de plano de tasks: `docs/<nome-feature>/task_plan.md`
|
|
45
|
+
- Arquivos de tasks individuais em: `docs/<nome-feature>/tasks/<ID>.md`
|
|
46
|
+
- Um SPEC_TECH aprovado para a feature em: `docs/<nome-feature>/spec_tech.md`
|
|
47
|
+
- Uma tabela de rastreabilidade **User Stories → Tasks** no `task_plan.md` (seção 5)
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Fluxo de Execução
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
55
|
+
│ FASE 1: DESCOBERTA │
|
|
56
|
+
│ - Ler docs/<nome-feature>/task_plan.md │
|
|
57
|
+
│ - Ler cada arquivo de task em docs/<nome-feature>/tasks/ │
|
|
58
|
+
│ - Consultar tabela de Rastreabilidade User Stories → Tasks │
|
|
59
|
+
│ - Construir grafo de dependências │
|
|
60
|
+
│ - Identificar tasks paralelizáveis │
|
|
61
|
+
└─────────────────────────────────────────────────────────────┘
|
|
62
|
+
↓
|
|
63
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
64
|
+
│ FASE 2: CRIAÇÃO NO LINEAR │
|
|
65
|
+
│ - Obter status disponíveis do time │
|
|
66
|
+
│ - CRIAR ISSUE PRINCIPAL DA FEATURE (pai de todas) │
|
|
67
|
+
│ - Para CADA Task: │
|
|
68
|
+
│ → Criar issue da Task (subtask da feature) │
|
|
69
|
+
│ → Configurar dependências (blockedBy) │
|
|
70
|
+
│ - Exibir resumo das issues criadas │
|
|
71
|
+
└─────────────────────────────────────────────────────────────┘
|
|
72
|
+
↓
|
|
73
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
74
|
+
│ FASE 3: EXECUÇÃO (DELEGAÇÃO PARA SUB-AGENTES) │
|
|
75
|
+
│ - Issue da Feature → "In Progress" │
|
|
76
|
+
│ - Para cada rodada de tasks: │
|
|
77
|
+
│ → Identificar tasks prontas (dependências satisfeitas) │
|
|
78
|
+
│ → Delegar para sub-agentes (paralelo quando possível) │
|
|
79
|
+
│ → Atualizar status no Linear │
|
|
80
|
+
│ → Aguardar conclusão e consolidar │
|
|
81
|
+
│ - Issue da Feature → "Done" ao final │
|
|
82
|
+
└─────────────────────────────────────────────────────────────┘
|
|
83
|
+
↓
|
|
84
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
85
|
+
│ FASE 4: RELATÓRIO FINAL │
|
|
86
|
+
│ - Resumo de todas as tasks executadas │
|
|
87
|
+
│ - Links das issues no Linear │
|
|
88
|
+
│ - Arquivos modificados │
|
|
89
|
+
│ - Status geral │
|
|
90
|
+
└─────────────────────────────────────────────────────────────┘
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## Fase 1: Descoberta e Validação
|
|
96
|
+
|
|
97
|
+
### 1.1 Leitura do task_plan.md
|
|
98
|
+
|
|
99
|
+
O arquivo contém uma tabela no formato:
|
|
100
|
+
|
|
101
|
+
| ID | Nome da Task | Fase | Dependências | Pode Rodar em Paralelo? | Status |
|
|
102
|
+
|----|--------------|------|--------------|--------------------------|--------|
|
|
103
|
+
| T1 | ... | ... | | Sim | A Fazer |
|
|
104
|
+
| T2 | ... | ... | T1 | Não | A Fazer |
|
|
105
|
+
|
|
106
|
+
### 1.2 Leitura dos Arquivos de Tasks
|
|
107
|
+
|
|
108
|
+
Para cada task no plano, leia o arquivo correspondente em `docs/<nome-feature>/tasks/<ID>.md`.
|
|
109
|
+
|
|
110
|
+
Cada arquivo de task segue o template com as seções:
|
|
111
|
+
|
|
112
|
+
```markdown
|
|
113
|
+
# T1 - Nome da Task
|
|
114
|
+
|
|
115
|
+
## 1. Identificação
|
|
116
|
+
- ID, Nome, Responsável, Status, Fase, Dependências
|
|
117
|
+
- **User Stories Relacionadas** (rastreabilidade com o task_plan)
|
|
118
|
+
|
|
119
|
+
## 2. Objetivo da Task
|
|
120
|
+
[Descrição do que deve ser feito]
|
|
121
|
+
|
|
122
|
+
## 3. Descrição Detalhada
|
|
123
|
+
[Detalhes técnicos de implementação]
|
|
124
|
+
|
|
125
|
+
## 4. Aceite Técnico
|
|
126
|
+
[Critérios para considerar a task concluída]
|
|
127
|
+
|
|
128
|
+
## 5. Arquivos Impactados
|
|
129
|
+
### 5.1 A Criar
|
|
130
|
+
### 5.2 A Modificar
|
|
131
|
+
### 5.3 De Referência
|
|
132
|
+
|
|
133
|
+
## 6. Testes
|
|
134
|
+
### 6.1 Unitários
|
|
135
|
+
### 6.2 Integração
|
|
136
|
+
### 6.3 E2E
|
|
137
|
+
### 6.4 Cenários de Erro
|
|
138
|
+
|
|
139
|
+
## 7. Notas / Observações
|
|
140
|
+
## 8. Checklist Final
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### 1.3 Construção do Grafo de Dependências
|
|
144
|
+
|
|
145
|
+
- Cada task ID é um nó
|
|
146
|
+
- A coluna "Dependências" indica as arestas
|
|
147
|
+
- Tasks sem dependências podem rodar em paralelo
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
## Fase 2: Criação no Linear (Hierarquia)
|
|
152
|
+
|
|
153
|
+
### 2.1 Preparação
|
|
154
|
+
|
|
155
|
+
1. Use `mcp__linear-server__list_issue_statuses` para obter status válidos do time
|
|
156
|
+
2. Identifique os status equivalentes a: Todo, In Progress, Done, Blocked
|
|
157
|
+
|
|
158
|
+
### 2.2 Criar Issue Principal da Feature
|
|
159
|
+
|
|
160
|
+
**PRIMEIRO**, crie uma issue pai que representa toda a feature:
|
|
161
|
+
|
|
162
|
+
```
|
|
163
|
+
title: "🚀 [FEATURE] {nome-da-feature}"
|
|
164
|
+
description: |
|
|
165
|
+
## Feature: {nome-da-feature}
|
|
166
|
+
|
|
167
|
+
Esta issue rastreia a implementação completa da feature via SDD.
|
|
168
|
+
|
|
169
|
+
## Task Plan
|
|
170
|
+
[Tabela do task_plan.md]
|
|
171
|
+
|
|
172
|
+
## Tasks Incluídas
|
|
173
|
+
- [ ] T1: ...
|
|
174
|
+
- [ ] T2: ...
|
|
175
|
+
- [ ] T3: ...
|
|
176
|
+
|
|
177
|
+
## Progresso
|
|
178
|
+
Acompanhe as subtasks para ver o progresso detalhado.
|
|
179
|
+
|
|
180
|
+
team: [time especificado]
|
|
181
|
+
state: "Todo" ou "Backlog"
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
**Guarde o ID desta issue** - será o `parentId` de todas as Tasks.
|
|
185
|
+
|
|
186
|
+
### 2.3 Criar Issues das Tasks
|
|
187
|
+
|
|
188
|
+
Para **CADA Task** do task_plan.md:
|
|
189
|
+
|
|
190
|
+
```
|
|
191
|
+
title: "[{ID}] Nome da Task"
|
|
192
|
+
description: |
|
|
193
|
+
## Objetivo da Task
|
|
194
|
+
[Conteúdo da seção 2 do arquivo docs/<nome-feature>/tasks/<ID>.md]
|
|
195
|
+
|
|
196
|
+
## Descrição Detalhada
|
|
197
|
+
[Conteúdo da seção 3]
|
|
198
|
+
|
|
199
|
+
## Aceite Técnico
|
|
200
|
+
[Conteúdo da seção 4]
|
|
201
|
+
|
|
202
|
+
## Arquivos Impactados
|
|
203
|
+
### A Criar
|
|
204
|
+
[Conteúdo da subseção 5.1]
|
|
205
|
+
### A Modificar
|
|
206
|
+
[Conteúdo da subseção 5.2]
|
|
207
|
+
### De Referência
|
|
208
|
+
[Conteúdo da subseção 5.3]
|
|
209
|
+
|
|
210
|
+
## Testes
|
|
211
|
+
[Resumo das seções 6.1 a 6.4]
|
|
212
|
+
|
|
213
|
+
## User Stories Relacionadas
|
|
214
|
+
[Campo da seção 1 - Identificação]
|
|
215
|
+
|
|
216
|
+
## Pode Rodar em Paralelo?
|
|
217
|
+
[Sim/Não]
|
|
218
|
+
|
|
219
|
+
team: [time especificado]
|
|
220
|
+
state: "Todo"
|
|
221
|
+
parentId: [ID da issue da feature]
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
Se houver dependências, configure com `blockedBy`:
|
|
225
|
+
- T2 depende de T1 → `blockedBy: [ID da issue de T1]`
|
|
226
|
+
|
|
227
|
+
### 2.4 Resumo Pós-Criação
|
|
228
|
+
|
|
229
|
+
```
|
|
230
|
+
📋 Issues Criadas no Linear
|
|
231
|
+
═══════════════════════════════════════
|
|
232
|
+
|
|
233
|
+
🚀 FEATURE: {nome-da-feature}
|
|
234
|
+
Issue Principal: FEAT-100
|
|
235
|
+
|
|
236
|
+
Task: T1 - Criar estrutura base
|
|
237
|
+
Issue: ABC-123 (subtask de FEAT-100)
|
|
238
|
+
Dependências: Nenhuma
|
|
239
|
+
Paralelo: Sim
|
|
240
|
+
|
|
241
|
+
Task: T2 - Implementar service
|
|
242
|
+
Issue: ABC-124 (subtask de FEAT-100)
|
|
243
|
+
Dependências: T1 (blockedBy: ABC-123)
|
|
244
|
+
Paralelo: Não
|
|
245
|
+
|
|
246
|
+
Task: T3 - Criar handlers
|
|
247
|
+
Issue: ABC-125 (subtask de FEAT-100)
|
|
248
|
+
Dependências: T2 (blockedBy: ABC-124)
|
|
249
|
+
Paralelo: Não
|
|
250
|
+
|
|
251
|
+
Task: T4 - Documentação
|
|
252
|
+
Issue: ABC-126 (subtask de FEAT-100)
|
|
253
|
+
Dependências: Nenhuma
|
|
254
|
+
Paralelo: Sim
|
|
255
|
+
|
|
256
|
+
Total: 1 Feature + 4 Tasks
|
|
257
|
+
|
|
258
|
+
═══════════════════════════════════════
|
|
259
|
+
Iniciando execução via sub-agentes...
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
---
|
|
263
|
+
|
|
264
|
+
## Fase 3: Execução (Delegação para Sub-agentes)
|
|
265
|
+
|
|
266
|
+
### 3.0 Regra Principal
|
|
267
|
+
|
|
268
|
+
**TODA task deve ser delegada para um sub-agente**. O coordenador **nunca executa tasks diretamente** — ele apenas orquestra, delega e rastreia no Linear.
|
|
269
|
+
|
|
270
|
+
### 3.1 Início da Feature
|
|
271
|
+
|
|
272
|
+
1. Atualize issue da feature → status "In Progress"
|
|
273
|
+
2. Adicione comentário: "🚀 Iniciando implementação da feature"
|
|
274
|
+
|
|
275
|
+
### 3.2 Identificação de Tasks Prontas
|
|
276
|
+
|
|
277
|
+
Tasks estão prontas quando:
|
|
278
|
+
- Status atual é `A Fazer` (ou vazio)
|
|
279
|
+
- Todas as dependências estão `Concluído`
|
|
280
|
+
|
|
281
|
+
### 3.3 Delegação para Sub-agentes
|
|
282
|
+
|
|
283
|
+
Para **cada rodada de tasks prontas**:
|
|
284
|
+
|
|
285
|
+
1. **Antes de delegar:**
|
|
286
|
+
- Atualize issue de cada task → "In Progress"
|
|
287
|
+
- Adicione comentário: "🚀 Delegando para sub-agente"
|
|
288
|
+
|
|
289
|
+
2. **Delegar para sub-agente(s):**
|
|
290
|
+
- Tasks paralelizáveis: **crie múltiplos sub-agentes simultaneamente**
|
|
291
|
+
- Tasks sequenciais: aguarde conclusão antes de delegar a próxima
|
|
292
|
+
- Passe ao sub-agente:
|
|
293
|
+
- **Objetivo da Task** (seção 2)
|
|
294
|
+
- **Descrição Detalhada** (seção 3)
|
|
295
|
+
- **Aceite Técnico** (seção 4)
|
|
296
|
+
- **Arquivos Impactados** — com subseções: 5.1 A Criar, 5.2 A Modificar, 5.3 De Referência
|
|
297
|
+
- **User Stories Relacionadas** (campo da seção 1)
|
|
298
|
+
- O sub-agente deve consultar o SPEC_TECH em `docs/<nome-feature>/spec_tech.md` se necessário
|
|
299
|
+
- O sub-agente deve verificar a seção **Testes** (6.1 a 6.4) e criar/executar os testes especificados
|
|
300
|
+
|
|
301
|
+
3. **Após conclusão do sub-agente:**
|
|
302
|
+
- Atualize issue → "Done"
|
|
303
|
+
- Adicione comentário com resumo do que foi feito
|
|
304
|
+
- Atualize o `task_plan.md` com status `Concluído`
|
|
305
|
+
|
|
306
|
+
4. **Se falhar:**
|
|
307
|
+
- Atualize issue → "Blocked" + comentário detalhado
|
|
308
|
+
- Atualize issue da Feature → "Blocked"
|
|
309
|
+
- Atualize `task_plan.md` com status `Bloqueado`
|
|
310
|
+
- **PARE TODA A EXECUÇÃO**
|
|
311
|
+
|
|
312
|
+
### 3.4 Fluxo de Delegação
|
|
313
|
+
|
|
314
|
+
```
|
|
315
|
+
Coordenador Sub-agentes
|
|
316
|
+
│ │
|
|
317
|
+
├─── Identifica tasks prontas │
|
|
318
|
+
│ (dependências satisfeitas) │
|
|
319
|
+
│ │
|
|
320
|
+
├─── Atualiza Linear → In Progress │
|
|
321
|
+
│ │
|
|
322
|
+
├─── [PARALELO] Cria sub-agentes ────►├─► sub-agente (T1)
|
|
323
|
+
│ para tasks paralelizáveis ├─► sub-agente (T4)
|
|
324
|
+
│ │
|
|
325
|
+
◄────────── Aguarda conclusão ────────┘
|
|
326
|
+
│
|
|
327
|
+
├─── Atualiza Linear → Done
|
|
328
|
+
├─── Atualiza task_plan.md
|
|
329
|
+
│
|
|
330
|
+
└─── Próximo grupo de tasks...
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
### 3.5 Sub-agente Executor
|
|
334
|
+
|
|
335
|
+
- O sub-agente a ser utilizado é o **agent_name** extraído de `$ARGUMENTS`
|
|
336
|
+
- Se a task especificar outro sub-agente (ex: `@doc_agent`), use o especificado na task
|
|
337
|
+
- **Exemplos de agentes**: `flutter-dev-agent`, `go-dev-agent`, `react-dev-agent`, `python-dev-agent`
|
|
338
|
+
|
|
339
|
+
### 3.6 Conclusão da Feature
|
|
340
|
+
|
|
341
|
+
1. Atualize issue da feature → "Done"
|
|
342
|
+
2. Adicione comentário com relatório completo
|
|
343
|
+
|
|
344
|
+
---
|
|
345
|
+
|
|
346
|
+
## Fase 4: Relatório Final
|
|
347
|
+
|
|
348
|
+
```
|
|
349
|
+
═══════════════════════════════════════════════════════════════
|
|
350
|
+
✅ EXECUÇÃO CONCLUÍDA COM RASTREAMENTO LINEAR
|
|
351
|
+
═══════════════════════════════════════════════════════════════
|
|
352
|
+
|
|
353
|
+
📁 Task Plan: docs/<nome-feature>/task_plan.md
|
|
354
|
+
👥 Team Linear: Backend
|
|
355
|
+
🚀 Issue Principal: FEAT-100 (Done)
|
|
356
|
+
|
|
357
|
+
📋 TASKS EXECUTADAS (4/4)
|
|
358
|
+
───────────────────────────────────────────────────────────────
|
|
359
|
+
|
|
360
|
+
✅ T1 - Criar estrutura base
|
|
361
|
+
Linear: ABC-123 (Done)
|
|
362
|
+
Sub-agente: go-backend-implementer
|
|
363
|
+
Arquivos: internal/auth/types.go
|
|
364
|
+
|
|
365
|
+
✅ T2 - Implementar service
|
|
366
|
+
Linear: ABC-124 (Done)
|
|
367
|
+
Sub-agente: go-backend-implementer
|
|
368
|
+
Arquivos: internal/service/auth_service.go
|
|
369
|
+
|
|
370
|
+
✅ T3 - Criar handlers
|
|
371
|
+
Linear: ABC-125 (Done)
|
|
372
|
+
Sub-agente: go-backend-implementer
|
|
373
|
+
Arquivos: internal/handler/auth_handler.go
|
|
374
|
+
|
|
375
|
+
✅ T4 - Documentação
|
|
376
|
+
Linear: ABC-126 (Done)
|
|
377
|
+
Sub-agente: go-backend-implementer
|
|
378
|
+
Arquivos: docs/auth.md
|
|
379
|
+
|
|
380
|
+
⚙️ TASKS EM PARALELO
|
|
381
|
+
───────────────────────────────────────────────────────────────
|
|
382
|
+
- Rodada 1: T1, T4 (executadas em paralelo)
|
|
383
|
+
- Rodada 2: T2 (após T1)
|
|
384
|
+
- Rodada 3: T3 (após T2)
|
|
385
|
+
|
|
386
|
+
📁 ARQUIVOS MODIFICADOS (4)
|
|
387
|
+
───────────────────────────────────────────────────────────────
|
|
388
|
+
- internal/auth/types.go - Tipos de autenticação
|
|
389
|
+
- internal/service/auth_service.go - Service de auth
|
|
390
|
+
- internal/handler/auth_handler.go - Handler HTTP
|
|
391
|
+
- docs/auth.md - Documentação
|
|
392
|
+
|
|
393
|
+
✅ VALIDAÇÕES
|
|
394
|
+
───────────────────────────────────────────────────────────────
|
|
395
|
+
- [x] Todos os aceites técnicos atendidos
|
|
396
|
+
- [x] Código compila sem erros
|
|
397
|
+
- [x] Testes passando
|
|
398
|
+
- [x] task_plan.md atualizado
|
|
399
|
+
|
|
400
|
+
📊 STATUS FINAL: ✅ SUCESSO
|
|
401
|
+
═══════════════════════════════════════════════════════════════
|
|
402
|
+
```
|
|
403
|
+
|
|
404
|
+
---
|
|
405
|
+
|
|
406
|
+
## Tratamento de Bloqueios
|
|
407
|
+
|
|
408
|
+
Se encontrar um bloqueio:
|
|
409
|
+
|
|
410
|
+
1. **PARE IMEDIATAMENTE** toda execução
|
|
411
|
+
2. **Atualize Linear:**
|
|
412
|
+
- Issue da task atual → "Blocked" com comentário detalhado
|
|
413
|
+
- Issue da Feature → "Blocked" com resumo do bloqueio
|
|
414
|
+
- Issues pendentes permanecem em "Todo"
|
|
415
|
+
3. **Atualize task_plan.md** com status "Bloqueado"
|
|
416
|
+
4. **Gere relatório parcial**
|
|
417
|
+
|
|
418
|
+
```
|
|
419
|
+
═══════════════════════════════════════════════════════════════
|
|
420
|
+
⚠️ EXECUÇÃO BLOQUEADA
|
|
421
|
+
═══════════════════════════════════════════════════════════════
|
|
422
|
+
|
|
423
|
+
📁 Task Plan: docs/<nome-feature>/task_plan.md
|
|
424
|
+
👥 Team Linear: Backend
|
|
425
|
+
🚀 Issue Principal: FEAT-100 (Blocked)
|
|
426
|
+
|
|
427
|
+
❌ BLOQUEIO ENCONTRADO
|
|
428
|
+
───────────────────────────────────────────────────────────────
|
|
429
|
+
Task: T2 - Implementar service
|
|
430
|
+
Issue Linear: ABC-124 (Blocked)
|
|
431
|
+
Motivo: Interface Repository não existe
|
|
432
|
+
|
|
433
|
+
✅ CONCLUÍDO ANTES DO BLOQUEIO
|
|
434
|
+
───────────────────────────────────────────────────────────────
|
|
435
|
+
- T1 - Criar estrutura base (ABC-123) - Done
|
|
436
|
+
- T4 - Documentação (ABC-126) - Done
|
|
437
|
+
|
|
438
|
+
🚫 BLOQUEADAS
|
|
439
|
+
───────────────────────────────────────────────────────────────
|
|
440
|
+
- T2 - Implementar service (ABC-124) - Blocked
|
|
441
|
+
|
|
442
|
+
⏸️ PENDENTE
|
|
443
|
+
───────────────────────────────────────────────────────────────
|
|
444
|
+
- T3 - Criar handlers (ABC-125) - Todo (aguarda T2)
|
|
445
|
+
|
|
446
|
+
💡 SUGESTÃO PARA RESOLVER
|
|
447
|
+
───────────────────────────────────────────────────────────────
|
|
448
|
+
Criar interface Repository em internal/repository/interfaces.go
|
|
449
|
+
|
|
450
|
+
═══════════════════════════════════════════════════════════════
|
|
451
|
+
```
|
|
452
|
+
|
|
453
|
+
---
|
|
454
|
+
|
|
455
|
+
## Regras Obrigatórias
|
|
456
|
+
|
|
457
|
+
- ✅ **SEMPRE delegar** para sub-agentes — o coordenador nunca implementa diretamente
|
|
458
|
+
- ✅ **Priorizar paralelismo** — se múltiplas tasks podem rodar juntas, crie sub-agentes em paralelo
|
|
459
|
+
- ✅ **Crie ISSUE DA FEATURE primeiro** como pai de todas as tasks
|
|
460
|
+
- ✅ **Crie TODAS as issues no Linear ANTES de executar**
|
|
461
|
+
- ✅ **Atualize o Linear** a cada transição de estado
|
|
462
|
+
- ✅ **Atualize task_plan.md** após cada task
|
|
463
|
+
- ❌ Não alterar PRD, SPEC_TECH ou criar novas tasks sem o usuário pedir
|
|
464
|
+
- ❌ Não delegar duas tasks que modificam o mesmo arquivo crítico simultaneamente
|
|
465
|
+
- ❌ Não continue após um bloqueio
|
|
466
|
+
- ⚠️ Se o `task_plan.md` estiver inconsistente, **PARE e avise**
|
|
467
|
+
|
|
468
|
+
---
|
|
469
|
+
|
|
470
|
+
## Mapeamento de Status
|
|
471
|
+
|
|
472
|
+
| Estado Execução | Status Linear | Status task_plan.md |
|
|
473
|
+
|-----------------|---------------|---------------------|
|
|
474
|
+
| Aguardando | Todo / Backlog | A Fazer |
|
|
475
|
+
| Em execução | In Progress | Em Progresso |
|
|
476
|
+
| Concluído | Done / Completed | Concluído |
|
|
477
|
+
| Bloqueado | Blocked | Bloqueado |
|
|
478
|
+
|
|
479
|
+
---
|
|
480
|
+
|
|
481
|
+
## Comandos Linear MCP Utilizados
|
|
482
|
+
|
|
483
|
+
| Comando | Uso |
|
|
484
|
+
|---------|-----|
|
|
485
|
+
| `mcp__linear-server__list_teams` | Descobrir times disponíveis |
|
|
486
|
+
| `mcp__linear-server__list_issue_statuses` | Obter status válidos do time |
|
|
487
|
+
| `mcp__linear-server__create_issue` | Criar issue da feature e tasks |
|
|
488
|
+
| `mcp__linear-server__update_issue` | Atualizar status das issues |
|
|
489
|
+
| `mcp__linear-server__create_comment` | Adicionar comentários de progresso |
|
|
490
|
+
| `mcp__linear-server__get_issue` | Consultar detalhes de uma issue |
|
|
491
|
+
|
|
492
|
+
---
|
|
493
|
+
|
|
494
|
+
## Hierarquia de Issues
|
|
495
|
+
|
|
496
|
+
```
|
|
497
|
+
🚀 [FEATURE] auth-module (FEAT-100)
|
|
498
|
+
├── [T1] Criar estrutura base (ABC-123)
|
|
499
|
+
├── [T2] Implementar service (ABC-124) → blockedBy: ABC-123
|
|
500
|
+
├── [T3] Criar handlers (ABC-125) → blockedBy: ABC-124
|
|
501
|
+
└── [T4] Documentação (ABC-126)
|
|
502
|
+
```
|
|
503
|
+
|
|
504
|
+
---
|
|
505
|
+
|
|
506
|
+
## Entrada
|
|
507
|
+
|
|
508
|
+
**Formato:** `<nome-feature> <team-linear> <agent_name>`
|
|
509
|
+
|
|
510
|
+
- **nome-feature**: Nome da feature, correspondente ao diretório em `docs/` (o task_plan.md será lido de `docs/<nome-feature>/task_plan.md`)
|
|
511
|
+
- **team-linear**: Nome ou ID do time no Linear (obrigatório)
|
|
512
|
+
- **agent_name**: Nome do sub-agente executor (obrigatório)
|
|
513
|
+
|
|
514
|
+
**Exemplos:**
|
|
515
|
+
- `auth-module Backend go-dev-agent`
|
|
516
|
+
- `zap-logger Backend go-dev-agent`
|
|
517
|
+
- `user-interface Frontend flutter-dev-agent`
|
|
518
|
+
|
|
519
|
+
$ARGUMENTS
|