@dynamicworks/br-openspec 1.3.1 → 2.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.
Files changed (59) hide show
  1. package/LICENSE +22 -22
  2. package/README.md +210 -210
  3. package/README.pt-BR.md +212 -212
  4. package/bin/openspec.js +2 -2
  5. package/dist/commands/feedback.js +4 -4
  6. package/dist/commands/schema.js +60 -60
  7. package/dist/core/command-generation/adapters/amazon-q.js +5 -5
  8. package/dist/core/command-generation/adapters/antigravity.js +5 -5
  9. package/dist/core/command-generation/adapters/auggie.js +6 -6
  10. package/dist/core/command-generation/adapters/bob.js +6 -6
  11. package/dist/core/command-generation/adapters/claude.js +8 -8
  12. package/dist/core/command-generation/adapters/cline.js +5 -5
  13. package/dist/core/command-generation/adapters/codebuddy.js +7 -7
  14. package/dist/core/command-generation/adapters/codex.js +6 -6
  15. package/dist/core/command-generation/adapters/continue.js +7 -7
  16. package/dist/core/command-generation/adapters/costrict.js +6 -6
  17. package/dist/core/command-generation/adapters/crush.js +8 -8
  18. package/dist/core/command-generation/adapters/cursor.js +8 -8
  19. package/dist/core/command-generation/adapters/factory.js +6 -6
  20. package/dist/core/command-generation/adapters/gemini.js +5 -5
  21. package/dist/core/command-generation/adapters/github-copilot.js +5 -5
  22. package/dist/core/command-generation/adapters/iflow.js +8 -8
  23. package/dist/core/command-generation/adapters/junie.js +5 -5
  24. package/dist/core/command-generation/adapters/kilocode.js +1 -1
  25. package/dist/core/command-generation/adapters/kiro.js +5 -5
  26. package/dist/core/command-generation/adapters/lingma.js +8 -8
  27. package/dist/core/command-generation/adapters/opencode.js +5 -5
  28. package/dist/core/command-generation/adapters/pi.js +5 -5
  29. package/dist/core/command-generation/adapters/qoder.js +8 -8
  30. package/dist/core/command-generation/adapters/qwen.js +5 -5
  31. package/dist/core/command-generation/adapters/roocode.js +5 -5
  32. package/dist/core/command-generation/adapters/windsurf.js +8 -8
  33. package/dist/core/completions/generators/bash-generator.js +41 -41
  34. package/dist/core/completions/generators/fish-generator.js +7 -7
  35. package/dist/core/completions/generators/powershell-generator.js +29 -29
  36. package/dist/core/completions/generators/zsh-generator.js +33 -33
  37. package/dist/core/completions/templates/bash-templates.js +18 -18
  38. package/dist/core/completions/templates/fish-templates.js +32 -32
  39. package/dist/core/completions/templates/powershell-templates.js +19 -19
  40. package/dist/core/completions/templates/zsh-templates.js +30 -30
  41. package/dist/core/shared/skill-generation.js +12 -12
  42. package/dist/core/templates/workflows/apply-change.js +288 -288
  43. package/dist/core/templates/workflows/archive-change.js +251 -251
  44. package/dist/core/templates/workflows/bulk-archive-change.js +472 -472
  45. package/dist/core/templates/workflows/continue-change.js +212 -212
  46. package/dist/core/templates/workflows/explore.js +443 -443
  47. package/dist/core/templates/workflows/feedback.js +97 -97
  48. package/dist/core/templates/workflows/ff-change.js +178 -178
  49. package/dist/core/templates/workflows/propose.js +196 -196
  50. package/dist/core/templates/workflows/sync-specs.js +252 -252
  51. package/dist/core/templates/workflows/upstream-sync.js +93 -93
  52. package/dist/messages/index.js +977 -977
  53. package/package.json +82 -84
  54. package/schemas/spec-driven/schema.yaml +153 -153
  55. package/schemas/spec-driven/templates/design.md +19 -19
  56. package/schemas/spec-driven/templates/proposal.md +23 -23
  57. package/schemas/spec-driven/templates/spec.md +8 -8
  58. package/schemas/spec-driven/templates/tasks.md +9 -9
  59. package/scripts/postinstall.js +83 -83
@@ -2,150 +2,150 @@ export function getApplyChangeSkillTemplate() {
2
2
  return {
3
3
  name: 'openspec-apply-change',
4
4
  description: 'Implementa tarefas de uma change do BR-OpenSpec. Use quando o usuário quiser iniciar a implementação, continuar a implementação ou trabalhar nas tarefas.',
5
- instructions: `Implementa tarefas de uma change do BR-OpenSpec.
6
-
7
- **Entrada**: Opcionalmente especifique um nome de change. Se omitido, verifique se pode ser inferido do contexto da conversa. Se vago ou ambíguo, você DEVE solicitar as changes disponíveis.
8
-
9
- **Passos**
10
-
11
- 1. **Selecione a change**
12
-
13
- Se um nome for fornecido, use-o. Caso contrário:
14
- - Infira do contexto da conversa se o usuário mencionou uma change
15
- - Selecione automaticamente se existir apenas uma change ativa
16
- - Se ambíguo, execute \`openspec list --json\` para obter as changes disponíveis e use a ferramenta **AskUserQuestion** para permitir que o usuário selecione
17
-
18
- Sempre anuncie: "Usando change: <nome>" e como substituir (por exemplo, \`/opsx:apply <outra>\`).
19
-
20
- 2. **Verifique o status para entender o schema**
21
- \`\`\`bash
22
- openspec status --change "<nome>" --json
23
- \`\`\`
24
- Analise o JSON para entender:
25
- - \`schemaName\`: O workflow sendo usado (por exemplo, "spec-driven")
26
- - Qual artifact contém as tarefas (tipicamente "tasks" para spec-driven, verifique o status para outros)
27
-
28
- 3. **Obtenha as instruções de apply**
29
-
30
- \`\`\`bash
31
- openspec instructions apply --change "<nome>" --json
32
- \`\`\`
33
-
34
- Isso retorna:
35
- - \`contextFiles\`: artifact ID -> array de caminhos de arquivos concretos (varia por schema - pode ser proposal/specs/design/tasks ou spec/tests/implementation/docs)
36
- - Progresso (total, completo, restante)
37
- - Lista de tarefas com status
38
- - Instrução dinâmica baseada no estado atual
39
-
40
- **Trate os estados:**
41
- - Se \`state: "blocked"\` (artifacts ausentes): exiba mensagem, sugira usar openspec-continue-change
42
- - Se \`state: "all_done"\`: parabenize, sugira arquivar
43
- - Caso contrário: prossiga para a implementação
44
-
45
- 4. **Leia os arquivos de contexto**
46
-
47
- Leia cada caminho de arquivo listado em \`contextFiles\` da saída das instruções de apply.
48
- Os arquivos dependem do schema sendo usado:
49
- - **spec-driven**: proposal, specs, design, tasks
50
- - Outros schemas: siga os contextFiles da saída do CLI
51
-
52
- 5. **Mostre o progresso atual**
53
-
54
- Exiba:
55
- - Schema sendo usado
56
- - Progresso: "N/M tarefas concluídas"
57
- - Visão geral das tarefas restantes
58
- - Instrução dinâmica do CLI
59
-
60
- 6. **Implemente as tarefas (loop até concluir ou bloquear)**
61
-
62
- Para cada tarefa pendente:
63
- - Mostre qual tarefa está sendo trabalhada
64
- - Faça as alterações de código necessárias
65
- - Mantenha as alterações mínimas e focadas
66
- - Marque a tarefa como concluída no arquivo de tasks: \`- [ ]\` → \`- [x]\`
67
- - Continue para a próxima tarefa
68
-
69
- **Pare se:**
70
- - A tarefa estiver incerta → peça esclarecimento
71
- - A implementação revelar um problema de design → sugira atualizar artifacts
72
- - Encontrar erro ou bloqueio → reporte e aguarde orientação
73
- - O usuário interromper
74
-
75
- 7. **Ao concluir ou pausar, mostre o status**
76
-
77
- Exiba:
78
- - Tarefas concluídas nesta sessão
79
- - Progresso geral: "N/M tarefas concluídas"
80
- - Se tudo concluído: sugira arquivar
81
- - Se pausado: explique o porquê e aguarde orientação
82
-
83
- **Saída Durante a Implementação**
84
-
85
- \`\`\`
86
- ## Implementando: <nome-change> (schema: <nome-schema>)
87
-
88
- Trabalhando na tarefa 3/7: <descrição da tarefa>
89
- [...implementação acontecendo...]
90
- ✓ Tarefa concluída
91
-
92
- Trabalhando na tarefa 4/7: <descrição da tarefa>
93
- [...implementação acontecendo...]
94
- ✓ Tarefa concluída
95
- \`\`\`
96
-
97
- **Saída ao Concluir**
98
-
99
- \`\`\`
100
- ## Implementação Concluída
101
-
102
- **Change:** <nome-change>
103
- **Schema:** <nome-schema>
104
- **Progresso:** 7/7 tarefas concluídas ✓
105
-
106
- ### Concluídas Nesta Sessão
107
- - [x] Tarefa 1
108
- - [x] Tarefa 2
109
- ...
110
-
111
- Todas as tarefas concluídas! Pronto para arquivar esta change.
112
- \`\`\`
113
-
114
- **Saída ao Pausar (Problema Encontrado)**
115
-
116
- \`\`\`
117
- ## Implementação Pausada
118
-
119
- **Change:** <nome-change>
120
- **Schema:** <nome-schema>
121
- **Progresso:** 4/7 tarefas concluídas
122
-
123
- ### Problema Encontrado
124
- <descrição do problema>
125
-
126
- **Opções:**
127
- 1. <opção 1>
128
- 2. <opção 2>
129
- 3. Outra abordagem
130
-
131
- O que você gostaria de fazer?
132
- \`\`\`
133
-
134
- **Guardrails**
135
- - Continue pelas tarefas até concluir ou bloquear
136
- - Sempre leia os arquivos de contexto antes de começar (da saída das instruções de apply)
137
- - Se a tarefa for ambígua, pause e pergunte antes de implementar
138
- - Se a implementação revelar problemas, pause e sugira atualizar artifacts
139
- - Mantenha as alterações de código mínimas e limitadas a cada tarefa
140
- - Atualize a checkbox da tarefa imediatamente após concluir cada tarefa
141
- - Pare em erros, bloqueios ou requisitos incertos - não adivinhe
142
- - Use os contextFiles da saída do CLI, não assuma nomes de arquivos específicos
143
-
144
- **Integração com Fluxo Fluido**
145
-
146
- Esta skill suporta o modelo de "ações em uma change":
147
-
148
- - **Pode ser invocada a qualquer momento**: Antes de todos os artifacts estarem prontos (se tasks existirem), após implementação parcial, intercalada com outras ações
5
+ instructions: `Implementa tarefas de uma change do BR-OpenSpec.
6
+
7
+ **Entrada**: Opcionalmente especifique um nome de change. Se omitido, verifique se pode ser inferido do contexto da conversa. Se vago ou ambíguo, você DEVE solicitar as changes disponíveis.
8
+
9
+ **Passos**
10
+
11
+ 1. **Selecione a change**
12
+
13
+ Se um nome for fornecido, use-o. Caso contrário:
14
+ - Infira do contexto da conversa se o usuário mencionou uma change
15
+ - Selecione automaticamente se existir apenas uma change ativa
16
+ - Se ambíguo, execute \`openspec list --json\` para obter as changes disponíveis e use a ferramenta **AskUserQuestion** para permitir que o usuário selecione
17
+
18
+ Sempre anuncie: "Usando change: <nome>" e como substituir (por exemplo, \`/opsx:apply <outra>\`).
19
+
20
+ 2. **Verifique o status para entender o schema**
21
+ \`\`\`bash
22
+ openspec status --change "<nome>" --json
23
+ \`\`\`
24
+ Analise o JSON para entender:
25
+ - \`schemaName\`: O workflow sendo usado (por exemplo, "spec-driven")
26
+ - Qual artifact contém as tarefas (tipicamente "tasks" para spec-driven, verifique o status para outros)
27
+
28
+ 3. **Obtenha as instruções de apply**
29
+
30
+ \`\`\`bash
31
+ openspec instructions apply --change "<nome>" --json
32
+ \`\`\`
33
+
34
+ Isso retorna:
35
+ - \`contextFiles\`: artifact ID -> array de caminhos de arquivos concretos (varia por schema - pode ser proposal/specs/design/tasks ou spec/tests/implementation/docs)
36
+ - Progresso (total, completo, restante)
37
+ - Lista de tarefas com status
38
+ - Instrução dinâmica baseada no estado atual
39
+
40
+ **Trate os estados:**
41
+ - Se \`state: "blocked"\` (artifacts ausentes): exiba mensagem, sugira usar openspec-continue-change
42
+ - Se \`state: "all_done"\`: parabenize, sugira arquivar
43
+ - Caso contrário: prossiga para a implementação
44
+
45
+ 4. **Leia os arquivos de contexto**
46
+
47
+ Leia cada caminho de arquivo listado em \`contextFiles\` da saída das instruções de apply.
48
+ Os arquivos dependem do schema sendo usado:
49
+ - **spec-driven**: proposal, specs, design, tasks
50
+ - Outros schemas: siga os contextFiles da saída do CLI
51
+
52
+ 5. **Mostre o progresso atual**
53
+
54
+ Exiba:
55
+ - Schema sendo usado
56
+ - Progresso: "N/M tarefas concluídas"
57
+ - Visão geral das tarefas restantes
58
+ - Instrução dinâmica do CLI
59
+
60
+ 6. **Implemente as tarefas (loop até concluir ou bloquear)**
61
+
62
+ Para cada tarefa pendente:
63
+ - Mostre qual tarefa está sendo trabalhada
64
+ - Faça as alterações de código necessárias
65
+ - Mantenha as alterações mínimas e focadas
66
+ - Marque a tarefa como concluída no arquivo de tasks: \`- [ ]\` → \`- [x]\`
67
+ - Continue para a próxima tarefa
68
+
69
+ **Pare se:**
70
+ - A tarefa estiver incerta → peça esclarecimento
71
+ - A implementação revelar um problema de design → sugira atualizar artifacts
72
+ - Encontrar erro ou bloqueio → reporte e aguarde orientação
73
+ - O usuário interromper
74
+
75
+ 7. **Ao concluir ou pausar, mostre o status**
76
+
77
+ Exiba:
78
+ - Tarefas concluídas nesta sessão
79
+ - Progresso geral: "N/M tarefas concluídas"
80
+ - Se tudo concluído: sugira arquivar
81
+ - Se pausado: explique o porquê e aguarde orientação
82
+
83
+ **Saída Durante a Implementação**
84
+
85
+ \`\`\`
86
+ ## Implementando: <nome-change> (schema: <nome-schema>)
87
+
88
+ Trabalhando na tarefa 3/7: <descrição da tarefa>
89
+ [...implementação acontecendo...]
90
+ ✓ Tarefa concluída
91
+
92
+ Trabalhando na tarefa 4/7: <descrição da tarefa>
93
+ [...implementação acontecendo...]
94
+ ✓ Tarefa concluída
95
+ \`\`\`
96
+
97
+ **Saída ao Concluir**
98
+
99
+ \`\`\`
100
+ ## Implementação Concluída
101
+
102
+ **Change:** <nome-change>
103
+ **Schema:** <nome-schema>
104
+ **Progresso:** 7/7 tarefas concluídas ✓
105
+
106
+ ### Concluídas Nesta Sessão
107
+ - [x] Tarefa 1
108
+ - [x] Tarefa 2
109
+ ...
110
+
111
+ Todas as tarefas concluídas! Pronto para arquivar esta change.
112
+ \`\`\`
113
+
114
+ **Saída ao Pausar (Problema Encontrado)**
115
+
116
+ \`\`\`
117
+ ## Implementação Pausada
118
+
119
+ **Change:** <nome-change>
120
+ **Schema:** <nome-schema>
121
+ **Progresso:** 4/7 tarefas concluídas
122
+
123
+ ### Problema Encontrado
124
+ <descrição do problema>
125
+
126
+ **Opções:**
127
+ 1. <opção 1>
128
+ 2. <opção 2>
129
+ 3. Outra abordagem
130
+
131
+ O que você gostaria de fazer?
132
+ \`\`\`
133
+
134
+ **Guardrails**
135
+ - Continue pelas tarefas até concluir ou bloquear
136
+ - Sempre leia os arquivos de contexto antes de começar (da saída das instruções de apply)
137
+ - Se a tarefa for ambígua, pause e pergunte antes de implementar
138
+ - Se a implementação revelar problemas, pause e sugira atualizar artifacts
139
+ - Mantenha as alterações de código mínimas e limitadas a cada tarefa
140
+ - Atualize a checkbox da tarefa imediatamente após concluir cada tarefa
141
+ - Pare em erros, bloqueios ou requisitos incertos - não adivinhe
142
+ - Use os contextFiles da saída do CLI, não assuma nomes de arquivos específicos
143
+
144
+ **Integração com Fluxo Fluido**
145
+
146
+ Esta skill suporta o modelo de "ações em uma change":
147
+
148
+ - **Pode ser invocada a qualquer momento**: Antes de todos os artifacts estarem prontos (se tasks existirem), após implementação parcial, intercalada com outras ações
149
149
  - **Permite atualizações de artifacts**: Se a implementação revelar problemas de design, sugira atualizar artifacts - não está travada em fases, trabalhe de forma fluida`,
150
150
  license: 'MIT',
151
151
  compatibility: 'Requer openspec CLI.',
@@ -158,150 +158,150 @@ export function getOpsxApplyCommandTemplate() {
158
158
  description: 'Implementa tarefas de uma change do BR-OpenSpec (Experimental)',
159
159
  category: 'Workflow',
160
160
  tags: ['workflow', 'artifacts', 'experimental'],
161
- content: `Implementa tarefas de uma change do BR-OpenSpec.
162
-
163
- **Entrada**: Opcionalmente especifique um nome de change (por exemplo, \`/opsx:apply add-auth\`). Se omitido, verifique se pode ser inferido do contexto da conversa. Se vago ou ambíguo, você DEVE solicitar as changes disponíveis.
164
-
165
- **Passos**
166
-
167
- 1. **Selecione a change**
168
-
169
- Se um nome for fornecido, use-o. Caso contrário:
170
- - Infira do contexto da conversa se o usuário mencionou uma change
171
- - Selecione automaticamente se existir apenas uma change ativa
172
- - Se ambíguo, execute \`openspec list --json\` para obter as changes disponíveis e use a ferramenta **AskUserQuestion** para permitir que o usuário selecione
173
-
174
- Sempre anuncie: "Usando change: <nome>" e como substituir (por exemplo, \`/opsx:apply <outra>\`).
175
-
176
- 2. **Verifique o status para entender o schema**
177
- \`\`\`bash
178
- openspec status --change "<nome>" --json
179
- \`\`\`
180
- Analise o JSON para entender:
181
- - \`schemaName\`: O workflow sendo usado (por exemplo, "spec-driven")
182
- - Qual artifact contém as tarefas (tipicamente "tasks" para spec-driven, verifique o status para outros)
183
-
184
- 3. **Obtenha as instruções de apply**
185
-
186
- \`\`\`bash
187
- openspec instructions apply --change "<nome>" --json
188
- \`\`\`
189
-
190
- Isso retorna:
191
- - \`contextFiles\`: artifact ID -> array de caminhos de arquivos concretos (varia por schema)
192
- - Progresso (total, completo, restante)
193
- - Lista de tarefas com status
194
- - Instrução dinâmica baseada no estado atual
195
-
196
- **Trate os estados:**
197
- - Se \`state: "blocked"\` (artifacts ausentes): exiba mensagem, sugira usar \`/opsx:continue\`
198
- - Se \`state: "all_done"\`: parabenize, sugira arquivar
199
- - Caso contrário: prossiga para a implementação
200
-
201
- 4. **Leia os arquivos de contexto**
202
-
203
- Leia cada caminho de arquivo listado em \`contextFiles\` da saída das instruções de apply.
204
- Os arquivos dependem do schema sendo usado:
205
- - **spec-driven**: proposal, specs, design, tasks
206
- - Outros schemas: siga os contextFiles da saída do CLI
207
-
208
- 5. **Mostre o progresso atual**
209
-
210
- Exiba:
211
- - Schema sendo usado
212
- - Progresso: "N/M tarefas concluídas"
213
- - Visão geral das tarefas restantes
214
- - Instrução dinâmica do CLI
215
-
216
- 6. **Implemente as tarefas (loop até concluir ou bloquear)**
217
-
218
- Para cada tarefa pendente:
219
- - Mostre qual tarefa está sendo trabalhada
220
- - Faça as alterações de código necessárias
221
- - Mantenha as alterações mínimas e focadas
222
- - Marque a tarefa como concluída no arquivo de tasks: \`- [ ]\` → \`- [x]\`
223
- - Continue para a próxima tarefa
224
-
225
- **Pare se:**
226
- - A tarefa estiver incerta → peça esclarecimento
227
- - A implementação revelar um problema de design → sugira atualizar artifacts
228
- - Encontrar erro ou bloqueio → reporte e aguarde orientação
229
- - O usuário interromper
230
-
231
- 7. **Ao concluir ou pausar, mostre o status**
232
-
233
- Exiba:
234
- - Tarefas concluídas nesta sessão
235
- - Progresso geral: "N/M tarefas concluídas"
236
- - Se tudo concluído: sugira arquivar
237
- - Se pausado: explique o porquê e aguarde orientação
238
-
239
- **Saída Durante a Implementação**
240
-
241
- \`\`\`
242
- ## Implementando: <nome-change> (schema: <nome-schema>)
243
-
244
- Trabalhando na tarefa 3/7: <descrição da tarefa>
245
- [...implementação acontecendo...]
246
- ✓ Tarefa concluída
247
-
248
- Trabalhando na tarefa 4/7: <descrição da tarefa>
249
- [...implementação acontecendo...]
250
- ✓ Tarefa concluída
251
- \`\`\`
252
-
253
- **Saída ao Concluir**
254
-
255
- \`\`\`
256
- ## Implementação Concluída
257
-
258
- **Change:** <nome-change>
259
- **Schema:** <nome-schema>
260
- **Progresso:** 7/7 tarefas concluídas ✓
261
-
262
- ### Concluídas Nesta Sessão
263
- - [x] Tarefa 1
264
- - [x] Tarefa 2
265
- ...
266
-
267
- Todas as tarefas concluídas! Você pode arquivar esta change com \`/opsx:archive\`.
268
- \`\`\`
269
-
270
- **Saída ao Pausar (Problema Encontrado)**
271
-
272
- \`\`\`
273
- ## Implementação Pausada
274
-
275
- **Change:** <nome-change>
276
- **Schema:** <nome-schema>
277
- **Progresso:** 4/7 tarefas concluídas
278
-
279
- ### Problema Encontrado
280
- <descrição do problema>
281
-
282
- **Opções:**
283
- 1. <opção 1>
284
- 2. <opção 2>
285
- 3. Outra abordagem
286
-
287
- O que você gostaria de fazer?
288
- \`\`\`
289
-
290
- **Guardrails**
291
- - Continue pelas tarefas até concluir ou bloquear
292
- - Sempre leia os arquivos de contexto antes de começar (da saída das instruções de apply)
293
- - Se a tarefa for ambígua, pause e pergunte antes de implementar
294
- - Se a implementação revelar problemas, pause e sugira atualizar artifacts
295
- - Mantenha as alterações de código mínimas e limitadas a cada tarefa
296
- - Atualize a checkbox da tarefa imediatamente após concluir cada tarefa
297
- - Pare em erros, bloqueios ou requisitos incertos - não adivinhe
298
- - Use os contextFiles da saída do CLI, não assuma nomes de arquivos específicos
299
-
300
- **Integração com Fluxo Fluido**
301
-
302
- Esta skill suporta o modelo de "ações em uma change":
303
-
304
- - **Pode ser invocada a qualquer momento**: Antes de todos os artifacts estarem prontos (se tasks existirem), após implementação parcial, intercalada com outras ações
161
+ content: `Implementa tarefas de uma change do BR-OpenSpec.
162
+
163
+ **Entrada**: Opcionalmente especifique um nome de change (por exemplo, \`/opsx:apply add-auth\`). Se omitido, verifique se pode ser inferido do contexto da conversa. Se vago ou ambíguo, você DEVE solicitar as changes disponíveis.
164
+
165
+ **Passos**
166
+
167
+ 1. **Selecione a change**
168
+
169
+ Se um nome for fornecido, use-o. Caso contrário:
170
+ - Infira do contexto da conversa se o usuário mencionou uma change
171
+ - Selecione automaticamente se existir apenas uma change ativa
172
+ - Se ambíguo, execute \`openspec list --json\` para obter as changes disponíveis e use a ferramenta **AskUserQuestion** para permitir que o usuário selecione
173
+
174
+ Sempre anuncie: "Usando change: <nome>" e como substituir (por exemplo, \`/opsx:apply <outra>\`).
175
+
176
+ 2. **Verifique o status para entender o schema**
177
+ \`\`\`bash
178
+ openspec status --change "<nome>" --json
179
+ \`\`\`
180
+ Analise o JSON para entender:
181
+ - \`schemaName\`: O workflow sendo usado (por exemplo, "spec-driven")
182
+ - Qual artifact contém as tarefas (tipicamente "tasks" para spec-driven, verifique o status para outros)
183
+
184
+ 3. **Obtenha as instruções de apply**
185
+
186
+ \`\`\`bash
187
+ openspec instructions apply --change "<nome>" --json
188
+ \`\`\`
189
+
190
+ Isso retorna:
191
+ - \`contextFiles\`: artifact ID -> array de caminhos de arquivos concretos (varia por schema)
192
+ - Progresso (total, completo, restante)
193
+ - Lista de tarefas com status
194
+ - Instrução dinâmica baseada no estado atual
195
+
196
+ **Trate os estados:**
197
+ - Se \`state: "blocked"\` (artifacts ausentes): exiba mensagem, sugira usar \`/opsx:continue\`
198
+ - Se \`state: "all_done"\`: parabenize, sugira arquivar
199
+ - Caso contrário: prossiga para a implementação
200
+
201
+ 4. **Leia os arquivos de contexto**
202
+
203
+ Leia cada caminho de arquivo listado em \`contextFiles\` da saída das instruções de apply.
204
+ Os arquivos dependem do schema sendo usado:
205
+ - **spec-driven**: proposal, specs, design, tasks
206
+ - Outros schemas: siga os contextFiles da saída do CLI
207
+
208
+ 5. **Mostre o progresso atual**
209
+
210
+ Exiba:
211
+ - Schema sendo usado
212
+ - Progresso: "N/M tarefas concluídas"
213
+ - Visão geral das tarefas restantes
214
+ - Instrução dinâmica do CLI
215
+
216
+ 6. **Implemente as tarefas (loop até concluir ou bloquear)**
217
+
218
+ Para cada tarefa pendente:
219
+ - Mostre qual tarefa está sendo trabalhada
220
+ - Faça as alterações de código necessárias
221
+ - Mantenha as alterações mínimas e focadas
222
+ - Marque a tarefa como concluída no arquivo de tasks: \`- [ ]\` → \`- [x]\`
223
+ - Continue para a próxima tarefa
224
+
225
+ **Pare se:**
226
+ - A tarefa estiver incerta → peça esclarecimento
227
+ - A implementação revelar um problema de design → sugira atualizar artifacts
228
+ - Encontrar erro ou bloqueio → reporte e aguarde orientação
229
+ - O usuário interromper
230
+
231
+ 7. **Ao concluir ou pausar, mostre o status**
232
+
233
+ Exiba:
234
+ - Tarefas concluídas nesta sessão
235
+ - Progresso geral: "N/M tarefas concluídas"
236
+ - Se tudo concluído: sugira arquivar
237
+ - Se pausado: explique o porquê e aguarde orientação
238
+
239
+ **Saída Durante a Implementação**
240
+
241
+ \`\`\`
242
+ ## Implementando: <nome-change> (schema: <nome-schema>)
243
+
244
+ Trabalhando na tarefa 3/7: <descrição da tarefa>
245
+ [...implementação acontecendo...]
246
+ ✓ Tarefa concluída
247
+
248
+ Trabalhando na tarefa 4/7: <descrição da tarefa>
249
+ [...implementação acontecendo...]
250
+ ✓ Tarefa concluída
251
+ \`\`\`
252
+
253
+ **Saída ao Concluir**
254
+
255
+ \`\`\`
256
+ ## Implementação Concluída
257
+
258
+ **Change:** <nome-change>
259
+ **Schema:** <nome-schema>
260
+ **Progresso:** 7/7 tarefas concluídas ✓
261
+
262
+ ### Concluídas Nesta Sessão
263
+ - [x] Tarefa 1
264
+ - [x] Tarefa 2
265
+ ...
266
+
267
+ Todas as tarefas concluídas! Você pode arquivar esta change com \`/opsx:archive\`.
268
+ \`\`\`
269
+
270
+ **Saída ao Pausar (Problema Encontrado)**
271
+
272
+ \`\`\`
273
+ ## Implementação Pausada
274
+
275
+ **Change:** <nome-change>
276
+ **Schema:** <nome-schema>
277
+ **Progresso:** 4/7 tarefas concluídas
278
+
279
+ ### Problema Encontrado
280
+ <descrição do problema>
281
+
282
+ **Opções:**
283
+ 1. <opção 1>
284
+ 2. <opção 2>
285
+ 3. Outra abordagem
286
+
287
+ O que você gostaria de fazer?
288
+ \`\`\`
289
+
290
+ **Guardrails**
291
+ - Continue pelas tarefas até concluir ou bloquear
292
+ - Sempre leia os arquivos de contexto antes de começar (da saída das instruções de apply)
293
+ - Se a tarefa for ambígua, pause e pergunte antes de implementar
294
+ - Se a implementação revelar problemas, pause e sugira atualizar artifacts
295
+ - Mantenha as alterações de código mínimas e limitadas a cada tarefa
296
+ - Atualize a checkbox da tarefa imediatamente após concluir cada tarefa
297
+ - Pare em erros, bloqueios ou requisitos incertos - não adivinhe
298
+ - Use os contextFiles da saída do CLI, não assuma nomes de arquivos específicos
299
+
300
+ **Integração com Fluxo Fluido**
301
+
302
+ Esta skill suporta o modelo de "ações em uma change":
303
+
304
+ - **Pode ser invocada a qualquer momento**: Antes de todos os artifacts estarem prontos (se tasks existirem), após implementação parcial, intercalada com outras ações
305
305
  - **Permite atualizações de artifacts**: Se a implementação revelar problemas de design, sugira atualizar artifacts - não está travada em fases, trabalhe de forma fluida`
306
306
  };
307
307
  }