@dynamicworks/br-openspec 1.3.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 (291) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +210 -0
  3. package/README.pt-BR.md +212 -0
  4. package/bin/openspec.js +3 -0
  5. package/dist/cli/index.d.ts +2 -0
  6. package/dist/cli/index.js +484 -0
  7. package/dist/commands/change.d.ts +35 -0
  8. package/dist/commands/change.js +278 -0
  9. package/dist/commands/completion.d.ts +72 -0
  10. package/dist/commands/completion.js +258 -0
  11. package/dist/commands/config.d.ts +36 -0
  12. package/dist/commands/config.js +553 -0
  13. package/dist/commands/feedback.d.ts +9 -0
  14. package/dist/commands/feedback.js +184 -0
  15. package/dist/commands/schema.d.ts +6 -0
  16. package/dist/commands/schema.js +869 -0
  17. package/dist/commands/show.d.ts +14 -0
  18. package/dist/commands/show.js +133 -0
  19. package/dist/commands/spec.d.ts +15 -0
  20. package/dist/commands/spec.js +226 -0
  21. package/dist/commands/tools.d.ts +11 -0
  22. package/dist/commands/tools.js +252 -0
  23. package/dist/commands/validate.d.ts +24 -0
  24. package/dist/commands/validate.js +295 -0
  25. package/dist/commands/workflow/index.d.ts +17 -0
  26. package/dist/commands/workflow/index.js +12 -0
  27. package/dist/commands/workflow/instructions.d.ts +29 -0
  28. package/dist/commands/workflow/instructions.js +328 -0
  29. package/dist/commands/workflow/new-change.d.ts +11 -0
  30. package/dist/commands/workflow/new-change.js +44 -0
  31. package/dist/commands/workflow/schemas.d.ts +10 -0
  32. package/dist/commands/workflow/schemas.js +35 -0
  33. package/dist/commands/workflow/shared.d.ts +57 -0
  34. package/dist/commands/workflow/shared.js +117 -0
  35. package/dist/commands/workflow/status.d.ts +14 -0
  36. package/dist/commands/workflow/status.js +76 -0
  37. package/dist/commands/workflow/templates.d.ts +16 -0
  38. package/dist/commands/workflow/templates.js +70 -0
  39. package/dist/core/archive.d.ts +11 -0
  40. package/dist/core/archive.js +322 -0
  41. package/dist/core/artifact-graph/graph.d.ts +56 -0
  42. package/dist/core/artifact-graph/graph.js +141 -0
  43. package/dist/core/artifact-graph/index.d.ts +8 -0
  44. package/dist/core/artifact-graph/index.js +14 -0
  45. package/dist/core/artifact-graph/instruction-loader.d.ts +143 -0
  46. package/dist/core/artifact-graph/instruction-loader.js +217 -0
  47. package/dist/core/artifact-graph/outputs.d.ts +14 -0
  48. package/dist/core/artifact-graph/outputs.js +39 -0
  49. package/dist/core/artifact-graph/resolver.d.ts +81 -0
  50. package/dist/core/artifact-graph/resolver.js +258 -0
  51. package/dist/core/artifact-graph/schema.d.ts +13 -0
  52. package/dist/core/artifact-graph/schema.js +108 -0
  53. package/dist/core/artifact-graph/state.d.ts +12 -0
  54. package/dist/core/artifact-graph/state.js +31 -0
  55. package/dist/core/artifact-graph/types.d.ts +45 -0
  56. package/dist/core/artifact-graph/types.js +43 -0
  57. package/dist/core/available-tools.d.ts +17 -0
  58. package/dist/core/available-tools.js +43 -0
  59. package/dist/core/command-generation/adapters/amazon-q.d.ts +13 -0
  60. package/dist/core/command-generation/adapters/amazon-q.js +26 -0
  61. package/dist/core/command-generation/adapters/antigravity.d.ts +13 -0
  62. package/dist/core/command-generation/adapters/antigravity.js +26 -0
  63. package/dist/core/command-generation/adapters/auggie.d.ts +13 -0
  64. package/dist/core/command-generation/adapters/auggie.js +27 -0
  65. package/dist/core/command-generation/adapters/bob.d.ts +14 -0
  66. package/dist/core/command-generation/adapters/bob.js +45 -0
  67. package/dist/core/command-generation/adapters/claude.d.ts +13 -0
  68. package/dist/core/command-generation/adapters/claude.js +50 -0
  69. package/dist/core/command-generation/adapters/cline.d.ts +14 -0
  70. package/dist/core/command-generation/adapters/cline.js +27 -0
  71. package/dist/core/command-generation/adapters/codebuddy.d.ts +13 -0
  72. package/dist/core/command-generation/adapters/codebuddy.js +28 -0
  73. package/dist/core/command-generation/adapters/codex.d.ts +16 -0
  74. package/dist/core/command-generation/adapters/codex.js +39 -0
  75. package/dist/core/command-generation/adapters/continue.d.ts +13 -0
  76. package/dist/core/command-generation/adapters/continue.js +28 -0
  77. package/dist/core/command-generation/adapters/costrict.d.ts +13 -0
  78. package/dist/core/command-generation/adapters/costrict.js +27 -0
  79. package/dist/core/command-generation/adapters/crush.d.ts +13 -0
  80. package/dist/core/command-generation/adapters/crush.js +30 -0
  81. package/dist/core/command-generation/adapters/cursor.d.ts +14 -0
  82. package/dist/core/command-generation/adapters/cursor.js +44 -0
  83. package/dist/core/command-generation/adapters/factory.d.ts +13 -0
  84. package/dist/core/command-generation/adapters/factory.js +27 -0
  85. package/dist/core/command-generation/adapters/gemini.d.ts +13 -0
  86. package/dist/core/command-generation/adapters/gemini.js +26 -0
  87. package/dist/core/command-generation/adapters/github-copilot.d.ts +13 -0
  88. package/dist/core/command-generation/adapters/github-copilot.js +26 -0
  89. package/dist/core/command-generation/adapters/iflow.d.ts +13 -0
  90. package/dist/core/command-generation/adapters/iflow.js +29 -0
  91. package/dist/core/command-generation/adapters/index.d.ts +32 -0
  92. package/dist/core/command-generation/adapters/index.js +32 -0
  93. package/dist/core/command-generation/adapters/junie.d.ts +13 -0
  94. package/dist/core/command-generation/adapters/junie.js +26 -0
  95. package/dist/core/command-generation/adapters/kilocode.d.ts +14 -0
  96. package/dist/core/command-generation/adapters/kilocode.js +23 -0
  97. package/dist/core/command-generation/adapters/kiro.d.ts +13 -0
  98. package/dist/core/command-generation/adapters/kiro.js +26 -0
  99. package/dist/core/command-generation/adapters/lingma.d.ts +13 -0
  100. package/dist/core/command-generation/adapters/lingma.js +30 -0
  101. package/dist/core/command-generation/adapters/opencode.d.ts +13 -0
  102. package/dist/core/command-generation/adapters/opencode.js +29 -0
  103. package/dist/core/command-generation/adapters/pi.d.ts +18 -0
  104. package/dist/core/command-generation/adapters/pi.js +55 -0
  105. package/dist/core/command-generation/adapters/qoder.d.ts +13 -0
  106. package/dist/core/command-generation/adapters/qoder.js +30 -0
  107. package/dist/core/command-generation/adapters/qwen.d.ts +13 -0
  108. package/dist/core/command-generation/adapters/qwen.js +26 -0
  109. package/dist/core/command-generation/adapters/roocode.d.ts +14 -0
  110. package/dist/core/command-generation/adapters/roocode.js +27 -0
  111. package/dist/core/command-generation/adapters/windsurf.d.ts +14 -0
  112. package/dist/core/command-generation/adapters/windsurf.js +51 -0
  113. package/dist/core/command-generation/generator.d.ts +21 -0
  114. package/dist/core/command-generation/generator.js +27 -0
  115. package/dist/core/command-generation/index.d.ts +22 -0
  116. package/dist/core/command-generation/index.js +24 -0
  117. package/dist/core/command-generation/registry.d.ts +36 -0
  118. package/dist/core/command-generation/registry.js +98 -0
  119. package/dist/core/command-generation/types.d.ts +56 -0
  120. package/dist/core/command-generation/types.js +8 -0
  121. package/dist/core/completions/command-registry.d.ts +7 -0
  122. package/dist/core/completions/command-registry.js +462 -0
  123. package/dist/core/completions/completion-provider.d.ts +60 -0
  124. package/dist/core/completions/completion-provider.js +102 -0
  125. package/dist/core/completions/factory.d.ts +64 -0
  126. package/dist/core/completions/factory.js +75 -0
  127. package/dist/core/completions/generators/bash-generator.d.ts +32 -0
  128. package/dist/core/completions/generators/bash-generator.js +174 -0
  129. package/dist/core/completions/generators/fish-generator.d.ts +32 -0
  130. package/dist/core/completions/generators/fish-generator.js +157 -0
  131. package/dist/core/completions/generators/powershell-generator.d.ts +33 -0
  132. package/dist/core/completions/generators/powershell-generator.js +208 -0
  133. package/dist/core/completions/generators/zsh-generator.d.ts +44 -0
  134. package/dist/core/completions/generators/zsh-generator.js +250 -0
  135. package/dist/core/completions/installers/bash-installer.d.ts +87 -0
  136. package/dist/core/completions/installers/bash-installer.js +319 -0
  137. package/dist/core/completions/installers/fish-installer.d.ts +43 -0
  138. package/dist/core/completions/installers/fish-installer.js +143 -0
  139. package/dist/core/completions/installers/powershell-installer.d.ts +102 -0
  140. package/dist/core/completions/installers/powershell-installer.js +400 -0
  141. package/dist/core/completions/installers/zsh-installer.d.ts +125 -0
  142. package/dist/core/completions/installers/zsh-installer.js +450 -0
  143. package/dist/core/completions/templates/bash-templates.d.ts +6 -0
  144. package/dist/core/completions/templates/bash-templates.js +24 -0
  145. package/dist/core/completions/templates/fish-templates.d.ts +7 -0
  146. package/dist/core/completions/templates/fish-templates.js +39 -0
  147. package/dist/core/completions/templates/powershell-templates.d.ts +6 -0
  148. package/dist/core/completions/templates/powershell-templates.js +25 -0
  149. package/dist/core/completions/templates/zsh-templates.d.ts +6 -0
  150. package/dist/core/completions/templates/zsh-templates.js +36 -0
  151. package/dist/core/completions/types.d.ts +79 -0
  152. package/dist/core/completions/types.js +2 -0
  153. package/dist/core/config-prompts.d.ts +9 -0
  154. package/dist/core/config-prompts.js +34 -0
  155. package/dist/core/config-schema.d.ts +86 -0
  156. package/dist/core/config-schema.js +213 -0
  157. package/dist/core/config.d.ts +18 -0
  158. package/dist/core/config.js +38 -0
  159. package/dist/core/converters/json-converter.d.ts +6 -0
  160. package/dist/core/converters/json-converter.js +51 -0
  161. package/dist/core/global-config.d.ts +44 -0
  162. package/dist/core/global-config.js +125 -0
  163. package/dist/core/index.d.ts +2 -0
  164. package/dist/core/index.js +3 -0
  165. package/dist/core/init.d.ts +37 -0
  166. package/dist/core/init.js +549 -0
  167. package/dist/core/is-project-initialized.d.ts +12 -0
  168. package/dist/core/is-project-initialized.js +18 -0
  169. package/dist/core/legacy-cleanup.d.ts +162 -0
  170. package/dist/core/legacy-cleanup.js +515 -0
  171. package/dist/core/list.d.ts +9 -0
  172. package/dist/core/list.js +172 -0
  173. package/dist/core/migration.d.ts +23 -0
  174. package/dist/core/migration.js +109 -0
  175. package/dist/core/parsers/change-parser.d.ts +13 -0
  176. package/dist/core/parsers/change-parser.js +197 -0
  177. package/dist/core/parsers/markdown-parser.d.ts +26 -0
  178. package/dist/core/parsers/markdown-parser.js +228 -0
  179. package/dist/core/parsers/requirement-blocks.d.ts +37 -0
  180. package/dist/core/parsers/requirement-blocks.js +201 -0
  181. package/dist/core/parsers/spec-structure.d.ts +9 -0
  182. package/dist/core/parsers/spec-structure.js +88 -0
  183. package/dist/core/profile-sync-drift.d.ts +38 -0
  184. package/dist/core/profile-sync-drift.js +200 -0
  185. package/dist/core/profiles.d.ts +26 -0
  186. package/dist/core/profiles.js +40 -0
  187. package/dist/core/project-config.d.ts +64 -0
  188. package/dist/core/project-config.js +224 -0
  189. package/dist/core/schemas/base.schema.d.ts +13 -0
  190. package/dist/core/schemas/base.schema.js +13 -0
  191. package/dist/core/schemas/change.schema.d.ts +73 -0
  192. package/dist/core/schemas/change.schema.js +31 -0
  193. package/dist/core/schemas/index.d.ts +4 -0
  194. package/dist/core/schemas/index.js +4 -0
  195. package/dist/core/schemas/spec.schema.d.ts +18 -0
  196. package/dist/core/schemas/spec.schema.js +15 -0
  197. package/dist/core/shared/index.d.ts +8 -0
  198. package/dist/core/shared/index.js +8 -0
  199. package/dist/core/shared/skill-generation.d.ts +49 -0
  200. package/dist/core/shared/skill-generation.js +96 -0
  201. package/dist/core/shared/tool-detection.d.ts +71 -0
  202. package/dist/core/shared/tool-detection.js +158 -0
  203. package/dist/core/specs-apply.d.ts +73 -0
  204. package/dist/core/specs-apply.js +393 -0
  205. package/dist/core/styles/palette.d.ts +7 -0
  206. package/dist/core/styles/palette.js +8 -0
  207. package/dist/core/templates/index.d.ts +8 -0
  208. package/dist/core/templates/index.js +9 -0
  209. package/dist/core/templates/skill-templates.d.ts +20 -0
  210. package/dist/core/templates/skill-templates.js +19 -0
  211. package/dist/core/templates/types.d.ts +19 -0
  212. package/dist/core/templates/types.js +5 -0
  213. package/dist/core/templates/workflows/apply-change.d.ts +10 -0
  214. package/dist/core/templates/workflows/apply-change.js +308 -0
  215. package/dist/core/templates/workflows/archive-change.d.ts +10 -0
  216. package/dist/core/templates/workflows/archive-change.js +271 -0
  217. package/dist/core/templates/workflows/bulk-archive-change.d.ts +10 -0
  218. package/dist/core/templates/workflows/bulk-archive-change.js +492 -0
  219. package/dist/core/templates/workflows/continue-change.d.ts +10 -0
  220. package/dist/core/templates/workflows/continue-change.js +232 -0
  221. package/dist/core/templates/workflows/explore.d.ts +10 -0
  222. package/dist/core/templates/workflows/explore.js +463 -0
  223. package/dist/core/templates/workflows/feedback.d.ts +9 -0
  224. package/dist/core/templates/workflows/feedback.js +108 -0
  225. package/dist/core/templates/workflows/ff-change.d.ts +10 -0
  226. package/dist/core/templates/workflows/ff-change.js +198 -0
  227. package/dist/core/templates/workflows/new-change.d.ts +10 -0
  228. package/dist/core/templates/workflows/new-change.js +21 -0
  229. package/dist/core/templates/workflows/onboard.d.ts +10 -0
  230. package/dist/core/templates/workflows/onboard.js +21 -0
  231. package/dist/core/templates/workflows/propose.d.ts +10 -0
  232. package/dist/core/templates/workflows/propose.js +216 -0
  233. package/dist/core/templates/workflows/sync-specs.d.ts +10 -0
  234. package/dist/core/templates/workflows/sync-specs.js +272 -0
  235. package/dist/core/templates/workflows/upstream-sync.d.ts +10 -0
  236. package/dist/core/templates/workflows/upstream-sync.js +116 -0
  237. package/dist/core/templates/workflows/verify-change.d.ts +10 -0
  238. package/dist/core/templates/workflows/verify-change.js +21 -0
  239. package/dist/core/tools-manager.d.ts +56 -0
  240. package/dist/core/tools-manager.js +215 -0
  241. package/dist/core/update.d.ts +77 -0
  242. package/dist/core/update.js +538 -0
  243. package/dist/core/validation/constants.d.ts +34 -0
  244. package/dist/core/validation/constants.js +40 -0
  245. package/dist/core/validation/types.d.ts +18 -0
  246. package/dist/core/validation/types.js +2 -0
  247. package/dist/core/validation/validator.d.ts +33 -0
  248. package/dist/core/validation/validator.js +419 -0
  249. package/dist/core/view.d.ts +8 -0
  250. package/dist/core/view.js +169 -0
  251. package/dist/index.d.ts +3 -0
  252. package/dist/index.js +3 -0
  253. package/dist/messages/index.d.ts +867 -0
  254. package/dist/messages/index.js +1960 -0
  255. package/dist/prompts/searchable-multi-select.d.ts +28 -0
  256. package/dist/prompts/searchable-multi-select.js +160 -0
  257. package/dist/telemetry/config.d.ts +38 -0
  258. package/dist/telemetry/config.js +136 -0
  259. package/dist/telemetry/index.d.ts +31 -0
  260. package/dist/telemetry/index.js +165 -0
  261. package/dist/ui/ascii-patterns.d.ts +16 -0
  262. package/dist/ui/ascii-patterns.js +133 -0
  263. package/dist/ui/welcome-screen.d.ts +10 -0
  264. package/dist/ui/welcome-screen.js +147 -0
  265. package/dist/utils/change-metadata.d.ts +51 -0
  266. package/dist/utils/change-metadata.js +147 -0
  267. package/dist/utils/change-utils.d.ts +62 -0
  268. package/dist/utils/change-utils.js +121 -0
  269. package/dist/utils/command-references.d.ts +18 -0
  270. package/dist/utils/command-references.js +20 -0
  271. package/dist/utils/file-system.d.ts +41 -0
  272. package/dist/utils/file-system.js +302 -0
  273. package/dist/utils/index.d.ts +6 -0
  274. package/dist/utils/index.js +9 -0
  275. package/dist/utils/interactive.d.ts +18 -0
  276. package/dist/utils/interactive.js +21 -0
  277. package/dist/utils/item-discovery.d.ts +4 -0
  278. package/dist/utils/item-discovery.js +72 -0
  279. package/dist/utils/match.d.ts +3 -0
  280. package/dist/utils/match.js +22 -0
  281. package/dist/utils/shell-detection.d.ts +20 -0
  282. package/dist/utils/shell-detection.js +41 -0
  283. package/dist/utils/task-progress.d.ts +8 -0
  284. package/dist/utils/task-progress.js +37 -0
  285. package/package.json +84 -0
  286. package/schemas/spec-driven/schema.yaml +153 -0
  287. package/schemas/spec-driven/templates/design.md +19 -0
  288. package/schemas/spec-driven/templates/proposal.md +23 -0
  289. package/schemas/spec-driven/templates/spec.md +8 -0
  290. package/schemas/spec-driven/templates/tasks.md +9 -0
  291. package/scripts/postinstall.js +83 -0
@@ -0,0 +1,308 @@
1
+ export function getApplyChangeSkillTemplate() {
2
+ return {
3
+ name: 'openspec-apply-change',
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
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
+ license: 'MIT',
151
+ compatibility: 'Requer openspec CLI.',
152
+ metadata: { author: 'openspec', version: '1.0' },
153
+ };
154
+ }
155
+ export function getOpsxApplyCommandTemplate() {
156
+ return {
157
+ name: 'OPSX: Apply',
158
+ description: 'Implementa tarefas de uma change do BR-OpenSpec (Experimental)',
159
+ category: 'Workflow',
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
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
+ };
307
+ }
308
+ //# sourceMappingURL=apply-change.js.map
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Skill Template Workflow Modules
3
+ *
4
+ * This file is generated by splitting the legacy monolithic
5
+ * templates file into workflow-focused modules.
6
+ */
7
+ import type { SkillTemplate, CommandTemplate } from '../types.js';
8
+ export declare function getArchiveChangeSkillTemplate(): SkillTemplate;
9
+ export declare function getOpsxArchiveCommandTemplate(): CommandTemplate;
10
+ //# sourceMappingURL=archive-change.d.ts.map
@@ -0,0 +1,271 @@
1
+ export function getArchiveChangeSkillTemplate() {
2
+ return {
3
+ name: 'openspec-archive-change',
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)
107
+ - Se delta specs existirem, sempre execute a avaliação de sync e mostre o resumo combinado antes de solicitar`,
108
+ license: 'MIT',
109
+ compatibility: 'Requer openspec CLI.',
110
+ metadata: { author: 'openspec', version: '1.0' },
111
+ };
112
+ }
113
+ export function getOpsxArchiveCommandTemplate() {
114
+ return {
115
+ name: 'OPSX: Archive',
116
+ description: 'Arquiva uma change concluída no workflow experimental',
117
+ category: 'Workflow',
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)
268
+ - Se delta specs existirem, sempre execute a avaliação de sync e mostre o resumo combinado antes de solicitar`
269
+ };
270
+ }
271
+ //# sourceMappingURL=archive-change.js.map
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Skill Template Workflow Modules
3
+ *
4
+ * This file is generated by splitting the legacy monolithic
5
+ * templates file into workflow-focused modules.
6
+ */
7
+ import type { SkillTemplate, CommandTemplate } from '../types.js';
8
+ export declare function getBulkArchiveChangeSkillTemplate(): SkillTemplate;
9
+ export declare function getOpsxBulkArchiveCommandTemplate(): CommandTemplate;
10
+ //# sourceMappingURL=bulk-archive-change.d.ts.map