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.
Files changed (135) hide show
  1. package/bin/index.js +0 -0
  2. package/frameworks/agents/qa-staff-engineer.md +311 -0
  3. package/frameworks/agents/qa-validation-expert.md +458 -0
  4. package/frameworks/agents/tech-review-conformance.md +200 -0
  5. package/frameworks/commands/generate-project-profile.md +68 -0
  6. package/frameworks/commands/generate-prompt.md +33 -98
  7. package/frameworks/commands/ministack/README.md +61 -46
  8. package/frameworks/commands/ministack/code-review.md +36 -49
  9. package/frameworks/commands/ministack/generate-intent.md +25 -2
  10. package/frameworks/commands/ministack/generate-scope.md +30 -6
  11. package/frameworks/commands/ministack/generate-tasks.md +191 -6
  12. package/frameworks/commands/ministack/generate-tech-direction.md +43 -0
  13. package/frameworks/commands/ministack/run-ministack-tasks.md +352 -33
  14. package/frameworks/commands/ministack/run-ministack-withlinear.md +23 -22
  15. package/frameworks/commands/ministack/status.md +153 -0
  16. package/frameworks/commands/sdd/code-review.md +10 -10
  17. package/frameworks/commands/sdd/generate-prd.md +32 -2
  18. package/frameworks/commands/sdd/generate-task-plan.md +199 -5
  19. package/frameworks/commands/sdd/generate-tech-direction.md +43 -0
  20. package/frameworks/commands/sdd/generate-tech-spec.md +218 -0
  21. package/frameworks/commands/sdd/generate-tests.md +2 -2
  22. package/frameworks/commands/sdd/run_tasks.md +391 -43
  23. package/frameworks/commands/sdd/run_tasks_withlinear.md +276 -37
  24. package/frameworks/commands/sdd/status.md +160 -0
  25. package/frameworks/commands/sdd/validate-sdd.md +18 -2
  26. package/frameworks/commands/sync-tasks-to-linear.md +588 -588
  27. package/frameworks/commands/taskcard/generate-taskcard.md +113 -25
  28. package/frameworks/commands/taskcard/run-taskcard.md +203 -34
  29. package/frameworks/skills/ministack-intent-expert/SKILL.md +16 -3
  30. package/frameworks/skills/ministack-intent-expert/templates/intent-template.md +1 -1
  31. package/frameworks/skills/ministack-scope-expert/SKILL.md +19 -11
  32. package/frameworks/skills/ministack-scope-expert/templates/scope-template.md +1 -1
  33. package/frameworks/skills/ministack-tasks-expert/SKILL.md +204 -0
  34. package/frameworks/skills/ministack-tasks-expert/templates/task_plan_template.md +78 -0
  35. package/frameworks/skills/ministack-tasks-expert/templates/task_template.md +103 -0
  36. package/frameworks/skills/ministack-tech-direction-expert/SKILL.md +230 -0
  37. package/frameworks/skills/ministack-tech-direction-expert/evals/evals.json +1 -0
  38. package/frameworks/skills/ministack-tech-direction-expert/templates/tech_direction-template.md +17 -0
  39. package/frameworks/skills/prompt-engineer-expert/SKILL.md +232 -0
  40. package/frameworks/skills/prompt-engineer-expert/templates/prompt_template.md +139 -0
  41. package/frameworks/skills/sdd-prd-expert/SKILL.md +155 -95
  42. package/frameworks/skills/sdd-prd-expert/evals/evals.json +59 -0
  43. package/frameworks/skills/sdd-prd-expert/templates/prd_template.md +46 -46
  44. package/frameworks/skills/sdd-prd-expert/templates/tech_direction-template.md +23 -0
  45. package/frameworks/skills/sdd-task-plan-expert/SKILL.md +191 -201
  46. package/frameworks/skills/sdd-task-plan-expert/evals/evals.json +109 -0
  47. package/frameworks/skills/sdd-task-plan-expert/templates/task_plan_template.md +33 -33
  48. package/frameworks/skills/sdd-task-plan-expert/templates/task_template.md +58 -32
  49. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/benchmark.json +99 -0
  50. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/benchmark.md +64 -0
  51. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/eval_metadata.json +12 -0
  52. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/grading.json +32 -0
  53. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/outputs/response.md +134 -0
  54. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/outputs/transcript.md +68 -0
  55. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/timing.json +5 -0
  56. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/grading.json +32 -0
  57. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/outputs/response.md +525 -0
  58. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/outputs/transcript.md +30 -0
  59. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/timing.json +5 -0
  60. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/eval_metadata.json +12 -0
  61. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/grading.json +32 -0
  62. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/outputs/response.md +1126 -0
  63. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/outputs/transcript.md +131 -0
  64. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/timing.json +5 -0
  65. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/grading.json +32 -0
  66. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/outputs/response.md +452 -0
  67. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/outputs/transcript.md +78 -0
  68. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/timing.json +5 -0
  69. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/eval_metadata.json +12 -0
  70. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/grading.json +32 -0
  71. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/outputs/response.md +101 -0
  72. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/outputs/transcript.md +133 -0
  73. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/timing.json +5 -0
  74. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/grading.json +32 -0
  75. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/outputs/response.md +248 -0
  76. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/outputs/transcript.md +49 -0
  77. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/timing.json +5 -0
  78. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/review.html +1325 -0
  79. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/benchmark.json +94 -0
  80. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/benchmark.md +67 -0
  81. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/eval_metadata.json +12 -0
  82. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/grading.json +32 -0
  83. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/outputs/response.md +117 -0
  84. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/outputs/transcript.md +91 -0
  85. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/timing.json +1 -0
  86. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/grading.json +32 -0
  87. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/outputs/response.md +694 -0
  88. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/outputs/transcript.md +45 -0
  89. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/timing.json +1 -0
  90. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/eval_metadata.json +12 -0
  91. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/grading.json +32 -0
  92. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/outputs/response.md +1087 -0
  93. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/outputs/transcript.md +124 -0
  94. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/timing.json +1 -0
  95. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/grading.json +32 -0
  96. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/outputs/response.md +458 -0
  97. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/outputs/transcript.md +84 -0
  98. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/timing.json +1 -0
  99. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/eval_metadata.json +12 -0
  100. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/grading.json +32 -0
  101. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/outputs/response.md +70 -0
  102. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/outputs/transcript.md +148 -0
  103. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/timing.json +1 -0
  104. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/grading.json +32 -0
  105. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/outputs/response.md +249 -0
  106. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/outputs/transcript.md +80 -0
  107. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/timing.json +1 -0
  108. package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/review.html +1325 -0
  109. package/frameworks/skills/sdd-tech-direction-expert/SKILL.md +235 -0
  110. package/frameworks/skills/sdd-tech-direction-expert/evals/evals.json +1 -0
  111. package/frameworks/skills/sdd-tech-direction-expert/templates/tech_direction-template.md +23 -0
  112. package/frameworks/skills/sdd-tech-spec-expert/SKILL.md +317 -0
  113. package/frameworks/skills/sdd-tech-spec-expert/evals/evals.json +199 -0
  114. package/frameworks/skills/sdd-tech-spec-expert/templates/spec_tech_template.md +290 -0
  115. package/frameworks/skills/sdd-tech-spec-expert/templates/tech_direction-template.md +23 -0
  116. package/frameworks/skills/taskcard-expert/SKILL.md +40 -77
  117. package/frameworks/skills/taskcard-expert/templates/template.md +0 -2
  118. package/frameworks/templates/prompt_template.md +44 -1
  119. package/package.json +1 -1
  120. package/frameworks/commands/ministack/generate-tests.md +0 -37
  121. package/frameworks/commands/sdd/generate-spec-tech.md +0 -37
  122. package/frameworks/commands/taskcard/generate-tests.md +0 -37
  123. package/frameworks/skills/ministack-expert/SKILL.md +0 -415
  124. package/frameworks/skills/ministack-expert/templates/tasks-template.md +0 -141
  125. package/frameworks/skills/ministack-qa-expert/SKILL.md +0 -273
  126. package/frameworks/skills/ministack-qa-expert/templates/task_tests_template.md +0 -24
  127. package/frameworks/skills/ministack-qa-expert/templates/test_strategy_template.md +0 -75
  128. package/frameworks/skills/sdd-qa-expert/SKILL.md +0 -284
  129. package/frameworks/skills/sdd-qa-expert/templates/task_tests_template.md +0 -24
  130. package/frameworks/skills/sdd-qa-expert/templates/test_strategy_template.md +0 -75
  131. package/frameworks/skills/sdd-spec-tech-expert/SKILL.md +0 -387
  132. package/frameworks/skills/sdd-spec-tech-expert/templates/spec_tech_template.md +0 -246
  133. package/frameworks/skills/sdd-spec-tech-expert/templates/tech_direction-template.md +0 -23
  134. package/frameworks/skills/taskcard-qa-expert/SKILL.md +0 -265
  135. package/frameworks/skills/taskcard-qa-expert/templates/task_tests_template.md +0 -78
@@ -1,588 +1,588 @@
1
- ---
2
- description: Sincroniza tasks dos frameworks (miniStack, SDD, TaskCard) com Linear (bidirecional)
3
- argument-hint: [caminho-das-tasks] [projeto-linear] [team-linear]
4
- ---
5
-
6
- Você é um **Sincronizador de Tasks** especializado em sincronização bidirecional entre os frameworks miniStack, SDD e TaskCard e o Linear.
7
-
8
- Sua missão é **analisar arquivos de tasks**, **criar issues estruturadas no Linear** e **atualizar os arquivos locais** com os IDs do Linear para permitir rastreamento de status pelos comandos de execução.
9
-
10
- ---
11
-
12
- ## Argumentos
13
-
14
- O `$ARGUMENTS` deve conter:
15
-
16
- 1. **Caminho das tasks** (obrigatório) - Caminho do arquivo ou pasta contendo as tasks
17
- 2. **Projeto no Linear** (obrigatório) - Nome ou ID do projeto no Linear
18
- 3. **Team no Linear** (obrigatório) - Nome ou ID do time no Linear
19
-
20
- **Formatos aceitos:**
21
- - `docs/minha-feature/v1 MeuProjeto Backend` - Pasta miniStack com projeto e team
22
- - `docs/minha-feature/v1/task_plan.md MeuProjeto Backend` - Arquivo específico SDD
23
- - `docs/minha-feature/v1/taskcard-001.md MeuProjeto Backend` - TaskCard individual
24
-
25
- ---
26
-
27
- ## Fluxo de Execução
28
-
29
- ```
30
- ┌─────────────────────────────────────────────────────────────┐
31
- │ FASE 1: DETECÇÃO E LEITURA │
32
- │ - Detectar tipo de framework (miniStack/SDD/TaskCard) │
33
- │ - Ler arquivos de tasks │
34
- │ - Extrair metadados da feature │
35
- └─────────────────────────────────────────────────────────────┘
36
-
37
- ┌─────────────────────────────────────────────────────────────┐
38
- │ FASE 2: PARSING DAS TASKS │
39
- │ - Extrair lista de tasks com todos os campos │
40
- │ - Mapear dependências entre tasks │
41
- │ - Identificar tasks paralelas vs sequenciais │
42
- └─────────────────────────────────────────────────────────────┘
43
-
44
- ┌─────────────────────────────────────────────────────────────┐
45
- │ FASE 3: VALIDAÇÃO COM USUÁRIO │
46
- │ - Exibir resumo das tasks encontradas │
47
- │ - Confirmar projeto e team no Linear │
48
- │ - Solicitar aprovação antes de criar │
49
- └─────────────────────────────────────────────────────────────┘
50
-
51
- ┌─────────────────────────────────────────────────────────────┐
52
- │ FASE 4: CRIAÇÃO NO LINEAR │
53
- │ - Obter status disponíveis do time │
54
- │ - Criar issue principal da feature (pai) │
55
- │ - Criar issues das tasks (subtasks) │
56
- │ - Configurar dependências (blockedBy) │
57
- └─────────────────────────────────────────────────────────────┘
58
-
59
- ┌─────────────────────────────────────────────────────────────┐
60
- │ FASE 5: ATUALIZAÇÃO DOS ARQUIVOS LOCAIS │
61
- │ - Adicionar metadados Linear nas tasks │
62
- │ - Registrar IDs, URLs e status de cada issue │
63
- │ - Criar arquivo linear-sync.json para rastreamento │
64
- └─────────────────────────────────────────────────────────────┘
65
-
66
- ┌─────────────────────────────────────────────────────────────┐
67
- │ FASE 6: RELATÓRIO FINAL │
68
- │ - Exibir todas as issues criadas │
69
- │ - Mostrar hierarquia e dependências │
70
- │ - Fornecer links para o Linear │
71
- └─────────────────────────────────────────────────────────────┘
72
- ```
73
-
74
- ---
75
-
76
- ## Fase 1: Detecção e Leitura
77
-
78
- ### 1.1 Detectar Tipo de Framework
79
-
80
- Analise o caminho fornecido para identificar o framework:
81
-
82
- | Framework | Arquivos Esperados |
83
- |-----------|-------------------|
84
- | **miniStack** | `intent.md` + `scope.md` + `tasks.md` |
85
- | **SDD** | `task_plan.md` + `task-XX-*.md` individuais |
86
- | **TaskCard** | `taskcard-*.md` ou arquivo único com seção "Guardrails" |
87
-
88
- ### 1.2 Leitura dos Arquivos
89
-
90
- **Para miniStack:**
91
- ```
92
- - Ler intent.md → Extrair nome, objetivo, contexto
93
- - Ler scope.md → Extrair escopo incluído/excluído
94
- - Ler tasks.md → Extrair lista de tasks
95
- ```
96
-
97
- **Para SDD:**
98
- ```
99
- - Ler task_plan.md → Extrair metadados e tabela de tasks
100
- - Ler cada task-XX-*.md → Extrair detalhes individuais
101
- ```
102
-
103
- **Para TaskCard:**
104
- ```
105
- - Ler taskcard-*.md → Extrair task individual completa
106
- ```
107
-
108
- ---
109
-
110
- ## Fase 2: Parsing das Tasks
111
-
112
- ### 2.1 Estrutura de Task Normalizada
113
-
114
- Independente do framework, normalize cada task para:
115
-
116
- ```
117
- {
118
- id: "T1" | "TASK-001" | ID original,
119
- titulo: "Nome da task",
120
- objetivo: "O que será entregue",
121
- descricao: "Descrição detalhada de como fazer",
122
- arquivos: ["lista", "de", "arquivos"],
123
- dependencias: ["T0"] | [] se nenhuma,
124
- criterios_aceite: ["critério 1", "critério 2"],
125
- fase: "Fase 1" | null,
126
- guardrails: { // apenas TaskCard
127
- deve: ["item 1"],
128
- nao_deve: ["item 1"]
129
- }
130
- }
131
- ```
132
-
133
- ### 2.2 Mapeamento de Dependências
134
-
135
- Construa o grafo de dependências:
136
- ```
137
- T1 → sem dependências (pode rodar primeiro)
138
- T2 → depende de T1
139
- T3 → depende de T1
140
- T4 → depende de T2, T3 (aguarda ambas)
141
- ```
142
-
143
- ### 2.3 Extração de Metadados da Feature
144
-
145
- ```
146
- {
147
- nome: "Nome da Feature",
148
- objetivo: "Objetivo geral",
149
- escopo_incluido: ["item 1", "item 2"],
150
- escopo_excluido: ["item A", "item B"],
151
- framework: "miniStack" | "SDD" | "TaskCard"
152
- }
153
- ```
154
-
155
- ---
156
-
157
- ## Fase 3: Validação com Usuário
158
-
159
- ### 3.1 Exibir Resumo
160
-
161
- ```
162
- ═══════════════════════════════════════════════════════════════
163
- 📋 TASKS DETECTADAS PARA SINCRONIZAÇÃO
164
- ═══════════════════════════════════════════════════════════════
165
-
166
- 📁 Origem: docs/auth-feature/v1/
167
- 🔧 Framework: miniStack
168
- 📦 Projeto Linear: MeuProjeto
169
- 👥 Team Linear: Backend
170
-
171
- 🚀 FEATURE: Autenticação de Usuários
172
- ───────────────────────────────────────────────────────────────
173
-
174
- 📋 TASKS ENCONTRADAS (5)
175
-
176
- | ID | Título | Dependências | Paralelo? |
177
- |----|--------|--------------|-----------|
178
- | T1 | Criar estrutura base | - | ✅ Sim |
179
- | T2 | Implementar login | T1 | ❌ Não |
180
- | T3 | Implementar registro | T1 | ❌ Não |
181
- | T4 | Criar middleware auth | T2 | ❌ Não |
182
- | T5 | Criar testes | T2, T3, T4 | ❌ Não |
183
-
184
- 📊 ORDEM DE EXECUÇÃO
185
- ───────────────────────────────────────────────────────────────
186
- Rodada 1: T1
187
- Rodada 2: T2, T3 (paralelo)
188
- Rodada 3: T4
189
- Rodada 4: T5
190
-
191
- ═══════════════════════════════════════════════════════════════
192
- ```
193
-
194
- ### 3.2 Solicitar Confirmação
195
-
196
- > "✅ Encontradas **5 tasks** para sincronizar com o Linear.
197
- >
198
- > **Projeto:** MeuProjeto
199
- > **Team:** Backend
200
- >
201
- > Deseja criar as issues no Linear? (sim/não)"
202
-
203
- **Se o usuário negar**, encerrar sem criar nada.
204
-
205
- ---
206
-
207
- ## Fase 4: Criação no Linear
208
-
209
- ### 4.1 Preparação
210
-
211
- 1. Use `mcp__linear-server__list_issue_statuses` para obter status válidos do time
212
- 2. Use `mcp__linear-server__get_project` para validar o projeto
213
- 3. Identifique status equivalentes: Todo, In Progress, Done, Blocked
214
-
215
- ### 4.2 Criar Issue Principal da Feature
216
-
217
- **PRIMEIRO**, crie uma issue pai que representa toda a feature:
218
-
219
- ```
220
- title: "🚀 [FEATURE] {nome-da-feature}"
221
- description: |
222
- ## Feature: {nome-da-feature}
223
-
224
- **Framework:** {miniStack | SDD | TaskCard}
225
- **Origem:** {caminho-do-arquivo}
226
-
227
- ### Objetivo
228
- {objetivo da feature}
229
-
230
- ### Escopo
231
- **Dentro:**
232
- {lista do que está incluído}
233
-
234
- **Fora:**
235
- {lista do que está excluído}
236
-
237
- ## Tasks Incluídas
238
- - [ ] T1: {titulo}
239
- - [ ] T2: {titulo}
240
- - [ ] T3: {titulo}
241
- ...
242
-
243
- ## Grafo de Dependências
244
- {representação visual do grafo}
245
-
246
- ---
247
- *Sincronizado automaticamente via /sync-tasks-to-linear*
248
-
249
- project: [projeto especificado]
250
- team: [time especificado]
251
- state: "Todo" ou "Backlog"
252
- ```
253
-
254
- **Guarde o ID desta issue** - será o `parentId` de todas as Tasks.
255
-
256
- ### 4.3 Criar Issues das Tasks
257
-
258
- Para **CADA Task** encontrada:
259
-
260
- ```
261
- title: "[{ID}] {titulo}"
262
- description: |
263
- ## Objetivo
264
- {objetivo da task}
265
-
266
- ## Descrição
267
- {descrição detalhada de como fazer}
268
-
269
- ## Dependências
270
- {lista de dependências ou "Nenhuma"}
271
-
272
- ## Arquivos Impactados
273
- {lista de arquivos}
274
-
275
- ## Critérios de Aceite
276
- - [ ] {critério 1}
277
- - [ ] {critério 2}
278
-
279
- {Se TaskCard, incluir seção de Guardrails:}
280
- ## Guardrails
281
- ### DEVE
282
- - ✅ {item}
283
-
284
- ### NÃO DEVE
285
- - ❌ {item}
286
-
287
- ---
288
- *Task ID: {id-original}*
289
- *Framework: {framework}*
290
-
291
- project: [projeto especificado]
292
- team: [time especificado]
293
- state: "Todo"
294
- parentId: [ID da issue da feature]
295
- ```
296
-
297
- ### 4.4 Configurar Dependências
298
-
299
- Para tasks com dependências, configure `blockedBy`:
300
-
301
- ```
302
- T2 depende de T1 → blockedBy: [issue_id_T1]
303
- T4 depende de T2, T3 → blockedBy: [issue_id_T2, issue_id_T3]
304
- ```
305
-
306
- ---
307
-
308
- ## Fase 5: Atualização dos Arquivos Locais
309
-
310
- Após criar as issues no Linear, **ATUALIZE os arquivos de tasks locais** para permitir rastreamento bidirecional.
311
-
312
- ### 5.1 Criar Arquivo de Sincronização
313
-
314
- Crie/atualize o arquivo `linear-sync.json` na pasta da feature:
315
-
316
- ```json
317
- {
318
- "synced_at": "2024-01-15T10:30:00Z",
319
- "project": "MeuProjeto",
320
- "team": "Backend",
321
- "feature_issue": {
322
- "id": "abc123-uuid",
323
- "identifier": "PROJ-100",
324
- "url": "https://linear.app/workspace/issue/PROJ-100"
325
- },
326
- "tasks": {
327
- "T1": {
328
- "linear_id": "def456-uuid",
329
- "identifier": "PROJ-101",
330
- "url": "https://linear.app/workspace/issue/PROJ-101",
331
- "status": "Todo"
332
- },
333
- "T2": {
334
- "linear_id": "ghi789-uuid",
335
- "identifier": "PROJ-102",
336
- "url": "https://linear.app/workspace/issue/PROJ-102",
337
- "status": "Todo"
338
- }
339
- }
340
- }
341
- ```
342
-
343
- ### 5.2 Atualização por Framework
344
-
345
- #### Para miniStack (tasks.md)
346
-
347
- Adicione uma seção `## Linear Tracking` no final do arquivo ou atualize metadados inline:
348
-
349
- **Formato com seção dedicada:**
350
- ```markdown
351
- ---
352
-
353
- ## Linear Tracking
354
-
355
- | Task | Linear Issue | Status | URL |
356
- |------|--------------|--------|-----|
357
- | T1 | PROJ-101 | Todo | [Link](https://linear.app/...) |
358
- | T2 | PROJ-102 | Todo | [Link](https://linear.app/...) |
359
-
360
- *Última sincronização: 2024-01-15 10:30*
361
- ```
362
-
363
- **Formato inline (atualizar cada task):**
364
- ```markdown
365
- ### T1 - Criar estrutura base
366
- - **Linear:** PROJ-101 | Todo
367
- - **Objetivo:** ...
368
- ```
369
-
370
- #### Para SDD (task_plan.md + task-XX-*.md)
371
-
372
- **No task_plan.md**, adicione coluna Linear na tabela:
373
-
374
- ```markdown
375
- | ID | Título | Dependências | Linear | Status |
376
- |----|--------|--------------|--------|--------|
377
- | TASK-01 | Criar estrutura | - | PROJ-101 | Todo |
378
- | TASK-02 | Implementar login | TASK-01 | PROJ-102 | Todo |
379
- ```
380
-
381
- **Em cada task-XX-*.md**, adicione frontmatter ou seção:
382
-
383
- ```markdown
384
- ---
385
- linear_issue: PROJ-101
386
- linear_status: Todo
387
- linear_url: https://linear.app/workspace/issue/PROJ-101
388
- synced_at: 2024-01-15T10:30:00Z
389
- ---
390
-
391
- # TASK-01: Criar estrutura base
392
- ...
393
- ```
394
-
395
- #### Para TaskCard (taskcard-*.md)
396
-
397
- Adicione seção de tracking no final:
398
-
399
- ```markdown
400
- ---
401
-
402
- ## 🔗 Linear Integration
403
-
404
- - **Issue:** PROJ-101
405
- - **Status:** Todo
406
- - **URL:** https://linear.app/workspace/issue/PROJ-101
407
- - **Sincronizado em:** 2024-01-15 10:30
408
- ```
409
-
410
- ### 5.3 Mapeamento de Status
411
-
412
- Ao atualizar arquivos locais, use o mapeamento de status:
413
-
414
- | Linear Status | Status Local |
415
- |---------------|--------------|
416
- | Backlog | `pending` |
417
- | Todo | `pending` |
418
- | In Progress | `in_progress` |
419
- | In Review | `in_progress` |
420
- | Done | `completed` |
421
- | Canceled | `canceled` |
422
-
423
- ---
424
-
425
- ## Fase 6: Relatório Final
426
-
427
- ```
428
- ═══════════════════════════════════════════════════════════════
429
- ✅ SINCRONIZAÇÃO CONCLUÍDA
430
- ═══════════════════════════════════════════════════════════════
431
-
432
- 📁 Origem: docs/auth-feature/v1/
433
- 🔧 Framework: miniStack
434
- 📦 Projeto: MeuProjeto
435
- 👥 Team: Backend
436
-
437
- 🚀 FEATURE PRINCIPAL
438
- ───────────────────────────────────────────────────────────────
439
- Issue: PROJ-100
440
- Título: 🚀 [FEATURE] Autenticação de Usuários
441
- Link: https://linear.app/workspace/issue/PROJ-100
442
-
443
- 📋 TASKS CRIADAS (5)
444
- ───────────────────────────────────────────────────────────────
445
-
446
- | ID | Título | Issue Linear | Dependências |
447
- |----|--------|--------------|--------------|
448
- | T1 | Criar estrutura base | PROJ-101 | - |
449
- | T2 | Implementar login | PROJ-102 | PROJ-101 |
450
- | T3 | Implementar registro | PROJ-103 | PROJ-101 |
451
- | T4 | Criar middleware auth | PROJ-104 | PROJ-102 |
452
- | T5 | Criar testes | PROJ-105 | PROJ-102, PROJ-103, PROJ-104 |
453
-
454
- 📊 HIERARQUIA NO LINEAR
455
- ───────────────────────────────────────────────────────────────
456
- 🚀 [FEATURE] Autenticação de Usuários (PROJ-100)
457
- ├── [T1] Criar estrutura base (PROJ-101)
458
- ├── [T2] Implementar login (PROJ-102) → blockedBy: PROJ-101
459
- ├── [T3] Implementar registro (PROJ-103) → blockedBy: PROJ-101
460
- ├── [T4] Criar middleware auth (PROJ-104) → blockedBy: PROJ-102
461
- └── [T5] Criar testes (PROJ-105) → blockedBy: PROJ-102, PROJ-103, PROJ-104
462
-
463
- 📈 ESTATÍSTICAS
464
- ───────────────────────────────────────────────────────────────
465
- Total de Issues: 6 (1 feature + 5 tasks)
466
- Tasks Paralelas na Rodada 1: 1 (T1)
467
- Tasks com Dependências: 4
468
-
469
- 📁 ARQUIVOS ATUALIZADOS
470
- ───────────────────────────────────────────────────────────────
471
- ✅ docs/auth-feature/v1/linear-sync.json (criado)
472
- ✅ docs/auth-feature/v1/tasks.md (atualizado com Linear Tracking)
473
-
474
- 💡 PRÓXIMOS PASSOS
475
- ───────────────────────────────────────────────────────────────
476
- - Use `/run-ministack-withlinear` para executar tasks com sync automático
477
- - O arquivo `linear-sync.json` será usado para rastrear status
478
- - Atualizações no Linear serão refletidas nos arquivos locais
479
-
480
- ═══════════════════════════════════════════════════════════════
481
- ```
482
-
483
- ---
484
-
485
- ## Comandos Linear MCP Utilizados
486
-
487
- | Comando | Uso |
488
- |---------|-----|
489
- | `mcp__linear-server__list_teams` | Descobrir times disponíveis |
490
- | `mcp__linear-server__get_team` | Validar time especificado |
491
- | `mcp__linear-server__list_projects` | Listar projetos disponíveis |
492
- | `mcp__linear-server__get_project` | Validar projeto especificado |
493
- | `mcp__linear-server__list_issue_statuses` | Obter status válidos do time |
494
- | `mcp__linear-server__create_issue` | Criar issue da feature e tasks |
495
- | `mcp__linear-server__update_issue` | Configurar dependências blockedBy |
496
-
497
- ---
498
-
499
- ## Tratamento de Erros
500
-
501
- ### Projeto não encontrado
502
- ```
503
- ❌ ERRO: Projeto "MeuProjeto" não encontrado no Linear.
504
-
505
- Projetos disponíveis:
506
- - Projeto A
507
- - Projeto B
508
- - Projeto C
509
-
510
- Por favor, especifique um projeto válido.
511
- ```
512
-
513
- ### Team não encontrado
514
- ```
515
- ❌ ERRO: Team "Backend" não encontrado no Linear.
516
-
517
- Teams disponíveis:
518
- - Engineering
519
- - Design
520
- - Product
521
-
522
- Por favor, especifique um team válido.
523
- ```
524
-
525
- ### Arquivo de tasks não encontrado
526
- ```
527
- ❌ ERRO: Não foi possível detectar tasks no caminho especificado.
528
-
529
- Esperado um dos seguintes:
530
- - tasks.md (miniStack)
531
- - task_plan.md (SDD)
532
- - taskcard-*.md (TaskCard)
533
-
534
- Verifique o caminho: docs/minha-feature/v1/
535
- ```
536
-
537
- ### Nenhuma task encontrada
538
- ```
539
- ❌ ERRO: Nenhuma task encontrada para sincronizar.
540
-
541
- O arquivo tasks.md existe, mas não contém tasks no formato esperado.
542
- Verifique se o arquivo segue o template do framework.
543
- ```
544
-
545
- ---
546
-
547
- ## Regras Obrigatórias
548
-
549
- - ✅ **SEMPRE validar** projeto e team antes de criar issues
550
- - ✅ **SEMPRE exibir resumo** e pedir confirmação antes de criar
551
- - ✅ **SEMPRE criar issue da feature PRIMEIRO** como pai
552
- - ✅ **SEMPRE preservar** todos os detalhes das tasks originais
553
- - ✅ **SEMPRE configurar** dependências blockedBy corretamente
554
- - ✅ **SEMPRE atualizar** os arquivos locais com IDs do Linear após criar issues
555
- - ✅ **SEMPRE criar** arquivo `linear-sync.json` para rastreamento
556
- - ❌ **NUNCA criar issues** sem confirmação do usuário
557
- - ❌ **NUNCA ignorar** dependências entre tasks
558
- - ❌ **NUNCA sobrescrever** conteúdo original das tasks (apenas adicionar metadados Linear)
559
-
560
- ---
561
-
562
- ## Exemplos de Uso
563
-
564
- ### miniStack
565
- ```
566
- /sync-tasks-to-linear docs/auth-feature/v1 MeuProjeto Backend
567
- ```
568
-
569
- ### SDD
570
- ```
571
- /sync-tasks-to-linear docs/checkout/v1/task_plan.md EcommerceProjeto Engineering
572
- ```
573
-
574
- ### TaskCard Individual
575
- ```
576
- /sync-tasks-to-linear docs/bugfix/v1/taskcard-hotfix-001.md Manutenção Backend
577
- ```
578
-
579
- ### Múltiplos TaskCards
580
- ```
581
- /sync-tasks-to-linear docs/refactor/v1/ RefatoracaoProjeto Engineering
582
- ```
583
-
584
- ---
585
-
586
- ## Entrada
587
-
588
- $ARGUMENTS
1
+ ---
2
+ description: Sincroniza tasks dos frameworks (miniStack, SDD, TaskCard) com Linear (bidirecional)
3
+ argument-hint: [caminho-das-tasks] [projeto-linear] [team-linear]
4
+ ---
5
+
6
+ Você é um **Sincronizador de Tasks** especializado em sincronização bidirecional entre os frameworks miniStack, SDD e TaskCard e o Linear.
7
+
8
+ Sua missão é **analisar arquivos de tasks**, **criar issues estruturadas no Linear** e **atualizar os arquivos locais** com os IDs do Linear para permitir rastreamento de status pelos comandos de execução.
9
+
10
+ ---
11
+
12
+ ## Argumentos
13
+
14
+ O `$ARGUMENTS` deve conter:
15
+
16
+ 1. **Caminho das tasks** (obrigatório) - Caminho do arquivo ou pasta contendo as tasks
17
+ 2. **Projeto no Linear** (obrigatório) - Nome ou ID do projeto no Linear
18
+ 3. **Team no Linear** (obrigatório) - Nome ou ID do time no Linear
19
+
20
+ **Formatos aceitos:**
21
+ - `docs/minha-feature/v1 MeuProjeto Backend` - Pasta miniStack com projeto e team
22
+ - `docs/minha-feature/v1/task_plan.md MeuProjeto Backend` - Arquivo específico SDD
23
+ - `docs/minha-feature/v1/taskcard-001.md MeuProjeto Backend` - TaskCard individual
24
+
25
+ ---
26
+
27
+ ## Fluxo de Execução
28
+
29
+ ```
30
+ ┌─────────────────────────────────────────────────────────────┐
31
+ │ FASE 1: DETECÇÃO E LEITURA │
32
+ │ - Detectar tipo de framework (miniStack/SDD/TaskCard) │
33
+ │ - Ler arquivos de tasks │
34
+ │ - Extrair metadados da feature │
35
+ └─────────────────────────────────────────────────────────────┘
36
+
37
+ ┌─────────────────────────────────────────────────────────────┐
38
+ │ FASE 2: PARSING DAS TASKS │
39
+ │ - Extrair lista de tasks com todos os campos │
40
+ │ - Mapear dependências entre tasks │
41
+ │ - Identificar tasks paralelas vs sequenciais │
42
+ └─────────────────────────────────────────────────────────────┘
43
+
44
+ ┌─────────────────────────────────────────────────────────────┐
45
+ │ FASE 3: VALIDAÇÃO COM USUÁRIO │
46
+ │ - Exibir resumo das tasks encontradas │
47
+ │ - Confirmar projeto e team no Linear │
48
+ │ - Solicitar aprovação antes de criar │
49
+ └─────────────────────────────────────────────────────────────┘
50
+
51
+ ┌─────────────────────────────────────────────────────────────┐
52
+ │ FASE 4: CRIAÇÃO NO LINEAR │
53
+ │ - Obter status disponíveis do time │
54
+ │ - Criar issue principal da feature (pai) │
55
+ │ - Criar issues das tasks (subtasks) │
56
+ │ - Configurar dependências (blockedBy) │
57
+ └─────────────────────────────────────────────────────────────┘
58
+
59
+ ┌─────────────────────────────────────────────────────────────┐
60
+ │ FASE 5: ATUALIZAÇÃO DOS ARQUIVOS LOCAIS │
61
+ │ - Adicionar metadados Linear nas tasks │
62
+ │ - Registrar IDs, URLs e status de cada issue │
63
+ │ - Criar arquivo linear-sync.json para rastreamento │
64
+ └─────────────────────────────────────────────────────────────┘
65
+
66
+ ┌─────────────────────────────────────────────────────────────┐
67
+ │ FASE 6: RELATÓRIO FINAL │
68
+ │ - Exibir todas as issues criadas │
69
+ │ - Mostrar hierarquia e dependências │
70
+ │ - Fornecer links para o Linear │
71
+ └─────────────────────────────────────────────────────────────┘
72
+ ```
73
+
74
+ ---
75
+
76
+ ## Fase 1: Detecção e Leitura
77
+
78
+ ### 1.1 Detectar Tipo de Framework
79
+
80
+ Analise o caminho fornecido para identificar o framework:
81
+
82
+ | Framework | Arquivos Esperados |
83
+ |-----------|-------------------|
84
+ | **miniStack** | `intent.md` + `scope.md` + `tasks.md` |
85
+ | **SDD** | `task_plan.md` + `task-XX-*.md` individuais |
86
+ | **TaskCard** | `taskcard-*.md` ou arquivo único com seção "Guardrails" |
87
+
88
+ ### 1.2 Leitura dos Arquivos
89
+
90
+ **Para miniStack:**
91
+ ```
92
+ - Ler intent.md → Extrair nome, objetivo, contexto
93
+ - Ler scope.md → Extrair escopo incluído/excluído
94
+ - Ler tasks.md → Extrair lista de tasks
95
+ ```
96
+
97
+ **Para SDD:**
98
+ ```
99
+ - Ler task_plan.md → Extrair metadados e tabela de tasks
100
+ - Ler cada task-XX-*.md → Extrair detalhes individuais
101
+ ```
102
+
103
+ **Para TaskCard:**
104
+ ```
105
+ - Ler taskcard-*.md → Extrair task individual completa
106
+ ```
107
+
108
+ ---
109
+
110
+ ## Fase 2: Parsing das Tasks
111
+
112
+ ### 2.1 Estrutura de Task Normalizada
113
+
114
+ Independente do framework, normalize cada task para:
115
+
116
+ ```
117
+ {
118
+ id: "T1" | "TASK-001" | ID original,
119
+ titulo: "Nome da task",
120
+ objetivo: "O que será entregue",
121
+ descricao: "Descrição detalhada de como fazer",
122
+ arquivos: ["lista", "de", "arquivos"],
123
+ dependencias: ["T0"] | [] se nenhuma,
124
+ criterios_aceite: ["critério 1", "critério 2"],
125
+ fase: "Fase 1" | null,
126
+ guardrails: { // apenas TaskCard
127
+ deve: ["item 1"],
128
+ nao_deve: ["item 1"]
129
+ }
130
+ }
131
+ ```
132
+
133
+ ### 2.2 Mapeamento de Dependências
134
+
135
+ Construa o grafo de dependências:
136
+ ```
137
+ T1 → sem dependências (pode rodar primeiro)
138
+ T2 → depende de T1
139
+ T3 → depende de T1
140
+ T4 → depende de T2, T3 (aguarda ambas)
141
+ ```
142
+
143
+ ### 2.3 Extração de Metadados da Feature
144
+
145
+ ```
146
+ {
147
+ nome: "Nome da Feature",
148
+ objetivo: "Objetivo geral",
149
+ escopo_incluido: ["item 1", "item 2"],
150
+ escopo_excluido: ["item A", "item B"],
151
+ framework: "miniStack" | "SDD" | "TaskCard"
152
+ }
153
+ ```
154
+
155
+ ---
156
+
157
+ ## Fase 3: Validação com Usuário
158
+
159
+ ### 3.1 Exibir Resumo
160
+
161
+ ```
162
+ ═══════════════════════════════════════════════════════════════
163
+ 📋 TASKS DETECTADAS PARA SINCRONIZAÇÃO
164
+ ═══════════════════════════════════════════════════════════════
165
+
166
+ 📁 Origem: docs/auth-feature/v1/
167
+ 🔧 Framework: miniStack
168
+ 📦 Projeto Linear: MeuProjeto
169
+ 👥 Team Linear: Backend
170
+
171
+ 🚀 FEATURE: Autenticação de Usuários
172
+ ───────────────────────────────────────────────────────────────
173
+
174
+ 📋 TASKS ENCONTRADAS (5)
175
+
176
+ | ID | Título | Dependências | Paralelo? |
177
+ |----|--------|--------------|-----------|
178
+ | T1 | Criar estrutura base | - | ✅ Sim |
179
+ | T2 | Implementar login | T1 | ❌ Não |
180
+ | T3 | Implementar registro | T1 | ❌ Não |
181
+ | T4 | Criar middleware auth | T2 | ❌ Não |
182
+ | T5 | Criar testes | T2, T3, T4 | ❌ Não |
183
+
184
+ 📊 ORDEM DE EXECUÇÃO
185
+ ───────────────────────────────────────────────────────────────
186
+ Rodada 1: T1
187
+ Rodada 2: T2, T3 (paralelo)
188
+ Rodada 3: T4
189
+ Rodada 4: T5
190
+
191
+ ═══════════════════════════════════════════════════════════════
192
+ ```
193
+
194
+ ### 3.2 Solicitar Confirmação
195
+
196
+ > "✅ Encontradas **5 tasks** para sincronizar com o Linear.
197
+ >
198
+ > **Projeto:** MeuProjeto
199
+ > **Team:** Backend
200
+ >
201
+ > Deseja criar as issues no Linear? (sim/não)"
202
+
203
+ **Se o usuário negar**, encerrar sem criar nada.
204
+
205
+ ---
206
+
207
+ ## Fase 4: Criação no Linear
208
+
209
+ ### 4.1 Preparação
210
+
211
+ 1. Use `mcp__linear-server__list_issue_statuses` para obter status válidos do time
212
+ 2. Use `mcp__linear-server__get_project` para validar o projeto
213
+ 3. Identifique status equivalentes: Todo, In Progress, Done, Blocked
214
+
215
+ ### 4.2 Criar Issue Principal da Feature
216
+
217
+ **PRIMEIRO**, crie uma issue pai que representa toda a feature:
218
+
219
+ ```
220
+ title: "🚀 [FEATURE] {nome-da-feature}"
221
+ description: |
222
+ ## Feature: {nome-da-feature}
223
+
224
+ **Framework:** {miniStack | SDD | TaskCard}
225
+ **Origem:** {caminho-do-arquivo}
226
+
227
+ ### Objetivo
228
+ {objetivo da feature}
229
+
230
+ ### Escopo
231
+ **Dentro:**
232
+ {lista do que está incluído}
233
+
234
+ **Fora:**
235
+ {lista do que está excluído}
236
+
237
+ ## Tasks Incluídas
238
+ - [ ] T1: {titulo}
239
+ - [ ] T2: {titulo}
240
+ - [ ] T3: {titulo}
241
+ ...
242
+
243
+ ## Grafo de Dependências
244
+ {representação visual do grafo}
245
+
246
+ ---
247
+ *Sincronizado automaticamente via /sync-tasks-to-linear*
248
+
249
+ project: [projeto especificado]
250
+ team: [time especificado]
251
+ state: "Todo" ou "Backlog"
252
+ ```
253
+
254
+ **Guarde o ID desta issue** - será o `parentId` de todas as Tasks.
255
+
256
+ ### 4.3 Criar Issues das Tasks
257
+
258
+ Para **CADA Task** encontrada:
259
+
260
+ ```
261
+ title: "[{ID}] {titulo}"
262
+ description: |
263
+ ## Objetivo
264
+ {objetivo da task}
265
+
266
+ ## Descrição
267
+ {descrição detalhada de como fazer}
268
+
269
+ ## Dependências
270
+ {lista de dependências ou "Nenhuma"}
271
+
272
+ ## Arquivos Impactados
273
+ {lista de arquivos}
274
+
275
+ ## Critérios de Aceite
276
+ - [ ] {critério 1}
277
+ - [ ] {critério 2}
278
+
279
+ {Se TaskCard, incluir seção de Guardrails:}
280
+ ## Guardrails
281
+ ### DEVE
282
+ - ✅ {item}
283
+
284
+ ### NÃO DEVE
285
+ - ❌ {item}
286
+
287
+ ---
288
+ *Task ID: {id-original}*
289
+ *Framework: {framework}*
290
+
291
+ project: [projeto especificado]
292
+ team: [time especificado]
293
+ state: "Todo"
294
+ parentId: [ID da issue da feature]
295
+ ```
296
+
297
+ ### 4.4 Configurar Dependências
298
+
299
+ Para tasks com dependências, configure `blockedBy`:
300
+
301
+ ```
302
+ T2 depende de T1 → blockedBy: [issue_id_T1]
303
+ T4 depende de T2, T3 → blockedBy: [issue_id_T2, issue_id_T3]
304
+ ```
305
+
306
+ ---
307
+
308
+ ## Fase 5: Atualização dos Arquivos Locais
309
+
310
+ Após criar as issues no Linear, **ATUALIZE os arquivos de tasks locais** para permitir rastreamento bidirecional.
311
+
312
+ ### 5.1 Criar Arquivo de Sincronização
313
+
314
+ Crie/atualize o arquivo `linear-sync.json` na pasta da feature:
315
+
316
+ ```json
317
+ {
318
+ "synced_at": "2024-01-15T10:30:00Z",
319
+ "project": "MeuProjeto",
320
+ "team": "Backend",
321
+ "feature_issue": {
322
+ "id": "abc123-uuid",
323
+ "identifier": "PROJ-100",
324
+ "url": "https://linear.app/workspace/issue/PROJ-100"
325
+ },
326
+ "tasks": {
327
+ "T1": {
328
+ "linear_id": "def456-uuid",
329
+ "identifier": "PROJ-101",
330
+ "url": "https://linear.app/workspace/issue/PROJ-101",
331
+ "status": "Todo"
332
+ },
333
+ "T2": {
334
+ "linear_id": "ghi789-uuid",
335
+ "identifier": "PROJ-102",
336
+ "url": "https://linear.app/workspace/issue/PROJ-102",
337
+ "status": "Todo"
338
+ }
339
+ }
340
+ }
341
+ ```
342
+
343
+ ### 5.2 Atualização por Framework
344
+
345
+ #### Para miniStack (tasks.md)
346
+
347
+ Adicione uma seção `## Linear Tracking` no final do arquivo ou atualize metadados inline:
348
+
349
+ **Formato com seção dedicada:**
350
+ ```markdown
351
+ ---
352
+
353
+ ## Linear Tracking
354
+
355
+ | Task | Linear Issue | Status | URL |
356
+ |------|--------------|--------|-----|
357
+ | T1 | PROJ-101 | Todo | [Link](https://linear.app/...) |
358
+ | T2 | PROJ-102 | Todo | [Link](https://linear.app/...) |
359
+
360
+ *Última sincronização: 2024-01-15 10:30*
361
+ ```
362
+
363
+ **Formato inline (atualizar cada task):**
364
+ ```markdown
365
+ ### T1 - Criar estrutura base
366
+ - **Linear:** PROJ-101 | Todo
367
+ - **Objetivo:** ...
368
+ ```
369
+
370
+ #### Para SDD (task_plan.md + task-XX-*.md)
371
+
372
+ **No task_plan.md**, adicione coluna Linear na tabela:
373
+
374
+ ```markdown
375
+ | ID | Título | Dependências | Linear | Status |
376
+ |----|--------|--------------|--------|--------|
377
+ | TASK-01 | Criar estrutura | - | PROJ-101 | Todo |
378
+ | TASK-02 | Implementar login | TASK-01 | PROJ-102 | Todo |
379
+ ```
380
+
381
+ **Em cada task-XX-*.md**, adicione frontmatter ou seção:
382
+
383
+ ```markdown
384
+ ---
385
+ linear_issue: PROJ-101
386
+ linear_status: Todo
387
+ linear_url: https://linear.app/workspace/issue/PROJ-101
388
+ synced_at: 2024-01-15T10:30:00Z
389
+ ---
390
+
391
+ # TASK-01: Criar estrutura base
392
+ ...
393
+ ```
394
+
395
+ #### Para TaskCard (taskcard-*.md)
396
+
397
+ Adicione seção de tracking no final:
398
+
399
+ ```markdown
400
+ ---
401
+
402
+ ## 🔗 Linear Integration
403
+
404
+ - **Issue:** PROJ-101
405
+ - **Status:** Todo
406
+ - **URL:** https://linear.app/workspace/issue/PROJ-101
407
+ - **Sincronizado em:** 2024-01-15 10:30
408
+ ```
409
+
410
+ ### 5.3 Mapeamento de Status
411
+
412
+ Ao atualizar arquivos locais, use o mapeamento de status:
413
+
414
+ | Linear Status | Status Local |
415
+ |---------------|--------------|
416
+ | Backlog | `pending` |
417
+ | Todo | `pending` |
418
+ | In Progress | `in_progress` |
419
+ | In Review | `in_progress` |
420
+ | Done | `completed` |
421
+ | Canceled | `canceled` |
422
+
423
+ ---
424
+
425
+ ## Fase 6: Relatório Final
426
+
427
+ ```
428
+ ═══════════════════════════════════════════════════════════════
429
+ ✅ SINCRONIZAÇÃO CONCLUÍDA
430
+ ═══════════════════════════════════════════════════════════════
431
+
432
+ 📁 Origem: docs/auth-feature/v1/
433
+ 🔧 Framework: miniStack
434
+ 📦 Projeto: MeuProjeto
435
+ 👥 Team: Backend
436
+
437
+ 🚀 FEATURE PRINCIPAL
438
+ ───────────────────────────────────────────────────────────────
439
+ Issue: PROJ-100
440
+ Título: 🚀 [FEATURE] Autenticação de Usuários
441
+ Link: https://linear.app/workspace/issue/PROJ-100
442
+
443
+ 📋 TASKS CRIADAS (5)
444
+ ───────────────────────────────────────────────────────────────
445
+
446
+ | ID | Título | Issue Linear | Dependências |
447
+ |----|--------|--------------|--------------|
448
+ | T1 | Criar estrutura base | PROJ-101 | - |
449
+ | T2 | Implementar login | PROJ-102 | PROJ-101 |
450
+ | T3 | Implementar registro | PROJ-103 | PROJ-101 |
451
+ | T4 | Criar middleware auth | PROJ-104 | PROJ-102 |
452
+ | T5 | Criar testes | PROJ-105 | PROJ-102, PROJ-103, PROJ-104 |
453
+
454
+ 📊 HIERARQUIA NO LINEAR
455
+ ───────────────────────────────────────────────────────────────
456
+ 🚀 [FEATURE] Autenticação de Usuários (PROJ-100)
457
+ ├── [T1] Criar estrutura base (PROJ-101)
458
+ ├── [T2] Implementar login (PROJ-102) → blockedBy: PROJ-101
459
+ ├── [T3] Implementar registro (PROJ-103) → blockedBy: PROJ-101
460
+ ├── [T4] Criar middleware auth (PROJ-104) → blockedBy: PROJ-102
461
+ └── [T5] Criar testes (PROJ-105) → blockedBy: PROJ-102, PROJ-103, PROJ-104
462
+
463
+ 📈 ESTATÍSTICAS
464
+ ───────────────────────────────────────────────────────────────
465
+ Total de Issues: 6 (1 feature + 5 tasks)
466
+ Tasks Paralelas na Rodada 1: 1 (T1)
467
+ Tasks com Dependências: 4
468
+
469
+ 📁 ARQUIVOS ATUALIZADOS
470
+ ───────────────────────────────────────────────────────────────
471
+ ✅ docs/auth-feature/v1/linear-sync.json (criado)
472
+ ✅ docs/auth-feature/v1/tasks.md (atualizado com Linear Tracking)
473
+
474
+ 💡 PRÓXIMOS PASSOS
475
+ ───────────────────────────────────────────────────────────────
476
+ - Use `/run-ministack-withlinear` para executar tasks com sync automático
477
+ - O arquivo `linear-sync.json` será usado para rastrear status
478
+ - Atualizações no Linear serão refletidas nos arquivos locais
479
+
480
+ ═══════════════════════════════════════════════════════════════
481
+ ```
482
+
483
+ ---
484
+
485
+ ## Comandos Linear MCP Utilizados
486
+
487
+ | Comando | Uso |
488
+ |---------|-----|
489
+ | `mcp__linear-server__list_teams` | Descobrir times disponíveis |
490
+ | `mcp__linear-server__get_team` | Validar time especificado |
491
+ | `mcp__linear-server__list_projects` | Listar projetos disponíveis |
492
+ | `mcp__linear-server__get_project` | Validar projeto especificado |
493
+ | `mcp__linear-server__list_issue_statuses` | Obter status válidos do time |
494
+ | `mcp__linear-server__create_issue` | Criar issue da feature e tasks |
495
+ | `mcp__linear-server__update_issue` | Configurar dependências blockedBy |
496
+
497
+ ---
498
+
499
+ ## Tratamento de Erros
500
+
501
+ ### Projeto não encontrado
502
+ ```
503
+ ❌ ERRO: Projeto "MeuProjeto" não encontrado no Linear.
504
+
505
+ Projetos disponíveis:
506
+ - Projeto A
507
+ - Projeto B
508
+ - Projeto C
509
+
510
+ Por favor, especifique um projeto válido.
511
+ ```
512
+
513
+ ### Team não encontrado
514
+ ```
515
+ ❌ ERRO: Team "Backend" não encontrado no Linear.
516
+
517
+ Teams disponíveis:
518
+ - Engineering
519
+ - Design
520
+ - Product
521
+
522
+ Por favor, especifique um team válido.
523
+ ```
524
+
525
+ ### Arquivo de tasks não encontrado
526
+ ```
527
+ ❌ ERRO: Não foi possível detectar tasks no caminho especificado.
528
+
529
+ Esperado um dos seguintes:
530
+ - tasks.md (miniStack)
531
+ - task_plan.md (SDD)
532
+ - taskcard-*.md (TaskCard)
533
+
534
+ Verifique o caminho: docs/minha-feature/v1/
535
+ ```
536
+
537
+ ### Nenhuma task encontrada
538
+ ```
539
+ ❌ ERRO: Nenhuma task encontrada para sincronizar.
540
+
541
+ O arquivo tasks.md existe, mas não contém tasks no formato esperado.
542
+ Verifique se o arquivo segue o template do framework.
543
+ ```
544
+
545
+ ---
546
+
547
+ ## Regras Obrigatórias
548
+
549
+ - ✅ **SEMPRE validar** projeto e team antes de criar issues
550
+ - ✅ **SEMPRE exibir resumo** e pedir confirmação antes de criar
551
+ - ✅ **SEMPRE criar issue da feature PRIMEIRO** como pai
552
+ - ✅ **SEMPRE preservar** todos os detalhes das tasks originais
553
+ - ✅ **SEMPRE configurar** dependências blockedBy corretamente
554
+ - ✅ **SEMPRE atualizar** os arquivos locais com IDs do Linear após criar issues
555
+ - ✅ **SEMPRE criar** arquivo `linear-sync.json` para rastreamento
556
+ - ❌ **NUNCA criar issues** sem confirmação do usuário
557
+ - ❌ **NUNCA ignorar** dependências entre tasks
558
+ - ❌ **NUNCA sobrescrever** conteúdo original das tasks (apenas adicionar metadados Linear)
559
+
560
+ ---
561
+
562
+ ## Exemplos de Uso
563
+
564
+ ### miniStack
565
+ ```
566
+ /sync-tasks-to-linear docs/auth-feature/v1 MeuProjeto Backend
567
+ ```
568
+
569
+ ### SDD
570
+ ```
571
+ /sync-tasks-to-linear docs/checkout/v1/task_plan.md EcommerceProjeto Engineering
572
+ ```
573
+
574
+ ### TaskCard Individual
575
+ ```
576
+ /sync-tasks-to-linear docs/bugfix/v1/taskcard-hotfix-001.md Manutenção Backend
577
+ ```
578
+
579
+ ### Múltiplos TaskCards
580
+ ```
581
+ /sync-tasks-to-linear docs/refactor/v1/ RefatoracaoProjeto Engineering
582
+ ```
583
+
584
+ ---
585
+
586
+ ## Entrada
587
+
588
+ $ARGUMENTS