@dynamicworks/br-openspec 1.3.1 → 2.0.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 (72) 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/artifact-graph/instruction-loader.js +4 -4
  8. package/dist/core/artifact-graph/schema.js +5 -4
  9. package/dist/core/command-generation/adapters/amazon-q.js +5 -5
  10. package/dist/core/command-generation/adapters/antigravity.js +5 -5
  11. package/dist/core/command-generation/adapters/auggie.js +6 -6
  12. package/dist/core/command-generation/adapters/bob.js +6 -6
  13. package/dist/core/command-generation/adapters/claude.js +8 -8
  14. package/dist/core/command-generation/adapters/cline.js +5 -5
  15. package/dist/core/command-generation/adapters/codebuddy.js +7 -7
  16. package/dist/core/command-generation/adapters/codex.js +6 -6
  17. package/dist/core/command-generation/adapters/continue.js +7 -7
  18. package/dist/core/command-generation/adapters/costrict.js +6 -6
  19. package/dist/core/command-generation/adapters/crush.js +8 -8
  20. package/dist/core/command-generation/adapters/cursor.js +8 -8
  21. package/dist/core/command-generation/adapters/factory.js +6 -6
  22. package/dist/core/command-generation/adapters/gemini.js +5 -5
  23. package/dist/core/command-generation/adapters/github-copilot.js +5 -5
  24. package/dist/core/command-generation/adapters/iflow.js +8 -8
  25. package/dist/core/command-generation/adapters/junie.js +5 -5
  26. package/dist/core/command-generation/adapters/kilocode.js +1 -1
  27. package/dist/core/command-generation/adapters/kiro.js +5 -5
  28. package/dist/core/command-generation/adapters/lingma.js +8 -8
  29. package/dist/core/command-generation/adapters/opencode.js +5 -5
  30. package/dist/core/command-generation/adapters/pi.js +5 -5
  31. package/dist/core/command-generation/adapters/qoder.js +8 -8
  32. package/dist/core/command-generation/adapters/qwen.js +5 -5
  33. package/dist/core/command-generation/adapters/roocode.js +5 -5
  34. package/dist/core/command-generation/adapters/windsurf.js +8 -8
  35. package/dist/core/completions/factory.js +3 -2
  36. package/dist/core/completions/generators/bash-generator.js +41 -41
  37. package/dist/core/completions/generators/fish-generator.js +7 -7
  38. package/dist/core/completions/generators/powershell-generator.js +29 -29
  39. package/dist/core/completions/generators/zsh-generator.js +33 -33
  40. package/dist/core/completions/installers/fish-installer.js +13 -12
  41. package/dist/core/completions/installers/powershell-installer.js +16 -17
  42. package/dist/core/completions/installers/zsh-installer.js +1 -1
  43. package/dist/core/completions/templates/bash-templates.js +18 -18
  44. package/dist/core/completions/templates/fish-templates.js +32 -32
  45. package/dist/core/completions/templates/powershell-templates.js +19 -19
  46. package/dist/core/completions/templates/zsh-templates.js +30 -30
  47. package/dist/core/parsers/change-parser.js +7 -6
  48. package/dist/core/project-config.js +12 -13
  49. package/dist/core/shared/skill-generation.js +12 -12
  50. package/dist/core/specs-apply.js +37 -38
  51. package/dist/core/templates/workflows/apply-change.js +288 -288
  52. package/dist/core/templates/workflows/archive-change.js +251 -251
  53. package/dist/core/templates/workflows/bulk-archive-change.js +472 -472
  54. package/dist/core/templates/workflows/continue-change.js +212 -212
  55. package/dist/core/templates/workflows/explore.js +443 -443
  56. package/dist/core/templates/workflows/feedback.js +97 -97
  57. package/dist/core/templates/workflows/ff-change.js +178 -178
  58. package/dist/core/templates/workflows/propose.js +196 -196
  59. package/dist/core/templates/workflows/sync-specs.js +252 -252
  60. package/dist/core/templates/workflows/upstream-sync.js +93 -93
  61. package/dist/core/tools-manager.js +2 -2
  62. package/dist/messages/index.d.ts +111 -0
  63. package/dist/messages/index.js +1115 -977
  64. package/dist/utils/change-metadata.js +8 -7
  65. package/dist/utils/change-utils.js +12 -11
  66. package/package.json +82 -84
  67. package/schemas/spec-driven/schema.yaml +153 -153
  68. package/schemas/spec-driven/templates/design.md +19 -19
  69. package/schemas/spec-driven/templates/proposal.md +23 -23
  70. package/schemas/spec-driven/templates/spec.md +8 -8
  71. package/schemas/spec-driven/templates/tasks.md +9 -9
  72. package/scripts/postinstall.js +83 -83
@@ -2,112 +2,112 @@ export function getContinueChangeSkillTemplate() {
2
2
  return {
3
3
  name: 'openspec-continue-change',
4
4
  description: 'Continue trabalhando em uma change do BR-OpenSpec criando o próximo artifact. Use quando o usuário quiser progredir sua change, criar o próximo artifact ou continuar seu workflow.',
5
- instructions: `Continue trabalhando em uma change criando o próximo artifact.
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. **Se nenhum nome de change for fornecido, solicite a seleção**
12
-
13
- Execute \`openspec list --json\` para obter as changes disponíveis ordenadas pela mais recentemente modificada. Depois use a ferramenta **AskUserQuestion** para permitir que o usuário selecione em qual change trabalhar.
14
-
15
- Apresente as 3-4 changes mais recentemente modificadas como opções, mostrando:
16
- - Nome da change
17
- - Schema (do campo \`schema\` se presente, caso contrário "spec-driven")
18
- - Status (por exemplo, "0/5 tasks", "completo", "sem tarefas")
19
- - Quão recentemente foi modificada (do campo \`lastModified\`)
20
-
21
- Marque a change mais recentemente modificada como "(Recomendada)" já que é provavelmente o que o usuário quer continuar.
22
-
23
- **IMPORTANTE**: NÃO adivinhe ou selecione automaticamente uma change. Sempre deixe o usuário escolher.
24
-
25
- 2. **Verifique o status atual**
26
- \`\`\`bash
27
- openspec status --change "<nome>" --json
28
- \`\`\`
29
- Analise o JSON para entender o estado atual. A resposta inclui:
30
- - \`schemaName\`: O schema de workflow sendo usado (por exemplo, "spec-driven")
31
- - \`artifacts\`: Array de artifacts com seu status ("done", "ready", "blocked")
32
- - \`isComplete\`: Booleano indicando se todos os artifacts estão completos
33
-
34
- 3. **Aja com base no status**:
35
-
36
- ---
37
-
38
- **Se todos os artifacts estão completos (\`isComplete: true\`)**:
39
- - Parabenize o usuário
40
- - Mostre o status final incluindo o schema usado
41
- - Sugira: "Todos os artifacts criados! Agora você pode implementar esta change ou arquivá-la."
42
- - PARE
43
-
44
- ---
45
-
46
- **Se os artifacts estão prontos para criar** (status mostra artifacts com \`status: "ready"\`):
47
- - Escolha o PRIMEIRO artifact com \`status: "ready"\` da saída do status
48
- - Obtenha suas instruções:
49
- \`\`\`bash
50
- openspec instructions <artifact-id> --change "<nome>" --json
51
- \`\`\`
52
- - Analise o JSON. Os campos-chave são:
53
- - \`context\`: Contexto do projeto (restrições para você - NÃO inclua na saída)
54
- - \`rules\`: Regras específicas do artifact (restrições para você - NÃO inclua na saída)
55
- - \`template\`: A estrutura a ser usada para seu arquivo de saída
56
- - \`instruction\`: Orientação específica do schema
57
- - \`outputPath\`: Onde escrever o artifact
58
- - \`dependencies\`: Artifacts concluídos para ler como contexto
59
- - **Crie o arquivo do artifact**:
60
- - Leia quaisquer arquivos de dependências concluídos para contexto
61
- - Use \`template\` como a estrutura - preencha suas seções
62
- - Aplique \`context\` e \`rules\` como restrições ao escrever - mas NÃO copie-os para o arquivo
63
- - Escreva no caminho de saída especificado nas instruções
64
- - Mostre o que foi criado e o que agora está desbloqueado
65
- - PARE após criar UM artifact
66
-
67
- ---
68
-
69
- **Se nenhum artifact estiver pronto (todos bloqueados)**:
70
- - Isso não deveria acontecer com um schema válido
71
- - Mostre o status e sugira verificar problemas
72
-
73
- 4. **Após criar um artifact, mostre o progresso**
74
- \`\`\`bash
75
- openspec status --change "<nome>"
76
- \`\`\`
77
-
78
- **Saída**
79
-
80
- Após cada invocação, mostre:
81
- - Qual artifact foi criado
82
- - Schema de workflow sendo usado
83
- - Progresso atual (N/M completos)
84
- - Quais artifacts agora estão desbloqueados
85
- - Prompt: "Quer continuar? Basta me pedir para continuar ou me dizer o que fazer em seguida."
86
-
87
- **Diretrizes de Criação de Artifacts**
88
-
89
- Os tipos de artifact e sua finalidade dependem do schema. Use o campo \`instruction\` da saída das instruções para entender o que criar.
90
-
91
- Padrões comuns de artifacts:
92
-
93
- **Schema spec-driven** (proposal → specs → design → tasks):
94
- - **proposal.md**: Pergunte ao usuário sobre a change se não estiver claro. Preencha Por Que, O Que Muda, Capabilities, Impacto.
95
- - A seção Capabilities é crítica - cada capability listada precisará de um arquivo spec.
96
- - **specs/<capability>/spec.md**: Crie um spec por capability listada na seção Capabilities do proposal (use o nome da capability, não o nome da change).
97
- - **design.md**: Documente decisões técnicas, arquitetura e abordagem de implementação.
98
- - **tasks.md**: Divida a implementação em tarefas com checkbox.
99
-
100
- Para outros schemas, siga o campo \`instruction\` da saída do CLI.
101
-
102
- **Guardrails**
103
- - Crie UM artifact por invocação
104
- - Sempre leia artifacts de dependência antes de criar um novo
105
- - Nunca pule artifacts ou crie fora de ordem
106
- - Se o contexto estiver incerto, pergunte ao usuário antes de criar
107
- - Verifique se o arquivo do artifact existe após escrever antes de marcar progresso
108
- - Use a sequência de artifacts do schema, não assuma nomes específicos de artifacts
109
- - **IMPORTANTE**: \`context\` e \`rules\` são restrições para VOCÊ, não conteúdo para o arquivo
110
- - NÃO copie blocos \`<context>\`, \`<rules>\`, \`<project_context>\` para o artifact
5
+ instructions: `Continue trabalhando em uma change criando o próximo artifact.
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. **Se nenhum nome de change for fornecido, solicite a seleção**
12
+
13
+ Execute \`openspec list --json\` para obter as changes disponíveis ordenadas pela mais recentemente modificada. Depois use a ferramenta **AskUserQuestion** para permitir que o usuário selecione em qual change trabalhar.
14
+
15
+ Apresente as 3-4 changes mais recentemente modificadas como opções, mostrando:
16
+ - Nome da change
17
+ - Schema (do campo \`schema\` se presente, caso contrário "spec-driven")
18
+ - Status (por exemplo, "0/5 tasks", "completo", "sem tarefas")
19
+ - Quão recentemente foi modificada (do campo \`lastModified\`)
20
+
21
+ Marque a change mais recentemente modificada como "(Recomendada)" já que é provavelmente o que o usuário quer continuar.
22
+
23
+ **IMPORTANTE**: NÃO adivinhe ou selecione automaticamente uma change. Sempre deixe o usuário escolher.
24
+
25
+ 2. **Verifique o status atual**
26
+ \`\`\`bash
27
+ openspec status --change "<nome>" --json
28
+ \`\`\`
29
+ Analise o JSON para entender o estado atual. A resposta inclui:
30
+ - \`schemaName\`: O schema de workflow sendo usado (por exemplo, "spec-driven")
31
+ - \`artifacts\`: Array de artifacts com seu status ("done", "ready", "blocked")
32
+ - \`isComplete\`: Booleano indicando se todos os artifacts estão completos
33
+
34
+ 3. **Aja com base no status**:
35
+
36
+ ---
37
+
38
+ **Se todos os artifacts estão completos (\`isComplete: true\`)**:
39
+ - Parabenize o usuário
40
+ - Mostre o status final incluindo o schema usado
41
+ - Sugira: "Todos os artifacts criados! Agora você pode implementar esta change ou arquivá-la."
42
+ - PARE
43
+
44
+ ---
45
+
46
+ **Se os artifacts estão prontos para criar** (status mostra artifacts com \`status: "ready"\`):
47
+ - Escolha o PRIMEIRO artifact com \`status: "ready"\` da saída do status
48
+ - Obtenha suas instruções:
49
+ \`\`\`bash
50
+ openspec instructions <artifact-id> --change "<nome>" --json
51
+ \`\`\`
52
+ - Analise o JSON. Os campos-chave são:
53
+ - \`context\`: Contexto do projeto (restrições para você - NÃO inclua na saída)
54
+ - \`rules\`: Regras específicas do artifact (restrições para você - NÃO inclua na saída)
55
+ - \`template\`: A estrutura a ser usada para seu arquivo de saída
56
+ - \`instruction\`: Orientação específica do schema
57
+ - \`outputPath\`: Onde escrever o artifact
58
+ - \`dependencies\`: Artifacts concluídos para ler como contexto
59
+ - **Crie o arquivo do artifact**:
60
+ - Leia quaisquer arquivos de dependências concluídos para contexto
61
+ - Use \`template\` como a estrutura - preencha suas seções
62
+ - Aplique \`context\` e \`rules\` como restrições ao escrever - mas NÃO copie-os para o arquivo
63
+ - Escreva no caminho de saída especificado nas instruções
64
+ - Mostre o que foi criado e o que agora está desbloqueado
65
+ - PARE após criar UM artifact
66
+
67
+ ---
68
+
69
+ **Se nenhum artifact estiver pronto (todos bloqueados)**:
70
+ - Isso não deveria acontecer com um schema válido
71
+ - Mostre o status e sugira verificar problemas
72
+
73
+ 4. **Após criar um artifact, mostre o progresso**
74
+ \`\`\`bash
75
+ openspec status --change "<nome>"
76
+ \`\`\`
77
+
78
+ **Saída**
79
+
80
+ Após cada invocação, mostre:
81
+ - Qual artifact foi criado
82
+ - Schema de workflow sendo usado
83
+ - Progresso atual (N/M completos)
84
+ - Quais artifacts agora estão desbloqueados
85
+ - Prompt: "Quer continuar? Basta me pedir para continuar ou me dizer o que fazer em seguida."
86
+
87
+ **Diretrizes de Criação de Artifacts**
88
+
89
+ Os tipos de artifact e sua finalidade dependem do schema. Use o campo \`instruction\` da saída das instruções para entender o que criar.
90
+
91
+ Padrões comuns de artifacts:
92
+
93
+ **Schema spec-driven** (proposal → specs → design → tasks):
94
+ - **proposal.md**: Pergunte ao usuário sobre a change se não estiver claro. Preencha Por Que, O Que Muda, Capabilities, Impacto.
95
+ - A seção Capabilities é crítica - cada capability listada precisará de um arquivo spec.
96
+ - **specs/<capability>/spec.md**: Crie um spec por capability listada na seção Capabilities do proposal (use o nome da capability, não o nome da change).
97
+ - **design.md**: Documente decisões técnicas, arquitetura e abordagem de implementação.
98
+ - **tasks.md**: Divida a implementação em tarefas com checkbox.
99
+
100
+ Para outros schemas, siga o campo \`instruction\` da saída do CLI.
101
+
102
+ **Guardrails**
103
+ - Crie UM artifact por invocação
104
+ - Sempre leia artifacts de dependência antes de criar um novo
105
+ - Nunca pule artifacts ou crie fora de ordem
106
+ - Se o contexto estiver incerto, pergunte ao usuário antes de criar
107
+ - Verifique se o arquivo do artifact existe após escrever antes de marcar progresso
108
+ - Use a sequência de artifacts do schema, não assuma nomes específicos de artifacts
109
+ - **IMPORTANTE**: \`context\` e \`rules\` são restrições para VOCÊ, não conteúdo para o arquivo
110
+ - NÃO copie blocos \`<context>\`, \`<rules>\`, \`<project_context>\` para o artifact
111
111
  - Eles guiam o que você escreve, mas nunca devem aparecer na saída`,
112
112
  license: 'MIT',
113
113
  compatibility: 'Requer openspec CLI.',
@@ -120,112 +120,112 @@ export function getOpsxContinueCommandTemplate() {
120
120
  description: 'Continue trabalhando em uma change - crie o próximo artifact (Experimental)',
121
121
  category: 'Workflow',
122
122
  tags: ['workflow', 'artifacts', 'experimental'],
123
- content: `Continue trabalhando em uma change criando o próximo artifact.
124
-
125
- **Entrada**: Opcionalmente especifique um nome de change após \`/opsx:continue\` (por exemplo, \`/opsx:continue 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.
126
-
127
- **Passos**
128
-
129
- 1. **Se nenhum nome de change for fornecido, solicite a seleção**
130
-
131
- Execute \`openspec list --json\` para obter as changes disponíveis ordenadas pela mais recentemente modificada. Depois use a ferramenta **AskUserQuestion** para permitir que o usuário selecione em qual change trabalhar.
132
-
133
- Apresente as 3-4 changes mais recentemente modificadas como opções, mostrando:
134
- - Nome da change
135
- - Schema (do campo \`schema\` se presente, caso contrário "spec-driven")
136
- - Status (por exemplo, "0/5 tasks", "completo", "sem tarefas")
137
- - Quão recentemente foi modificada (do campo \`lastModified\`)
138
-
139
- Marque a change mais recentemente modificada como "(Recomendada)" já que é provavelmente o que o usuário quer continuar.
140
-
141
- **IMPORTANTE**: NÃO adivinhe ou selecione automaticamente uma change. Sempre deixe o usuário escolher.
142
-
143
- 2. **Verifique o status atual**
144
- \`\`\`bash
145
- openspec status --change "<nome>" --json
146
- \`\`\`
147
- Analise o JSON para entender o estado atual. A resposta inclui:
148
- - \`schemaName\`: O schema de workflow sendo usado (por exemplo, "spec-driven")
149
- - \`artifacts\`: Array de artifacts com seu status ("done", "ready", "blocked")
150
- - \`isComplete\`: Booleano indicando se todos os artifacts estão completos
151
-
152
- 3. **Aja com base no status**:
153
-
154
- ---
155
-
156
- **Se todos os artifacts estão completos (\`isComplete: true\`)**:
157
- - Parabenize o usuário
158
- - Mostre o status final incluindo o schema usado
159
- - Sugira: "Todos os artifacts criados! Agora você pode implementar esta change com \`/opsx:apply\` ou arquivá-la com \`/opsx:archive\`."
160
- - PARE
161
-
162
- ---
163
-
164
- **Se os artifacts estão prontos para criar** (status mostra artifacts com \`status: "ready"\`):
165
- - Escolha o PRIMEIRO artifact com \`status: "ready"\` da saída do status
166
- - Obtenha suas instruções:
167
- \`\`\`bash
168
- openspec instructions <artifact-id> --change "<nome>" --json
169
- \`\`\`
170
- - Analise o JSON. Os campos-chave são:
171
- - \`context\`: Contexto do projeto (restrições para você - NÃO inclua na saída)
172
- - \`rules\`: Regras específicas do artifact (restrições para você - NÃO inclua na saída)
173
- - \`template\`: A estrutura a ser usada para seu arquivo de saída
174
- - \`instruction\`: Orientação específica do schema
175
- - \`outputPath\`: Onde escrever o artifact
176
- - \`dependencies\`: Artifacts concluídos para ler como contexto
177
- - **Crie o arquivo do artifact**:
178
- - Leia quaisquer arquivos de dependências concluídos para contexto
179
- - Use \`template\` como a estrutura - preencha suas seções
180
- - Aplique \`context\` e \`rules\` como restrições ao escrever - mas NÃO copie-os para o arquivo
181
- - Escreva no caminho de saída especificado nas instruções
182
- - Mostre o que foi criado e o que agora está desbloqueado
183
- - PARE após criar UM artifact
184
-
185
- ---
186
-
187
- **Se nenhum artifact estiver pronto (todos bloqueados)**:
188
- - Isso não deveria acontecer com um schema válido
189
- - Mostre o status e sugira verificar problemas
190
-
191
- 4. **Após criar um artifact, mostre o progresso**
192
- \`\`\`bash
193
- openspec status --change "<nome>"
194
- \`\`\`
195
-
196
- **Saída**
197
-
198
- Após cada invocação, mostre:
199
- - Qual artifact foi criado
200
- - Schema de workflow sendo usado
201
- - Progresso atual (N/M completos)
202
- - Quais artifacts agora estão desbloqueados
203
- - Prompt: "Execute \`/opsx:continue\` para criar o próximo artifact"
204
-
205
- **Diretrizes de Criação de Artifacts**
206
-
207
- Os tipos de artifact e sua finalidade dependem do schema. Use o campo \`instruction\` da saída das instruções para entender o que criar.
208
-
209
- Padrões comuns de artifacts:
210
-
211
- **Schema spec-driven** (proposal → specs → design → tasks):
212
- - **proposal.md**: Pergunte ao usuário sobre a change se não estiver claro. Preencha Por Que, O Que Muda, Capabilities, Impacto.
213
- - A seção Capabilities é crítica - cada capability listada precisará de um arquivo spec.
214
- - **specs/<capability>/spec.md**: Crie um spec por capability listada na seção Capabilities do proposal (use o nome da capability, não o nome da change).
215
- - **design.md**: Documente decisões técnicas, arquitetura e abordagem de implementação.
216
- - **tasks.md**: Divida a implementação em tarefas com checkbox.
217
-
218
- Para outros schemas, siga o campo \`instruction\` da saída do CLI.
219
-
220
- **Guardrails**
221
- - Crie UM artifact por invocação
222
- - Sempre leia artifacts de dependência antes de criar um novo
223
- - Nunca pule artifacts ou crie fora de ordem
224
- - Se o contexto estiver incerto, pergunte ao usuário antes de criar
225
- - Verifique se o arquivo do artifact existe após escrever antes de marcar progresso
226
- - Use a sequência de artifacts do schema, não assuma nomes específicos de artifacts
227
- - **IMPORTANTE**: \`context\` e \`rules\` são restrições para VOCÊ, não conteúdo para o arquivo
228
- - NÃO copie blocos \`<context>\`, \`<rules>\`, \`<project_context>\` para o artifact
123
+ content: `Continue trabalhando em uma change criando o próximo artifact.
124
+
125
+ **Entrada**: Opcionalmente especifique um nome de change após \`/opsx:continue\` (por exemplo, \`/opsx:continue 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.
126
+
127
+ **Passos**
128
+
129
+ 1. **Se nenhum nome de change for fornecido, solicite a seleção**
130
+
131
+ Execute \`openspec list --json\` para obter as changes disponíveis ordenadas pela mais recentemente modificada. Depois use a ferramenta **AskUserQuestion** para permitir que o usuário selecione em qual change trabalhar.
132
+
133
+ Apresente as 3-4 changes mais recentemente modificadas como opções, mostrando:
134
+ - Nome da change
135
+ - Schema (do campo \`schema\` se presente, caso contrário "spec-driven")
136
+ - Status (por exemplo, "0/5 tasks", "completo", "sem tarefas")
137
+ - Quão recentemente foi modificada (do campo \`lastModified\`)
138
+
139
+ Marque a change mais recentemente modificada como "(Recomendada)" já que é provavelmente o que o usuário quer continuar.
140
+
141
+ **IMPORTANTE**: NÃO adivinhe ou selecione automaticamente uma change. Sempre deixe o usuário escolher.
142
+
143
+ 2. **Verifique o status atual**
144
+ \`\`\`bash
145
+ openspec status --change "<nome>" --json
146
+ \`\`\`
147
+ Analise o JSON para entender o estado atual. A resposta inclui:
148
+ - \`schemaName\`: O schema de workflow sendo usado (por exemplo, "spec-driven")
149
+ - \`artifacts\`: Array de artifacts com seu status ("done", "ready", "blocked")
150
+ - \`isComplete\`: Booleano indicando se todos os artifacts estão completos
151
+
152
+ 3. **Aja com base no status**:
153
+
154
+ ---
155
+
156
+ **Se todos os artifacts estão completos (\`isComplete: true\`)**:
157
+ - Parabenize o usuário
158
+ - Mostre o status final incluindo o schema usado
159
+ - Sugira: "Todos os artifacts criados! Agora você pode implementar esta change com \`/opsx:apply\` ou arquivá-la com \`/opsx:archive\`."
160
+ - PARE
161
+
162
+ ---
163
+
164
+ **Se os artifacts estão prontos para criar** (status mostra artifacts com \`status: "ready"\`):
165
+ - Escolha o PRIMEIRO artifact com \`status: "ready"\` da saída do status
166
+ - Obtenha suas instruções:
167
+ \`\`\`bash
168
+ openspec instructions <artifact-id> --change "<nome>" --json
169
+ \`\`\`
170
+ - Analise o JSON. Os campos-chave são:
171
+ - \`context\`: Contexto do projeto (restrições para você - NÃO inclua na saída)
172
+ - \`rules\`: Regras específicas do artifact (restrições para você - NÃO inclua na saída)
173
+ - \`template\`: A estrutura a ser usada para seu arquivo de saída
174
+ - \`instruction\`: Orientação específica do schema
175
+ - \`outputPath\`: Onde escrever o artifact
176
+ - \`dependencies\`: Artifacts concluídos para ler como contexto
177
+ - **Crie o arquivo do artifact**:
178
+ - Leia quaisquer arquivos de dependências concluídos para contexto
179
+ - Use \`template\` como a estrutura - preencha suas seções
180
+ - Aplique \`context\` e \`rules\` como restrições ao escrever - mas NÃO copie-os para o arquivo
181
+ - Escreva no caminho de saída especificado nas instruções
182
+ - Mostre o que foi criado e o que agora está desbloqueado
183
+ - PARE após criar UM artifact
184
+
185
+ ---
186
+
187
+ **Se nenhum artifact estiver pronto (todos bloqueados)**:
188
+ - Isso não deveria acontecer com um schema válido
189
+ - Mostre o status e sugira verificar problemas
190
+
191
+ 4. **Após criar um artifact, mostre o progresso**
192
+ \`\`\`bash
193
+ openspec status --change "<nome>"
194
+ \`\`\`
195
+
196
+ **Saída**
197
+
198
+ Após cada invocação, mostre:
199
+ - Qual artifact foi criado
200
+ - Schema de workflow sendo usado
201
+ - Progresso atual (N/M completos)
202
+ - Quais artifacts agora estão desbloqueados
203
+ - Prompt: "Execute \`/opsx:continue\` para criar o próximo artifact"
204
+
205
+ **Diretrizes de Criação de Artifacts**
206
+
207
+ Os tipos de artifact e sua finalidade dependem do schema. Use o campo \`instruction\` da saída das instruções para entender o que criar.
208
+
209
+ Padrões comuns de artifacts:
210
+
211
+ **Schema spec-driven** (proposal → specs → design → tasks):
212
+ - **proposal.md**: Pergunte ao usuário sobre a change se não estiver claro. Preencha Por Que, O Que Muda, Capabilities, Impacto.
213
+ - A seção Capabilities é crítica - cada capability listada precisará de um arquivo spec.
214
+ - **specs/<capability>/spec.md**: Crie um spec por capability listada na seção Capabilities do proposal (use o nome da capability, não o nome da change).
215
+ - **design.md**: Documente decisões técnicas, arquitetura e abordagem de implementação.
216
+ - **tasks.md**: Divida a implementação em tarefas com checkbox.
217
+
218
+ Para outros schemas, siga o campo \`instruction\` da saída do CLI.
219
+
220
+ **Guardrails**
221
+ - Crie UM artifact por invocação
222
+ - Sempre leia artifacts de dependência antes de criar um novo
223
+ - Nunca pule artifacts ou crie fora de ordem
224
+ - Se o contexto estiver incerto, pergunte ao usuário antes de criar
225
+ - Verifique se o arquivo do artifact existe após escrever antes de marcar progresso
226
+ - Use a sequência de artifacts do schema, não assuma nomes específicos de artifacts
227
+ - **IMPORTANTE**: \`context\` e \`rules\` são restrições para VOCÊ, não conteúdo para o arquivo
228
+ - NÃO copie blocos \`<context>\`, \`<rules>\`, \`<project_context>\` para o artifact
229
229
  - Eles guiam o que você escreve, mas nunca devem aparecer na saída`
230
230
  };
231
231
  }