@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.
- package/LICENSE +22 -22
- package/README.md +210 -210
- package/README.pt-BR.md +212 -212
- package/bin/openspec.js +2 -2
- package/dist/commands/feedback.js +4 -4
- package/dist/commands/schema.js +60 -60
- package/dist/core/command-generation/adapters/amazon-q.js +5 -5
- package/dist/core/command-generation/adapters/antigravity.js +5 -5
- package/dist/core/command-generation/adapters/auggie.js +6 -6
- package/dist/core/command-generation/adapters/bob.js +6 -6
- package/dist/core/command-generation/adapters/claude.js +8 -8
- package/dist/core/command-generation/adapters/cline.js +5 -5
- package/dist/core/command-generation/adapters/codebuddy.js +7 -7
- package/dist/core/command-generation/adapters/codex.js +6 -6
- package/dist/core/command-generation/adapters/continue.js +7 -7
- package/dist/core/command-generation/adapters/costrict.js +6 -6
- package/dist/core/command-generation/adapters/crush.js +8 -8
- package/dist/core/command-generation/adapters/cursor.js +8 -8
- package/dist/core/command-generation/adapters/factory.js +6 -6
- package/dist/core/command-generation/adapters/gemini.js +5 -5
- package/dist/core/command-generation/adapters/github-copilot.js +5 -5
- package/dist/core/command-generation/adapters/iflow.js +8 -8
- package/dist/core/command-generation/adapters/junie.js +5 -5
- package/dist/core/command-generation/adapters/kilocode.js +1 -1
- package/dist/core/command-generation/adapters/kiro.js +5 -5
- package/dist/core/command-generation/adapters/lingma.js +8 -8
- package/dist/core/command-generation/adapters/opencode.js +5 -5
- package/dist/core/command-generation/adapters/pi.js +5 -5
- package/dist/core/command-generation/adapters/qoder.js +8 -8
- package/dist/core/command-generation/adapters/qwen.js +5 -5
- package/dist/core/command-generation/adapters/roocode.js +5 -5
- package/dist/core/command-generation/adapters/windsurf.js +8 -8
- package/dist/core/completions/generators/bash-generator.js +41 -41
- package/dist/core/completions/generators/fish-generator.js +7 -7
- package/dist/core/completions/generators/powershell-generator.js +29 -29
- package/dist/core/completions/generators/zsh-generator.js +33 -33
- package/dist/core/completions/templates/bash-templates.js +18 -18
- package/dist/core/completions/templates/fish-templates.js +32 -32
- package/dist/core/completions/templates/powershell-templates.js +19 -19
- package/dist/core/completions/templates/zsh-templates.js +30 -30
- package/dist/core/shared/skill-generation.js +12 -12
- package/dist/core/templates/workflows/apply-change.js +288 -288
- package/dist/core/templates/workflows/archive-change.js +251 -251
- package/dist/core/templates/workflows/bulk-archive-change.js +472 -472
- package/dist/core/templates/workflows/continue-change.js +212 -212
- package/dist/core/templates/workflows/explore.js +443 -443
- package/dist/core/templates/workflows/feedback.js +97 -97
- package/dist/core/templates/workflows/ff-change.js +178 -178
- package/dist/core/templates/workflows/propose.js +196 -196
- package/dist/core/templates/workflows/sync-specs.js +252 -252
- package/dist/core/templates/workflows/upstream-sync.js +93 -93
- package/dist/messages/index.js +977 -977
- package/package.json +82 -84
- package/schemas/spec-driven/schema.yaml +153 -153
- package/schemas/spec-driven/templates/design.md +19 -19
- package/schemas/spec-driven/templates/proposal.md +23 -23
- package/schemas/spec-driven/templates/spec.md +8 -8
- package/schemas/spec-driven/templates/tasks.md +9 -9
- package/scripts/postinstall.js +83 -83
|
@@ -2,108 +2,108 @@ export function getArchiveChangeSkillTemplate() {
|
|
|
2
2
|
return {
|
|
3
3
|
name: 'openspec-archive-change',
|
|
4
4
|
description: 'Arquiva uma change concluída no workflow experimental. Use quando o usuário quiser finalizar e arquivar uma change após a implementação estar completa.',
|
|
5
|
-
instructions: `Arquiva uma change concluída no workflow experimental.
|
|
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. Use a ferramenta **AskUserQuestion** para permitir que o usuário selecione.
|
|
14
|
-
|
|
15
|
-
Mostre apenas as changes ativas (não arquivadas).
|
|
16
|
-
Inclua o schema usado para cada change, se disponível.
|
|
17
|
-
|
|
18
|
-
**IMPORTANTE**: NÃO adivinhe ou selecione automaticamente uma change. Sempre deixe o usuário escolher.
|
|
19
|
-
|
|
20
|
-
2. **Verifique o status de conclusão dos artifacts**
|
|
21
|
-
|
|
22
|
-
Execute \`openspec status --change "<nome>" --json\` para verificar a conclusão dos artifacts.
|
|
23
|
-
|
|
24
|
-
Analise o JSON para entender:
|
|
25
|
-
- \`schemaName\`: O workflow sendo usado
|
|
26
|
-
- \`artifacts\`: Lista de artifacts com seu status (\`done\` ou outro)
|
|
27
|
-
|
|
28
|
-
**Se algum artifact não estiver \`done\`:**
|
|
29
|
-
- Exiba um aviso listando os artifacts incompletos
|
|
30
|
-
- Use a ferramenta **AskUserQuestion** para confirmar se o usuário deseja prosseguir
|
|
31
|
-
- Prossiga se o usuário confirmar
|
|
32
|
-
|
|
33
|
-
3. **Verifique o status de conclusão das tarefas**
|
|
34
|
-
|
|
35
|
-
Leia o arquivo de tarefas (tipicamente \`tasks.md\`) para verificar tarefas incompletas.
|
|
36
|
-
|
|
37
|
-
Conte as tarefas marcadas com \`- [ ]\` (incompleto) vs \`- [x]\` (concluído).
|
|
38
|
-
|
|
39
|
-
**Se tarefas incompletas forem encontradas:**
|
|
40
|
-
- Exiba um aviso mostrando a quantidade de tarefas incompletas
|
|
41
|
-
- Use a ferramenta **AskUserQuestion** para confirmar se o usuário deseja prosseguir
|
|
42
|
-
- Prossiga se o usuário confirmar
|
|
43
|
-
|
|
44
|
-
**Se não existir arquivo de tarefas:** Prossiga sem aviso relacionado a tarefas.
|
|
45
|
-
|
|
46
|
-
4. **Avalie o estado de sincronização dos delta specs**
|
|
47
|
-
|
|
48
|
-
Verifique se existem delta specs em \`openspec/changes/<nome>/specs/\`. Se não existirem, prossiga sem prompt de sync.
|
|
49
|
-
|
|
50
|
-
**Se delta specs existirem:**
|
|
51
|
-
- Compare cada delta spec com seu spec principal correspondente em \`openspec/specs/<capability>/spec.md\`
|
|
52
|
-
- Determine quais alterações seriam aplicadas (adições, modificações, remoções, renomeações)
|
|
53
|
-
- Mostre um resumo combinado antes de solicitar
|
|
54
|
-
|
|
55
|
-
**Opções de prompt:**
|
|
56
|
-
- Se alterações forem necessárias: "Sincronizar agora (recomendado)", "Arquivar sem sincronizar"
|
|
57
|
-
- Se já estiver sincronizado: "Arquivar agora", "Sincronizar mesmo assim", "Cancelar"
|
|
58
|
-
|
|
59
|
-
Se o usuário escolher sincronizar, use a ferramenta Task (subagent_type: "general-purpose", prompt: "Use a ferramenta Skill para invocar openspec-sync-specs para a change '<nome>'. Análise de delta spec: <inclua o resumo analisado do delta spec>"). Prossiga para o arquivamento independentemente da escolha.
|
|
60
|
-
|
|
61
|
-
5. **Realize o arquivamento**
|
|
62
|
-
|
|
63
|
-
Crie o diretório de arquivo se não existir:
|
|
64
|
-
\`\`\`bash
|
|
65
|
-
mkdir -p openspec/changes/archive
|
|
66
|
-
\`\`\`
|
|
67
|
-
|
|
68
|
-
Gere o nome do destino usando a data atual: \`YYYY-MM-DD-<nome-change>\`
|
|
69
|
-
|
|
70
|
-
**Verifique se o destino já existe:**
|
|
71
|
-
- Se sim: Falhe com erro, sugira renomear o arquivo existente ou usar uma data diferente
|
|
72
|
-
- Se não: Mova o diretório da change para o arquivo
|
|
73
|
-
|
|
74
|
-
\`\`\`bash
|
|
75
|
-
mv openspec/changes/<nome> openspec/changes/archive/YYYY-MM-DD-<nome>
|
|
76
|
-
\`\`\`
|
|
77
|
-
|
|
78
|
-
6. **Exiba o resumo**
|
|
79
|
-
|
|
80
|
-
Mostre o resumo de conclusão do arquivamento incluindo:
|
|
81
|
-
- Nome da change
|
|
82
|
-
- Schema que foi usado
|
|
83
|
-
- Local do arquivo
|
|
84
|
-
- Se os specs foram sincronizados (se aplicável)
|
|
85
|
-
- Observação sobre quaisquer avisos (artifacts/tarefas incompletos)
|
|
86
|
-
|
|
87
|
-
**Saída em Sucesso**
|
|
88
|
-
|
|
89
|
-
\`\`\`
|
|
90
|
-
## Arquivamento Concluído
|
|
91
|
-
|
|
92
|
-
**Change:** <nome-change>
|
|
93
|
-
**Schema:** <nome-schema>
|
|
94
|
-
**Arquivado em:** openspec/changes/archive/YYYY-MM-DD-<nome>/
|
|
95
|
-
**Specs:** ✓ Sincronizados com os specs principais (ou "Sem delta specs" ou "Sincronização ignorada")
|
|
96
|
-
|
|
97
|
-
Todos os artifacts completos. Todas as tarefas completas.
|
|
98
|
-
\`\`\`
|
|
99
|
-
|
|
100
|
-
**Guardrails**
|
|
101
|
-
- Sempre solicite a seleção da change se não fornecida
|
|
102
|
-
- Use o grafo de artifacts (openspec status --json) para verificação de conclusão
|
|
103
|
-
- Não bloqueie o arquivamento por avisos - apenas informe e confirme
|
|
104
|
-
- Preservar .openspec.yaml ao mover para o arquivo (ele move com o diretório)
|
|
105
|
-
- Mostre um resumo claro do que aconteceu
|
|
106
|
-
- Se sync for solicitado, use a abordagem openspec-sync-specs (agent-driven)
|
|
5
|
+
instructions: `Arquiva uma change concluída no workflow experimental.
|
|
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. Use a ferramenta **AskUserQuestion** para permitir que o usuário selecione.
|
|
14
|
+
|
|
15
|
+
Mostre apenas as changes ativas (não arquivadas).
|
|
16
|
+
Inclua o schema usado para cada change, se disponível.
|
|
17
|
+
|
|
18
|
+
**IMPORTANTE**: NÃO adivinhe ou selecione automaticamente uma change. Sempre deixe o usuário escolher.
|
|
19
|
+
|
|
20
|
+
2. **Verifique o status de conclusão dos artifacts**
|
|
21
|
+
|
|
22
|
+
Execute \`openspec status --change "<nome>" --json\` para verificar a conclusão dos artifacts.
|
|
23
|
+
|
|
24
|
+
Analise o JSON para entender:
|
|
25
|
+
- \`schemaName\`: O workflow sendo usado
|
|
26
|
+
- \`artifacts\`: Lista de artifacts com seu status (\`done\` ou outro)
|
|
27
|
+
|
|
28
|
+
**Se algum artifact não estiver \`done\`:**
|
|
29
|
+
- Exiba um aviso listando os artifacts incompletos
|
|
30
|
+
- Use a ferramenta **AskUserQuestion** para confirmar se o usuário deseja prosseguir
|
|
31
|
+
- Prossiga se o usuário confirmar
|
|
32
|
+
|
|
33
|
+
3. **Verifique o status de conclusão das tarefas**
|
|
34
|
+
|
|
35
|
+
Leia o arquivo de tarefas (tipicamente \`tasks.md\`) para verificar tarefas incompletas.
|
|
36
|
+
|
|
37
|
+
Conte as tarefas marcadas com \`- [ ]\` (incompleto) vs \`- [x]\` (concluído).
|
|
38
|
+
|
|
39
|
+
**Se tarefas incompletas forem encontradas:**
|
|
40
|
+
- Exiba um aviso mostrando a quantidade de tarefas incompletas
|
|
41
|
+
- Use a ferramenta **AskUserQuestion** para confirmar se o usuário deseja prosseguir
|
|
42
|
+
- Prossiga se o usuário confirmar
|
|
43
|
+
|
|
44
|
+
**Se não existir arquivo de tarefas:** Prossiga sem aviso relacionado a tarefas.
|
|
45
|
+
|
|
46
|
+
4. **Avalie o estado de sincronização dos delta specs**
|
|
47
|
+
|
|
48
|
+
Verifique se existem delta specs em \`openspec/changes/<nome>/specs/\`. Se não existirem, prossiga sem prompt de sync.
|
|
49
|
+
|
|
50
|
+
**Se delta specs existirem:**
|
|
51
|
+
- Compare cada delta spec com seu spec principal correspondente em \`openspec/specs/<capability>/spec.md\`
|
|
52
|
+
- Determine quais alterações seriam aplicadas (adições, modificações, remoções, renomeações)
|
|
53
|
+
- Mostre um resumo combinado antes de solicitar
|
|
54
|
+
|
|
55
|
+
**Opções de prompt:**
|
|
56
|
+
- Se alterações forem necessárias: "Sincronizar agora (recomendado)", "Arquivar sem sincronizar"
|
|
57
|
+
- Se já estiver sincronizado: "Arquivar agora", "Sincronizar mesmo assim", "Cancelar"
|
|
58
|
+
|
|
59
|
+
Se o usuário escolher sincronizar, use a ferramenta Task (subagent_type: "general-purpose", prompt: "Use a ferramenta Skill para invocar openspec-sync-specs para a change '<nome>'. Análise de delta spec: <inclua o resumo analisado do delta spec>"). Prossiga para o arquivamento independentemente da escolha.
|
|
60
|
+
|
|
61
|
+
5. **Realize o arquivamento**
|
|
62
|
+
|
|
63
|
+
Crie o diretório de arquivo se não existir:
|
|
64
|
+
\`\`\`bash
|
|
65
|
+
mkdir -p openspec/changes/archive
|
|
66
|
+
\`\`\`
|
|
67
|
+
|
|
68
|
+
Gere o nome do destino usando a data atual: \`YYYY-MM-DD-<nome-change>\`
|
|
69
|
+
|
|
70
|
+
**Verifique se o destino já existe:**
|
|
71
|
+
- Se sim: Falhe com erro, sugira renomear o arquivo existente ou usar uma data diferente
|
|
72
|
+
- Se não: Mova o diretório da change para o arquivo
|
|
73
|
+
|
|
74
|
+
\`\`\`bash
|
|
75
|
+
mv openspec/changes/<nome> openspec/changes/archive/YYYY-MM-DD-<nome>
|
|
76
|
+
\`\`\`
|
|
77
|
+
|
|
78
|
+
6. **Exiba o resumo**
|
|
79
|
+
|
|
80
|
+
Mostre o resumo de conclusão do arquivamento incluindo:
|
|
81
|
+
- Nome da change
|
|
82
|
+
- Schema que foi usado
|
|
83
|
+
- Local do arquivo
|
|
84
|
+
- Se os specs foram sincronizados (se aplicável)
|
|
85
|
+
- Observação sobre quaisquer avisos (artifacts/tarefas incompletos)
|
|
86
|
+
|
|
87
|
+
**Saída em Sucesso**
|
|
88
|
+
|
|
89
|
+
\`\`\`
|
|
90
|
+
## Arquivamento Concluído
|
|
91
|
+
|
|
92
|
+
**Change:** <nome-change>
|
|
93
|
+
**Schema:** <nome-schema>
|
|
94
|
+
**Arquivado em:** openspec/changes/archive/YYYY-MM-DD-<nome>/
|
|
95
|
+
**Specs:** ✓ Sincronizados com os specs principais (ou "Sem delta specs" ou "Sincronização ignorada")
|
|
96
|
+
|
|
97
|
+
Todos os artifacts completos. Todas as tarefas completas.
|
|
98
|
+
\`\`\`
|
|
99
|
+
|
|
100
|
+
**Guardrails**
|
|
101
|
+
- Sempre solicite a seleção da change se não fornecida
|
|
102
|
+
- Use o grafo de artifacts (openspec status --json) para verificação de conclusão
|
|
103
|
+
- Não bloqueie o arquivamento por avisos - apenas informe e confirme
|
|
104
|
+
- Preservar .openspec.yaml ao mover para o arquivo (ele move com o diretório)
|
|
105
|
+
- Mostre um resumo claro do que aconteceu
|
|
106
|
+
- Se sync for solicitado, use a abordagem openspec-sync-specs (agent-driven)
|
|
107
107
|
- Se delta specs existirem, sempre execute a avaliação de sync e mostre o resumo combinado antes de solicitar`,
|
|
108
108
|
license: 'MIT',
|
|
109
109
|
compatibility: 'Requer openspec CLI.',
|
|
@@ -116,155 +116,155 @@ export function getOpsxArchiveCommandTemplate() {
|
|
|
116
116
|
description: 'Arquiva uma change concluída no workflow experimental',
|
|
117
117
|
category: 'Workflow',
|
|
118
118
|
tags: ['workflow', 'archive', 'experimental'],
|
|
119
|
-
content: `Arquiva uma change concluída no workflow experimental.
|
|
120
|
-
|
|
121
|
-
**Entrada**: Opcionalmente especifique um nome de change após \`/opsx:archive\` (por exemplo, \`/opsx:archive 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.
|
|
122
|
-
|
|
123
|
-
**Passos**
|
|
124
|
-
|
|
125
|
-
1. **Se nenhum nome de change for fornecido, solicite a seleção**
|
|
126
|
-
|
|
127
|
-
Execute \`openspec list --json\` para obter as changes disponíveis. Use a ferramenta **AskUserQuestion** para permitir que o usuário selecione.
|
|
128
|
-
|
|
129
|
-
Mostre apenas as changes ativas (não arquivadas).
|
|
130
|
-
Inclua o schema usado para cada change, se disponível.
|
|
131
|
-
|
|
132
|
-
**IMPORTANTE**: NÃO adivinhe ou selecione automaticamente uma change. Sempre deixe o usuário escolher.
|
|
133
|
-
|
|
134
|
-
2. **Verifique o status de conclusão dos artifacts**
|
|
135
|
-
|
|
136
|
-
Execute \`openspec status --change "<nome>" --json\` para verificar a conclusão dos artifacts.
|
|
137
|
-
|
|
138
|
-
Analise o JSON para entender:
|
|
139
|
-
- \`schemaName\`: O workflow sendo usado
|
|
140
|
-
- \`artifacts\`: Lista de artifacts com seu status (\`done\` ou outro)
|
|
141
|
-
|
|
142
|
-
**Se algum artifact não estiver \`done\`:**
|
|
143
|
-
- Exiba um aviso listando os artifacts incompletos
|
|
144
|
-
- Solicite confirmação do usuário para continuar
|
|
145
|
-
- Prossiga se o usuário confirmar
|
|
146
|
-
|
|
147
|
-
3. **Verifique o status de conclusão das tarefas**
|
|
148
|
-
|
|
149
|
-
Leia o arquivo de tarefas (tipicamente \`tasks.md\`) para verificar tarefas incompletas.
|
|
150
|
-
|
|
151
|
-
Conte as tarefas marcadas com \`- [ ]\` (incompleto) vs \`- [x]\` (concluído).
|
|
152
|
-
|
|
153
|
-
**Se tarefas incompletas forem encontradas:**
|
|
154
|
-
- Exiba um aviso mostrando a quantidade de tarefas incompletas
|
|
155
|
-
- Solicite confirmação do usuário para continuar
|
|
156
|
-
- Prossiga se o usuário confirmar
|
|
157
|
-
|
|
158
|
-
**Se não existir arquivo de tarefas:** Prossiga sem aviso relacionado a tarefas.
|
|
159
|
-
|
|
160
|
-
4. **Avalie o estado de sincronização dos delta specs**
|
|
161
|
-
|
|
162
|
-
Verifique se existem delta specs em \`openspec/changes/<nome>/specs/\`. Se não existirem, prossiga sem prompt de sync.
|
|
163
|
-
|
|
164
|
-
**Se delta specs existirem:**
|
|
165
|
-
- Compare cada delta spec com seu spec principal correspondente em \`openspec/specs/<capability>/spec.md\`
|
|
166
|
-
- Determine quais alterações seriam aplicadas (adições, modificações, remoções, renomeações)
|
|
167
|
-
- Mostre um resumo combinado antes de solicitar
|
|
168
|
-
|
|
169
|
-
**Opções de prompt:**
|
|
170
|
-
- Se alterações forem necessárias: "Sincronizar agora (recomendado)", "Arquivar sem sincronizar"
|
|
171
|
-
- Se já estiver sincronizado: "Arquivar agora", "Sincronizar mesmo assim", "Cancelar"
|
|
172
|
-
|
|
173
|
-
Se o usuário escolher sincronizar, use a ferramenta Task (subagent_type: "general-purpose", prompt: "Use a ferramenta Skill para invocar openspec-sync-specs para a change '<nome>'. Análise de delta spec: <inclua o resumo analisado do delta spec>"). Prossiga para o arquivamento independentemente da escolha.
|
|
174
|
-
|
|
175
|
-
5. **Realize o arquivamento**
|
|
176
|
-
|
|
177
|
-
Crie o diretório de arquivo se não existir:
|
|
178
|
-
\`\`\`bash
|
|
179
|
-
mkdir -p openspec/changes/archive
|
|
180
|
-
\`\`\`
|
|
181
|
-
|
|
182
|
-
Gere o nome do destino usando a data atual: \`YYYY-MM-DD-<nome-change>\`
|
|
183
|
-
|
|
184
|
-
**Verifique se o destino já existe:**
|
|
185
|
-
- Se sim: Falhe com erro, sugira renomear o arquivo existente ou usar uma data diferente
|
|
186
|
-
- Se não: Mova o diretório da change para o arquivo
|
|
187
|
-
|
|
188
|
-
\`\`\`bash
|
|
189
|
-
mv openspec/changes/<nome> openspec/changes/archive/YYYY-MM-DD-<nome>
|
|
190
|
-
\`\`\`
|
|
191
|
-
|
|
192
|
-
6. **Exiba o resumo**
|
|
193
|
-
|
|
194
|
-
Mostre o resumo de conclusão do arquivamento incluindo:
|
|
195
|
-
- Nome da change
|
|
196
|
-
- Schema que foi usado
|
|
197
|
-
- Local do arquivo
|
|
198
|
-
- Status de sincronização dos specs (sincronizado / sincronização ignorada / sem delta specs)
|
|
199
|
-
- Observação sobre quaisquer avisos (artifacts/tarefas incompletos)
|
|
200
|
-
|
|
201
|
-
**Saída em Sucesso**
|
|
202
|
-
|
|
203
|
-
\`\`\`
|
|
204
|
-
## Arquivamento Concluído
|
|
205
|
-
|
|
206
|
-
**Change:** <nome-change>
|
|
207
|
-
**Schema:** <nome-schema>
|
|
208
|
-
**Arquivado em:** openspec/changes/archive/YYYY-MM-DD-<nome>/
|
|
209
|
-
**Specs:** ✓ Sincronizados com os specs principais
|
|
210
|
-
|
|
211
|
-
Todos os artifacts completos. Todas as tarefas completas.
|
|
212
|
-
\`\`\`
|
|
213
|
-
|
|
214
|
-
**Saída em Sucesso (Sem Delta Specs)**
|
|
215
|
-
|
|
216
|
-
\`\`\`
|
|
217
|
-
## Arquivamento Concluído
|
|
218
|
-
|
|
219
|
-
**Change:** <nome-change>
|
|
220
|
-
**Schema:** <nome-schema>
|
|
221
|
-
**Arquivado em:** openspec/changes/archive/YYYY-MM-DD-<nome>/
|
|
222
|
-
**Specs:** Sem delta specs
|
|
223
|
-
|
|
224
|
-
Todos os artifacts completos. Todas as tarefas completas.
|
|
225
|
-
\`\`\`
|
|
226
|
-
|
|
227
|
-
**Saída em Sucesso com Avisos**
|
|
228
|
-
|
|
229
|
-
\`\`\`
|
|
230
|
-
## Arquivamento Concluído (com avisos)
|
|
231
|
-
|
|
232
|
-
**Change:** <nome-change>
|
|
233
|
-
**Schema:** <nome-schema>
|
|
234
|
-
**Arquivado em:** openspec/changes/archive/YYYY-MM-DD-<nome>/
|
|
235
|
-
**Specs:** Sincronização ignorada (usuário escolheu ignorar)
|
|
236
|
-
|
|
237
|
-
**Avisos:**
|
|
238
|
-
- Arquivado com 2 artifacts incompletos
|
|
239
|
-
- Arquivado com 3 tarefas incompletas
|
|
240
|
-
- Sincronização de delta spec foi ignorada (usuário escolheu ignorar)
|
|
241
|
-
|
|
242
|
-
Revise o arquivo se isso não foi intencional.
|
|
243
|
-
\`\`\`
|
|
244
|
-
|
|
245
|
-
**Saída em Erro (Arquivo Existe)**
|
|
246
|
-
|
|
247
|
-
\`\`\`
|
|
248
|
-
## Arquivamento Falhou
|
|
249
|
-
|
|
250
|
-
**Change:** <nome-change>
|
|
251
|
-
**Destino:** openspec/changes/archive/YYYY-MM-DD-<nome>/
|
|
252
|
-
|
|
253
|
-
O diretório de arquivo de destino já existe.
|
|
254
|
-
|
|
255
|
-
**Opções:**
|
|
256
|
-
1. Renomear o arquivo existente
|
|
257
|
-
2. Excluir o arquivo existente se for uma duplicata
|
|
258
|
-
3. Aguardar até uma data diferente para arquivar
|
|
259
|
-
\`\`\`
|
|
260
|
-
|
|
261
|
-
**Guardrails**
|
|
262
|
-
- Sempre solicite a seleção da change se não fornecida
|
|
263
|
-
- Use o grafo de artifacts (openspec status --json) para verificação de conclusão
|
|
264
|
-
- Não bloqueie o arquivamento por avisos - apenas informe e confirme
|
|
265
|
-
- Preservar .openspec.yaml ao mover para o arquivo (ele move com o diretório)
|
|
266
|
-
- Mostre um resumo claro do que aconteceu
|
|
267
|
-
- Se sync for solicitado, use a ferramenta Skill para invocar \`openspec-sync-specs\` (agent-driven)
|
|
119
|
+
content: `Arquiva uma change concluída no workflow experimental.
|
|
120
|
+
|
|
121
|
+
**Entrada**: Opcionalmente especifique um nome de change após \`/opsx:archive\` (por exemplo, \`/opsx:archive 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.
|
|
122
|
+
|
|
123
|
+
**Passos**
|
|
124
|
+
|
|
125
|
+
1. **Se nenhum nome de change for fornecido, solicite a seleção**
|
|
126
|
+
|
|
127
|
+
Execute \`openspec list --json\` para obter as changes disponíveis. Use a ferramenta **AskUserQuestion** para permitir que o usuário selecione.
|
|
128
|
+
|
|
129
|
+
Mostre apenas as changes ativas (não arquivadas).
|
|
130
|
+
Inclua o schema usado para cada change, se disponível.
|
|
131
|
+
|
|
132
|
+
**IMPORTANTE**: NÃO adivinhe ou selecione automaticamente uma change. Sempre deixe o usuário escolher.
|
|
133
|
+
|
|
134
|
+
2. **Verifique o status de conclusão dos artifacts**
|
|
135
|
+
|
|
136
|
+
Execute \`openspec status --change "<nome>" --json\` para verificar a conclusão dos artifacts.
|
|
137
|
+
|
|
138
|
+
Analise o JSON para entender:
|
|
139
|
+
- \`schemaName\`: O workflow sendo usado
|
|
140
|
+
- \`artifacts\`: Lista de artifacts com seu status (\`done\` ou outro)
|
|
141
|
+
|
|
142
|
+
**Se algum artifact não estiver \`done\`:**
|
|
143
|
+
- Exiba um aviso listando os artifacts incompletos
|
|
144
|
+
- Solicite confirmação do usuário para continuar
|
|
145
|
+
- Prossiga se o usuário confirmar
|
|
146
|
+
|
|
147
|
+
3. **Verifique o status de conclusão das tarefas**
|
|
148
|
+
|
|
149
|
+
Leia o arquivo de tarefas (tipicamente \`tasks.md\`) para verificar tarefas incompletas.
|
|
150
|
+
|
|
151
|
+
Conte as tarefas marcadas com \`- [ ]\` (incompleto) vs \`- [x]\` (concluído).
|
|
152
|
+
|
|
153
|
+
**Se tarefas incompletas forem encontradas:**
|
|
154
|
+
- Exiba um aviso mostrando a quantidade de tarefas incompletas
|
|
155
|
+
- Solicite confirmação do usuário para continuar
|
|
156
|
+
- Prossiga se o usuário confirmar
|
|
157
|
+
|
|
158
|
+
**Se não existir arquivo de tarefas:** Prossiga sem aviso relacionado a tarefas.
|
|
159
|
+
|
|
160
|
+
4. **Avalie o estado de sincronização dos delta specs**
|
|
161
|
+
|
|
162
|
+
Verifique se existem delta specs em \`openspec/changes/<nome>/specs/\`. Se não existirem, prossiga sem prompt de sync.
|
|
163
|
+
|
|
164
|
+
**Se delta specs existirem:**
|
|
165
|
+
- Compare cada delta spec com seu spec principal correspondente em \`openspec/specs/<capability>/spec.md\`
|
|
166
|
+
- Determine quais alterações seriam aplicadas (adições, modificações, remoções, renomeações)
|
|
167
|
+
- Mostre um resumo combinado antes de solicitar
|
|
168
|
+
|
|
169
|
+
**Opções de prompt:**
|
|
170
|
+
- Se alterações forem necessárias: "Sincronizar agora (recomendado)", "Arquivar sem sincronizar"
|
|
171
|
+
- Se já estiver sincronizado: "Arquivar agora", "Sincronizar mesmo assim", "Cancelar"
|
|
172
|
+
|
|
173
|
+
Se o usuário escolher sincronizar, use a ferramenta Task (subagent_type: "general-purpose", prompt: "Use a ferramenta Skill para invocar openspec-sync-specs para a change '<nome>'. Análise de delta spec: <inclua o resumo analisado do delta spec>"). Prossiga para o arquivamento independentemente da escolha.
|
|
174
|
+
|
|
175
|
+
5. **Realize o arquivamento**
|
|
176
|
+
|
|
177
|
+
Crie o diretório de arquivo se não existir:
|
|
178
|
+
\`\`\`bash
|
|
179
|
+
mkdir -p openspec/changes/archive
|
|
180
|
+
\`\`\`
|
|
181
|
+
|
|
182
|
+
Gere o nome do destino usando a data atual: \`YYYY-MM-DD-<nome-change>\`
|
|
183
|
+
|
|
184
|
+
**Verifique se o destino já existe:**
|
|
185
|
+
- Se sim: Falhe com erro, sugira renomear o arquivo existente ou usar uma data diferente
|
|
186
|
+
- Se não: Mova o diretório da change para o arquivo
|
|
187
|
+
|
|
188
|
+
\`\`\`bash
|
|
189
|
+
mv openspec/changes/<nome> openspec/changes/archive/YYYY-MM-DD-<nome>
|
|
190
|
+
\`\`\`
|
|
191
|
+
|
|
192
|
+
6. **Exiba o resumo**
|
|
193
|
+
|
|
194
|
+
Mostre o resumo de conclusão do arquivamento incluindo:
|
|
195
|
+
- Nome da change
|
|
196
|
+
- Schema que foi usado
|
|
197
|
+
- Local do arquivo
|
|
198
|
+
- Status de sincronização dos specs (sincronizado / sincronização ignorada / sem delta specs)
|
|
199
|
+
- Observação sobre quaisquer avisos (artifacts/tarefas incompletos)
|
|
200
|
+
|
|
201
|
+
**Saída em Sucesso**
|
|
202
|
+
|
|
203
|
+
\`\`\`
|
|
204
|
+
## Arquivamento Concluído
|
|
205
|
+
|
|
206
|
+
**Change:** <nome-change>
|
|
207
|
+
**Schema:** <nome-schema>
|
|
208
|
+
**Arquivado em:** openspec/changes/archive/YYYY-MM-DD-<nome>/
|
|
209
|
+
**Specs:** ✓ Sincronizados com os specs principais
|
|
210
|
+
|
|
211
|
+
Todos os artifacts completos. Todas as tarefas completas.
|
|
212
|
+
\`\`\`
|
|
213
|
+
|
|
214
|
+
**Saída em Sucesso (Sem Delta Specs)**
|
|
215
|
+
|
|
216
|
+
\`\`\`
|
|
217
|
+
## Arquivamento Concluído
|
|
218
|
+
|
|
219
|
+
**Change:** <nome-change>
|
|
220
|
+
**Schema:** <nome-schema>
|
|
221
|
+
**Arquivado em:** openspec/changes/archive/YYYY-MM-DD-<nome>/
|
|
222
|
+
**Specs:** Sem delta specs
|
|
223
|
+
|
|
224
|
+
Todos os artifacts completos. Todas as tarefas completas.
|
|
225
|
+
\`\`\`
|
|
226
|
+
|
|
227
|
+
**Saída em Sucesso com Avisos**
|
|
228
|
+
|
|
229
|
+
\`\`\`
|
|
230
|
+
## Arquivamento Concluído (com avisos)
|
|
231
|
+
|
|
232
|
+
**Change:** <nome-change>
|
|
233
|
+
**Schema:** <nome-schema>
|
|
234
|
+
**Arquivado em:** openspec/changes/archive/YYYY-MM-DD-<nome>/
|
|
235
|
+
**Specs:** Sincronização ignorada (usuário escolheu ignorar)
|
|
236
|
+
|
|
237
|
+
**Avisos:**
|
|
238
|
+
- Arquivado com 2 artifacts incompletos
|
|
239
|
+
- Arquivado com 3 tarefas incompletas
|
|
240
|
+
- Sincronização de delta spec foi ignorada (usuário escolheu ignorar)
|
|
241
|
+
|
|
242
|
+
Revise o arquivo se isso não foi intencional.
|
|
243
|
+
\`\`\`
|
|
244
|
+
|
|
245
|
+
**Saída em Erro (Arquivo Existe)**
|
|
246
|
+
|
|
247
|
+
\`\`\`
|
|
248
|
+
## Arquivamento Falhou
|
|
249
|
+
|
|
250
|
+
**Change:** <nome-change>
|
|
251
|
+
**Destino:** openspec/changes/archive/YYYY-MM-DD-<nome>/
|
|
252
|
+
|
|
253
|
+
O diretório de arquivo de destino já existe.
|
|
254
|
+
|
|
255
|
+
**Opções:**
|
|
256
|
+
1. Renomear o arquivo existente
|
|
257
|
+
2. Excluir o arquivo existente se for uma duplicata
|
|
258
|
+
3. Aguardar até uma data diferente para arquivar
|
|
259
|
+
\`\`\`
|
|
260
|
+
|
|
261
|
+
**Guardrails**
|
|
262
|
+
- Sempre solicite a seleção da change se não fornecida
|
|
263
|
+
- Use o grafo de artifacts (openspec status --json) para verificação de conclusão
|
|
264
|
+
- Não bloqueie o arquivamento por avisos - apenas informe e confirme
|
|
265
|
+
- Preservar .openspec.yaml ao mover para o arquivo (ele move com o diretório)
|
|
266
|
+
- Mostre um resumo claro do que aconteceu
|
|
267
|
+
- Se sync for solicitado, use a ferramenta Skill para invocar \`openspec-sync-specs\` (agent-driven)
|
|
268
268
|
- Se delta specs existirem, sempre execute a avaliação de sync e mostre o resumo combinado antes de solicitar`
|
|
269
269
|
};
|
|
270
270
|
}
|