@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.
- package/LICENSE +22 -0
- package/README.md +210 -0
- package/README.pt-BR.md +212 -0
- package/bin/openspec.js +3 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.js +484 -0
- package/dist/commands/change.d.ts +35 -0
- package/dist/commands/change.js +278 -0
- package/dist/commands/completion.d.ts +72 -0
- package/dist/commands/completion.js +258 -0
- package/dist/commands/config.d.ts +36 -0
- package/dist/commands/config.js +553 -0
- package/dist/commands/feedback.d.ts +9 -0
- package/dist/commands/feedback.js +184 -0
- package/dist/commands/schema.d.ts +6 -0
- package/dist/commands/schema.js +869 -0
- package/dist/commands/show.d.ts +14 -0
- package/dist/commands/show.js +133 -0
- package/dist/commands/spec.d.ts +15 -0
- package/dist/commands/spec.js +226 -0
- package/dist/commands/tools.d.ts +11 -0
- package/dist/commands/tools.js +252 -0
- package/dist/commands/validate.d.ts +24 -0
- package/dist/commands/validate.js +295 -0
- package/dist/commands/workflow/index.d.ts +17 -0
- package/dist/commands/workflow/index.js +12 -0
- package/dist/commands/workflow/instructions.d.ts +29 -0
- package/dist/commands/workflow/instructions.js +328 -0
- package/dist/commands/workflow/new-change.d.ts +11 -0
- package/dist/commands/workflow/new-change.js +44 -0
- package/dist/commands/workflow/schemas.d.ts +10 -0
- package/dist/commands/workflow/schemas.js +35 -0
- package/dist/commands/workflow/shared.d.ts +57 -0
- package/dist/commands/workflow/shared.js +117 -0
- package/dist/commands/workflow/status.d.ts +14 -0
- package/dist/commands/workflow/status.js +76 -0
- package/dist/commands/workflow/templates.d.ts +16 -0
- package/dist/commands/workflow/templates.js +70 -0
- package/dist/core/archive.d.ts +11 -0
- package/dist/core/archive.js +322 -0
- package/dist/core/artifact-graph/graph.d.ts +56 -0
- package/dist/core/artifact-graph/graph.js +141 -0
- package/dist/core/artifact-graph/index.d.ts +8 -0
- package/dist/core/artifact-graph/index.js +14 -0
- package/dist/core/artifact-graph/instruction-loader.d.ts +143 -0
- package/dist/core/artifact-graph/instruction-loader.js +217 -0
- package/dist/core/artifact-graph/outputs.d.ts +14 -0
- package/dist/core/artifact-graph/outputs.js +39 -0
- package/dist/core/artifact-graph/resolver.d.ts +81 -0
- package/dist/core/artifact-graph/resolver.js +258 -0
- package/dist/core/artifact-graph/schema.d.ts +13 -0
- package/dist/core/artifact-graph/schema.js +108 -0
- package/dist/core/artifact-graph/state.d.ts +12 -0
- package/dist/core/artifact-graph/state.js +31 -0
- package/dist/core/artifact-graph/types.d.ts +45 -0
- package/dist/core/artifact-graph/types.js +43 -0
- package/dist/core/available-tools.d.ts +17 -0
- package/dist/core/available-tools.js +43 -0
- package/dist/core/command-generation/adapters/amazon-q.d.ts +13 -0
- package/dist/core/command-generation/adapters/amazon-q.js +26 -0
- package/dist/core/command-generation/adapters/antigravity.d.ts +13 -0
- package/dist/core/command-generation/adapters/antigravity.js +26 -0
- package/dist/core/command-generation/adapters/auggie.d.ts +13 -0
- package/dist/core/command-generation/adapters/auggie.js +27 -0
- package/dist/core/command-generation/adapters/bob.d.ts +14 -0
- package/dist/core/command-generation/adapters/bob.js +45 -0
- package/dist/core/command-generation/adapters/claude.d.ts +13 -0
- package/dist/core/command-generation/adapters/claude.js +50 -0
- package/dist/core/command-generation/adapters/cline.d.ts +14 -0
- package/dist/core/command-generation/adapters/cline.js +27 -0
- package/dist/core/command-generation/adapters/codebuddy.d.ts +13 -0
- package/dist/core/command-generation/adapters/codebuddy.js +28 -0
- package/dist/core/command-generation/adapters/codex.d.ts +16 -0
- package/dist/core/command-generation/adapters/codex.js +39 -0
- package/dist/core/command-generation/adapters/continue.d.ts +13 -0
- package/dist/core/command-generation/adapters/continue.js +28 -0
- package/dist/core/command-generation/adapters/costrict.d.ts +13 -0
- package/dist/core/command-generation/adapters/costrict.js +27 -0
- package/dist/core/command-generation/adapters/crush.d.ts +13 -0
- package/dist/core/command-generation/adapters/crush.js +30 -0
- package/dist/core/command-generation/adapters/cursor.d.ts +14 -0
- package/dist/core/command-generation/adapters/cursor.js +44 -0
- package/dist/core/command-generation/adapters/factory.d.ts +13 -0
- package/dist/core/command-generation/adapters/factory.js +27 -0
- package/dist/core/command-generation/adapters/gemini.d.ts +13 -0
- package/dist/core/command-generation/adapters/gemini.js +26 -0
- package/dist/core/command-generation/adapters/github-copilot.d.ts +13 -0
- package/dist/core/command-generation/adapters/github-copilot.js +26 -0
- package/dist/core/command-generation/adapters/iflow.d.ts +13 -0
- package/dist/core/command-generation/adapters/iflow.js +29 -0
- package/dist/core/command-generation/adapters/index.d.ts +32 -0
- package/dist/core/command-generation/adapters/index.js +32 -0
- package/dist/core/command-generation/adapters/junie.d.ts +13 -0
- package/dist/core/command-generation/adapters/junie.js +26 -0
- package/dist/core/command-generation/adapters/kilocode.d.ts +14 -0
- package/dist/core/command-generation/adapters/kilocode.js +23 -0
- package/dist/core/command-generation/adapters/kiro.d.ts +13 -0
- package/dist/core/command-generation/adapters/kiro.js +26 -0
- package/dist/core/command-generation/adapters/lingma.d.ts +13 -0
- package/dist/core/command-generation/adapters/lingma.js +30 -0
- package/dist/core/command-generation/adapters/opencode.d.ts +13 -0
- package/dist/core/command-generation/adapters/opencode.js +29 -0
- package/dist/core/command-generation/adapters/pi.d.ts +18 -0
- package/dist/core/command-generation/adapters/pi.js +55 -0
- package/dist/core/command-generation/adapters/qoder.d.ts +13 -0
- package/dist/core/command-generation/adapters/qoder.js +30 -0
- package/dist/core/command-generation/adapters/qwen.d.ts +13 -0
- package/dist/core/command-generation/adapters/qwen.js +26 -0
- package/dist/core/command-generation/adapters/roocode.d.ts +14 -0
- package/dist/core/command-generation/adapters/roocode.js +27 -0
- package/dist/core/command-generation/adapters/windsurf.d.ts +14 -0
- package/dist/core/command-generation/adapters/windsurf.js +51 -0
- package/dist/core/command-generation/generator.d.ts +21 -0
- package/dist/core/command-generation/generator.js +27 -0
- package/dist/core/command-generation/index.d.ts +22 -0
- package/dist/core/command-generation/index.js +24 -0
- package/dist/core/command-generation/registry.d.ts +36 -0
- package/dist/core/command-generation/registry.js +98 -0
- package/dist/core/command-generation/types.d.ts +56 -0
- package/dist/core/command-generation/types.js +8 -0
- package/dist/core/completions/command-registry.d.ts +7 -0
- package/dist/core/completions/command-registry.js +462 -0
- package/dist/core/completions/completion-provider.d.ts +60 -0
- package/dist/core/completions/completion-provider.js +102 -0
- package/dist/core/completions/factory.d.ts +64 -0
- package/dist/core/completions/factory.js +75 -0
- package/dist/core/completions/generators/bash-generator.d.ts +32 -0
- package/dist/core/completions/generators/bash-generator.js +174 -0
- package/dist/core/completions/generators/fish-generator.d.ts +32 -0
- package/dist/core/completions/generators/fish-generator.js +157 -0
- package/dist/core/completions/generators/powershell-generator.d.ts +33 -0
- package/dist/core/completions/generators/powershell-generator.js +208 -0
- package/dist/core/completions/generators/zsh-generator.d.ts +44 -0
- package/dist/core/completions/generators/zsh-generator.js +250 -0
- package/dist/core/completions/installers/bash-installer.d.ts +87 -0
- package/dist/core/completions/installers/bash-installer.js +319 -0
- package/dist/core/completions/installers/fish-installer.d.ts +43 -0
- package/dist/core/completions/installers/fish-installer.js +143 -0
- package/dist/core/completions/installers/powershell-installer.d.ts +102 -0
- package/dist/core/completions/installers/powershell-installer.js +400 -0
- package/dist/core/completions/installers/zsh-installer.d.ts +125 -0
- package/dist/core/completions/installers/zsh-installer.js +450 -0
- package/dist/core/completions/templates/bash-templates.d.ts +6 -0
- package/dist/core/completions/templates/bash-templates.js +24 -0
- package/dist/core/completions/templates/fish-templates.d.ts +7 -0
- package/dist/core/completions/templates/fish-templates.js +39 -0
- package/dist/core/completions/templates/powershell-templates.d.ts +6 -0
- package/dist/core/completions/templates/powershell-templates.js +25 -0
- package/dist/core/completions/templates/zsh-templates.d.ts +6 -0
- package/dist/core/completions/templates/zsh-templates.js +36 -0
- package/dist/core/completions/types.d.ts +79 -0
- package/dist/core/completions/types.js +2 -0
- package/dist/core/config-prompts.d.ts +9 -0
- package/dist/core/config-prompts.js +34 -0
- package/dist/core/config-schema.d.ts +86 -0
- package/dist/core/config-schema.js +213 -0
- package/dist/core/config.d.ts +18 -0
- package/dist/core/config.js +38 -0
- package/dist/core/converters/json-converter.d.ts +6 -0
- package/dist/core/converters/json-converter.js +51 -0
- package/dist/core/global-config.d.ts +44 -0
- package/dist/core/global-config.js +125 -0
- package/dist/core/index.d.ts +2 -0
- package/dist/core/index.js +3 -0
- package/dist/core/init.d.ts +37 -0
- package/dist/core/init.js +549 -0
- package/dist/core/is-project-initialized.d.ts +12 -0
- package/dist/core/is-project-initialized.js +18 -0
- package/dist/core/legacy-cleanup.d.ts +162 -0
- package/dist/core/legacy-cleanup.js +515 -0
- package/dist/core/list.d.ts +9 -0
- package/dist/core/list.js +172 -0
- package/dist/core/migration.d.ts +23 -0
- package/dist/core/migration.js +109 -0
- package/dist/core/parsers/change-parser.d.ts +13 -0
- package/dist/core/parsers/change-parser.js +197 -0
- package/dist/core/parsers/markdown-parser.d.ts +26 -0
- package/dist/core/parsers/markdown-parser.js +228 -0
- package/dist/core/parsers/requirement-blocks.d.ts +37 -0
- package/dist/core/parsers/requirement-blocks.js +201 -0
- package/dist/core/parsers/spec-structure.d.ts +9 -0
- package/dist/core/parsers/spec-structure.js +88 -0
- package/dist/core/profile-sync-drift.d.ts +38 -0
- package/dist/core/profile-sync-drift.js +200 -0
- package/dist/core/profiles.d.ts +26 -0
- package/dist/core/profiles.js +40 -0
- package/dist/core/project-config.d.ts +64 -0
- package/dist/core/project-config.js +224 -0
- package/dist/core/schemas/base.schema.d.ts +13 -0
- package/dist/core/schemas/base.schema.js +13 -0
- package/dist/core/schemas/change.schema.d.ts +73 -0
- package/dist/core/schemas/change.schema.js +31 -0
- package/dist/core/schemas/index.d.ts +4 -0
- package/dist/core/schemas/index.js +4 -0
- package/dist/core/schemas/spec.schema.d.ts +18 -0
- package/dist/core/schemas/spec.schema.js +15 -0
- package/dist/core/shared/index.d.ts +8 -0
- package/dist/core/shared/index.js +8 -0
- package/dist/core/shared/skill-generation.d.ts +49 -0
- package/dist/core/shared/skill-generation.js +96 -0
- package/dist/core/shared/tool-detection.d.ts +71 -0
- package/dist/core/shared/tool-detection.js +158 -0
- package/dist/core/specs-apply.d.ts +73 -0
- package/dist/core/specs-apply.js +393 -0
- package/dist/core/styles/palette.d.ts +7 -0
- package/dist/core/styles/palette.js +8 -0
- package/dist/core/templates/index.d.ts +8 -0
- package/dist/core/templates/index.js +9 -0
- package/dist/core/templates/skill-templates.d.ts +20 -0
- package/dist/core/templates/skill-templates.js +19 -0
- package/dist/core/templates/types.d.ts +19 -0
- package/dist/core/templates/types.js +5 -0
- package/dist/core/templates/workflows/apply-change.d.ts +10 -0
- package/dist/core/templates/workflows/apply-change.js +308 -0
- package/dist/core/templates/workflows/archive-change.d.ts +10 -0
- package/dist/core/templates/workflows/archive-change.js +271 -0
- package/dist/core/templates/workflows/bulk-archive-change.d.ts +10 -0
- package/dist/core/templates/workflows/bulk-archive-change.js +492 -0
- package/dist/core/templates/workflows/continue-change.d.ts +10 -0
- package/dist/core/templates/workflows/continue-change.js +232 -0
- package/dist/core/templates/workflows/explore.d.ts +10 -0
- package/dist/core/templates/workflows/explore.js +463 -0
- package/dist/core/templates/workflows/feedback.d.ts +9 -0
- package/dist/core/templates/workflows/feedback.js +108 -0
- package/dist/core/templates/workflows/ff-change.d.ts +10 -0
- package/dist/core/templates/workflows/ff-change.js +198 -0
- package/dist/core/templates/workflows/new-change.d.ts +10 -0
- package/dist/core/templates/workflows/new-change.js +21 -0
- package/dist/core/templates/workflows/onboard.d.ts +10 -0
- package/dist/core/templates/workflows/onboard.js +21 -0
- package/dist/core/templates/workflows/propose.d.ts +10 -0
- package/dist/core/templates/workflows/propose.js +216 -0
- package/dist/core/templates/workflows/sync-specs.d.ts +10 -0
- package/dist/core/templates/workflows/sync-specs.js +272 -0
- package/dist/core/templates/workflows/upstream-sync.d.ts +10 -0
- package/dist/core/templates/workflows/upstream-sync.js +116 -0
- package/dist/core/templates/workflows/verify-change.d.ts +10 -0
- package/dist/core/templates/workflows/verify-change.js +21 -0
- package/dist/core/tools-manager.d.ts +56 -0
- package/dist/core/tools-manager.js +215 -0
- package/dist/core/update.d.ts +77 -0
- package/dist/core/update.js +538 -0
- package/dist/core/validation/constants.d.ts +34 -0
- package/dist/core/validation/constants.js +40 -0
- package/dist/core/validation/types.d.ts +18 -0
- package/dist/core/validation/types.js +2 -0
- package/dist/core/validation/validator.d.ts +33 -0
- package/dist/core/validation/validator.js +419 -0
- package/dist/core/view.d.ts +8 -0
- package/dist/core/view.js +169 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +3 -0
- package/dist/messages/index.d.ts +867 -0
- package/dist/messages/index.js +1960 -0
- package/dist/prompts/searchable-multi-select.d.ts +28 -0
- package/dist/prompts/searchable-multi-select.js +160 -0
- package/dist/telemetry/config.d.ts +38 -0
- package/dist/telemetry/config.js +136 -0
- package/dist/telemetry/index.d.ts +31 -0
- package/dist/telemetry/index.js +165 -0
- package/dist/ui/ascii-patterns.d.ts +16 -0
- package/dist/ui/ascii-patterns.js +133 -0
- package/dist/ui/welcome-screen.d.ts +10 -0
- package/dist/ui/welcome-screen.js +147 -0
- package/dist/utils/change-metadata.d.ts +51 -0
- package/dist/utils/change-metadata.js +147 -0
- package/dist/utils/change-utils.d.ts +62 -0
- package/dist/utils/change-utils.js +121 -0
- package/dist/utils/command-references.d.ts +18 -0
- package/dist/utils/command-references.js +20 -0
- package/dist/utils/file-system.d.ts +41 -0
- package/dist/utils/file-system.js +302 -0
- package/dist/utils/index.d.ts +6 -0
- package/dist/utils/index.js +9 -0
- package/dist/utils/interactive.d.ts +18 -0
- package/dist/utils/interactive.js +21 -0
- package/dist/utils/item-discovery.d.ts +4 -0
- package/dist/utils/item-discovery.js +72 -0
- package/dist/utils/match.d.ts +3 -0
- package/dist/utils/match.js +22 -0
- package/dist/utils/shell-detection.d.ts +20 -0
- package/dist/utils/shell-detection.js +41 -0
- package/dist/utils/task-progress.d.ts +8 -0
- package/dist/utils/task-progress.js +37 -0
- package/package.json +84 -0
- package/schemas/spec-driven/schema.yaml +153 -0
- package/schemas/spec-driven/templates/design.md +19 -0
- package/schemas/spec-driven/templates/proposal.md +23 -0
- package/schemas/spec-driven/templates/spec.md +8 -0
- package/schemas/spec-driven/templates/tasks.md +9 -0
- package/scripts/postinstall.js +83 -0
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
export function getFfChangeSkillTemplate() {
|
|
2
|
+
return {
|
|
3
|
+
name: 'openspec-ff-change',
|
|
4
|
+
description: 'Avance rapidamente pela criação de artifacts do BR-OpenSpec. Use quando o usuário quiser criar rapidamente todos os artifacts necessários para implementação sem passar por cada um individualmente.',
|
|
5
|
+
instructions: `Avance rapidamente pela criação de artifacts - gere tudo o que é necessário para iniciar a implementação de uma vez só.
|
|
6
|
+
|
|
7
|
+
**Entrada**: A solicitação do usuário deve incluir um nome de change (kebab-case) OU uma descrição do que ele quer construir.
|
|
8
|
+
|
|
9
|
+
**Passos**
|
|
10
|
+
|
|
11
|
+
1. **Se nenhuma entrada clara for fornecida, pergunte o que ele quer construir**
|
|
12
|
+
|
|
13
|
+
Use a ferramenta **AskUserQuestion** (aberta, sem opções pré-definidas) para perguntar:
|
|
14
|
+
> "Em qual change você quer trabalhar? Descreva o que quer construir ou corrigir."
|
|
15
|
+
|
|
16
|
+
A partir da descrição dele, derive um nome kebab-case (por exemplo, "adicionar autenticação de usuário" → \`add-user-auth\`).
|
|
17
|
+
|
|
18
|
+
**IMPORTANTE**: NÃO prossiga sem entender o que o usuário quer construir.
|
|
19
|
+
|
|
20
|
+
2. **Crie o diretório da change**
|
|
21
|
+
\`\`\`bash
|
|
22
|
+
openspec new change "<nome>"
|
|
23
|
+
\`\`\`
|
|
24
|
+
Isso cria uma change com scaffold em \`openspec/changes/<nome>/\`.
|
|
25
|
+
|
|
26
|
+
3. **Obtenha a ordem de construção dos artifacts**
|
|
27
|
+
\`\`\`bash
|
|
28
|
+
openspec status --change "<nome>" --json
|
|
29
|
+
\`\`\`
|
|
30
|
+
Analise o JSON para obter:
|
|
31
|
+
- \`applyRequires\`: array de IDs de artifacts necessários antes da implementação (por exemplo, \`["tasks"]\`)
|
|
32
|
+
- \`artifacts\`: lista de todos os artifacts com seu status e dependências
|
|
33
|
+
|
|
34
|
+
4. **Crie artifacts em sequência até estar pronto para apply**
|
|
35
|
+
|
|
36
|
+
Use a ferramenta **TodoWrite** para rastrear o progresso pelos artifacts.
|
|
37
|
+
|
|
38
|
+
Percorra os artifacts em ordem de dependência (artifacts sem dependências pendentes primeiro):
|
|
39
|
+
|
|
40
|
+
a. **Para cada artifact que está \`ready\` (dependências satisfeitas)**:
|
|
41
|
+
- Obtenha instruções:
|
|
42
|
+
\`\`\`bash
|
|
43
|
+
openspec instructions <artifact-id> --change "<nome>" --json
|
|
44
|
+
\`\`\`
|
|
45
|
+
- O JSON de instruções inclui:
|
|
46
|
+
- \`context\`: Contexto do projeto (restrições para você - NÃO inclua na saída)
|
|
47
|
+
- \`rules\`: Regras específicas do artifact (restrições para você - NÃO inclua na saída)
|
|
48
|
+
- \`template\`: A estrutura a ser usada para seu arquivo de saída
|
|
49
|
+
- \`instruction\`: Orientação específica do schema para este tipo de artifact
|
|
50
|
+
- \`outputPath\`: Onde escrever o artifact
|
|
51
|
+
- \`dependencies\`: Artifacts concluídos para ler como contexto
|
|
52
|
+
- Leia quaisquer arquivos de dependências concluídos para contexto
|
|
53
|
+
- Crie o arquivo do artifact usando \`template\` como a estrutura
|
|
54
|
+
- Aplique \`context\` e \`rules\` como restrições - mas NÃO copie-os para o arquivo
|
|
55
|
+
- Mostre breve progresso: "✓ Criado <artifact-id>"
|
|
56
|
+
|
|
57
|
+
b. **Continue até todos os artifacts \`applyRequires\` estarem completos**
|
|
58
|
+
- Após criar cada artifact, reexecute \`openspec status --change "<nome>" --json\`
|
|
59
|
+
- Verifique se cada ID de artifact em \`applyRequires\` tem \`status: "done"\` no array de artifacts
|
|
60
|
+
- Pare quando todos os artifacts \`applyRequires\` estiverem done
|
|
61
|
+
|
|
62
|
+
c. **Se um artifact requerer entrada do usuário** (contexto incerto):
|
|
63
|
+
- Use a ferramenta **AskUserQuestion** para esclarecer
|
|
64
|
+
- Depois continue com a criação
|
|
65
|
+
|
|
66
|
+
5. **Mostre o status final**
|
|
67
|
+
\`\`\`bash
|
|
68
|
+
openspec status --change "<nome>"
|
|
69
|
+
\`\`\`
|
|
70
|
+
|
|
71
|
+
**Saída**
|
|
72
|
+
|
|
73
|
+
Após completar todos os artifacts, resuma:
|
|
74
|
+
- Nome da change e localização
|
|
75
|
+
- Lista de artifacts criados com breves descrições
|
|
76
|
+
- O que está pronto: "Todos os artifacts criados! Pronto para implementação."
|
|
77
|
+
- Prompt: "Execute \`/opsx:apply\` ou peça-me para implementar para começar a trabalhar nas tarefas."
|
|
78
|
+
|
|
79
|
+
**Diretrizes de Criação de Artifacts**
|
|
80
|
+
|
|
81
|
+
- Siga o campo \`instruction\` de \`openspec instructions\` para cada tipo de artifact
|
|
82
|
+
- O schema define o que cada artifact deve conter - siga-o
|
|
83
|
+
- Leia artifacts de dependência para contexto antes de criar novos
|
|
84
|
+
- Use \`template\` como a estrutura para seu arquivo de saída - preencha suas seções
|
|
85
|
+
- **IMPORTANTE**: \`context\` e \`rules\` são restrições para VOCÊ, não conteúdo para o arquivo
|
|
86
|
+
- NÃO copie blocos \`<context>\`, \`<rules>\`, \`<project_context>\` para o artifact
|
|
87
|
+
- Eles guiam o que você escreve, mas nunca devem aparecer na saída
|
|
88
|
+
|
|
89
|
+
**Guardrails**
|
|
90
|
+
- Crie TODOS os artifacts necessários para implementação (conforme definido pelo \`apply.requires\` do schema)
|
|
91
|
+
- Sempre leia artifacts de dependência antes de criar um novo
|
|
92
|
+
- Se o contexto estiver criticamente incerto, pergunte ao usuário - mas prefira tomar decisões razoáveis para manter o momento
|
|
93
|
+
- Se uma change com aquele nome já existir, pergunte se o usuário quer continuar ela ou criar uma nova
|
|
94
|
+
- Verifique se cada arquivo do artifact existe após escrever antes de prosseguir para o próximo`,
|
|
95
|
+
license: 'MIT',
|
|
96
|
+
compatibility: 'Requer openspec CLI.',
|
|
97
|
+
metadata: { author: 'openspec', version: '1.0' },
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
export function getOpsxFfCommandTemplate() {
|
|
101
|
+
return {
|
|
102
|
+
name: 'OPSX: Fast Forward',
|
|
103
|
+
description: 'Crie uma change e gere todos os artifacts necessários para implementação de uma vez só',
|
|
104
|
+
category: 'Workflow',
|
|
105
|
+
tags: ['workflow', 'artifacts', 'experimental'],
|
|
106
|
+
content: `Avance rapidamente pela criação de artifacts - gere tudo o que é necessário para iniciar a implementação.
|
|
107
|
+
|
|
108
|
+
**Entrada**: O argumento após \`/opsx:ff\` é o nome da change (kebab-case), OU uma descrição do que o usuário quer construir.
|
|
109
|
+
|
|
110
|
+
**Passos**
|
|
111
|
+
|
|
112
|
+
1. **Se nenhuma entrada for fornecida, pergunte o que ele quer construir**
|
|
113
|
+
|
|
114
|
+
Use a ferramenta **AskUserQuestion** (aberta, sem opções pré-definidas) para perguntar:
|
|
115
|
+
> "Em qual change você quer trabalhar? Descreva o que quer construir ou corrigir."
|
|
116
|
+
|
|
117
|
+
A partir da descrição dele, derive um nome kebab-case (por exemplo, "adicionar autenticação de usuário" → \`add-user-auth\`).
|
|
118
|
+
|
|
119
|
+
**IMPORTANTE**: NÃO prossiga sem entender o que o usuário quer construir.
|
|
120
|
+
|
|
121
|
+
2. **Crie o diretório da change**
|
|
122
|
+
\`\`\`bash
|
|
123
|
+
openspec new change "<nome>"
|
|
124
|
+
\`\`\`
|
|
125
|
+
Isso cria uma change com scaffold em \`openspec/changes/<nome>/\`.
|
|
126
|
+
|
|
127
|
+
3. **Obtenha a ordem de construção dos artifacts**
|
|
128
|
+
\`\`\`bash
|
|
129
|
+
openspec status --change "<nome>" --json
|
|
130
|
+
\`\`\`
|
|
131
|
+
Analise o JSON para obter:
|
|
132
|
+
- \`applyRequires\`: array de IDs de artifacts necessários antes da implementação (por exemplo, \`["tasks"]\`)
|
|
133
|
+
- \`artifacts\`: lista de todos os artifacts com seu status e dependências
|
|
134
|
+
|
|
135
|
+
4. **Crie artifacts em sequência até estar pronto para apply**
|
|
136
|
+
|
|
137
|
+
Use a ferramenta **TodoWrite** para rastrear o progresso pelos artifacts.
|
|
138
|
+
|
|
139
|
+
Percorra os artifacts em ordem de dependência (artifacts sem dependências pendentes primeiro):
|
|
140
|
+
|
|
141
|
+
a. **Para cada artifact que está \`ready\` (dependências satisfeitas)**:
|
|
142
|
+
- Obtenha instruções:
|
|
143
|
+
\`\`\`bash
|
|
144
|
+
openspec instructions <artifact-id> --change "<nome>" --json
|
|
145
|
+
\`\`\`
|
|
146
|
+
- O JSON de instruções inclui:
|
|
147
|
+
- \`context\`: Contexto do projeto (restrições para você - NÃO inclua na saída)
|
|
148
|
+
- \`rules\`: Regras específicas do artifact (restrições para você - NÃO inclua na saída)
|
|
149
|
+
- \`template\`: A estrutura a ser usada para seu arquivo de saída
|
|
150
|
+
- \`instruction\`: Orientação específica do schema para este tipo de artifact
|
|
151
|
+
- \`outputPath\`: Onde escrever o artifact
|
|
152
|
+
- \`dependencies\`: Artifacts concluídos para ler como contexto
|
|
153
|
+
- Leia quaisquer arquivos de dependências concluídos para contexto
|
|
154
|
+
- Crie o arquivo do artifact usando \`template\` como a estrutura
|
|
155
|
+
- Aplique \`context\` e \`rules\` como restrições - mas NÃO copie-os para o arquivo
|
|
156
|
+
- Mostre breve progresso: "✓ Criado <artifact-id>"
|
|
157
|
+
|
|
158
|
+
b. **Continue até todos os artifacts \`applyRequires\` estarem completos**
|
|
159
|
+
- Após criar cada artifact, reexecute \`openspec status --change "<nome>" --json\`
|
|
160
|
+
- Verifique se cada ID de artifact em \`applyRequires\` tem \`status: "done"\` no array de artifacts
|
|
161
|
+
- Pare quando todos os artifacts \`applyRequires\` estiverem done
|
|
162
|
+
|
|
163
|
+
c. **Se um artifact requerer entrada do usuário** (contexto incerto):
|
|
164
|
+
- Use a ferramenta **AskUserQuestion** para esclarecer
|
|
165
|
+
- Depois continue com a criação
|
|
166
|
+
|
|
167
|
+
5. **Mostre o status final**
|
|
168
|
+
\`\`\`bash
|
|
169
|
+
openspec status --change "<nome>"
|
|
170
|
+
\`\`\`
|
|
171
|
+
|
|
172
|
+
**Saída**
|
|
173
|
+
|
|
174
|
+
Após completar todos os artifacts, resuma:
|
|
175
|
+
- Nome da change e localização
|
|
176
|
+
- Lista de artifacts criados com breves descrições
|
|
177
|
+
- O que está pronto: "Todos os artifacts criados! Pronto para implementação."
|
|
178
|
+
- Prompt: "Execute \`/opsx:apply\` para começar a implementar."
|
|
179
|
+
|
|
180
|
+
**Diretrizes de Criação de Artifacts**
|
|
181
|
+
|
|
182
|
+
- Siga o campo \`instruction\` de \`openspec instructions\` para cada tipo de artifact
|
|
183
|
+
- O schema define o que cada artifact deve conter - siga-o
|
|
184
|
+
- Leia artifacts de dependência para contexto antes de criar novos
|
|
185
|
+
- Use \`template\` como a estrutura para seu arquivo de saída - preencha suas seções
|
|
186
|
+
- **IMPORTANTE**: \`context\` e \`rules\` são restrições para VOCÊ, não conteúdo para o arquivo
|
|
187
|
+
- NÃO copie blocos \`<context>\`, \`<rules>\`, \`<project_context>\` para o artifact
|
|
188
|
+
- Eles guiam o que você escreve, mas nunca devem aparecer na saída
|
|
189
|
+
|
|
190
|
+
**Guardrails**
|
|
191
|
+
- Crie TODOS os artifacts necessários para implementação (conforme definido pelo \`apply.requires\` do schema)
|
|
192
|
+
- Sempre leia artifacts de dependência antes de criar um novo
|
|
193
|
+
- Se o contexto estiver criticamente incerto, pergunte ao usuário - mas prefira tomar decisões razoáveis para manter o momento
|
|
194
|
+
- Se uma change com aquele nome já existir, pergunte se o usuário quer continuar ela ou criar uma nova
|
|
195
|
+
- Verifique se cada arquivo do artifact existe após escrever antes de prosseguir para o próximo`
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
//# sourceMappingURL=ff-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 getNewChangeSkillTemplate(): SkillTemplate;
|
|
9
|
+
export declare function getOpsxNewCommandTemplate(): CommandTemplate;
|
|
10
|
+
//# sourceMappingURL=new-change.d.ts.map
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { NEW_CHANGE_TEMPLATE_MESSAGES } from '../../../messages/index.js';
|
|
2
|
+
export function getNewChangeSkillTemplate() {
|
|
3
|
+
return {
|
|
4
|
+
name: 'openspec-new-change',
|
|
5
|
+
description: NEW_CHANGE_TEMPLATE_MESSAGES.skillDescription,
|
|
6
|
+
instructions: NEW_CHANGE_TEMPLATE_MESSAGES.skillInstructions,
|
|
7
|
+
license: 'MIT',
|
|
8
|
+
compatibility: NEW_CHANGE_TEMPLATE_MESSAGES.skillCompatibility,
|
|
9
|
+
metadata: { author: 'openspec', version: '1.0' },
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
export function getOpsxNewCommandTemplate() {
|
|
13
|
+
return {
|
|
14
|
+
name: 'OPSX: New',
|
|
15
|
+
description: NEW_CHANGE_TEMPLATE_MESSAGES.opsxDescription,
|
|
16
|
+
category: 'Workflow',
|
|
17
|
+
tags: ['workflow', 'artifacts', 'experimental'],
|
|
18
|
+
content: NEW_CHANGE_TEMPLATE_MESSAGES.opsxContent,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=new-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 getOnboardSkillTemplate(): SkillTemplate;
|
|
9
|
+
export declare function getOpsxOnboardCommandTemplate(): CommandTemplate;
|
|
10
|
+
//# sourceMappingURL=onboard.d.ts.map
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ONBOARD_TEMPLATE_MESSAGES } from '../../../messages/index.js';
|
|
2
|
+
export function getOnboardSkillTemplate() {
|
|
3
|
+
return {
|
|
4
|
+
name: 'openspec-onboard',
|
|
5
|
+
description: ONBOARD_TEMPLATE_MESSAGES.skillDescription,
|
|
6
|
+
instructions: ONBOARD_TEMPLATE_MESSAGES.instructions,
|
|
7
|
+
license: 'MIT',
|
|
8
|
+
compatibility: ONBOARD_TEMPLATE_MESSAGES.skillCompatibility,
|
|
9
|
+
metadata: { author: 'openspec', version: '1.0' },
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
export function getOpsxOnboardCommandTemplate() {
|
|
13
|
+
return {
|
|
14
|
+
name: 'OPSX: Onboard',
|
|
15
|
+
description: ONBOARD_TEMPLATE_MESSAGES.opsxDescription,
|
|
16
|
+
category: 'Workflow',
|
|
17
|
+
tags: ['workflow', 'onboarding', 'tutorial', 'learning'],
|
|
18
|
+
content: ONBOARD_TEMPLATE_MESSAGES.instructions,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=onboard.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 getOpsxProposeSkillTemplate(): SkillTemplate;
|
|
9
|
+
export declare function getOpsxProposeCommandTemplate(): CommandTemplate;
|
|
10
|
+
//# sourceMappingURL=propose.d.ts.map
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
export function getOpsxProposeSkillTemplate() {
|
|
2
|
+
return {
|
|
3
|
+
name: 'openspec-propose',
|
|
4
|
+
description: 'Proponha uma nova change com todos os artifacts gerados em um passo. Use quando o usuário quiser descrever rapidamente o que quer construir e obter uma proposal completa com design, specs e tasks prontos para implementação.',
|
|
5
|
+
instructions: `Proponha uma nova change - crie a change e gere todos os artifacts em um passo.
|
|
6
|
+
|
|
7
|
+
Vou criar uma change com artifacts:
|
|
8
|
+
- proposal.md (o que & por que)
|
|
9
|
+
- design.md (como)
|
|
10
|
+
- tasks.md (passos de implementação)
|
|
11
|
+
|
|
12
|
+
Quando pronto para implementar, execute /opsx:apply
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
**Entrada**: A solicitação do usuário deve incluir um nome de change (kebab-case) OU uma descrição do que ele quer construir.
|
|
17
|
+
|
|
18
|
+
**Passos**
|
|
19
|
+
|
|
20
|
+
1. **Se nenhuma entrada clara for fornecida, pergunte o que ele quer construir**
|
|
21
|
+
|
|
22
|
+
Use a ferramenta **AskUserQuestion** (aberta, sem opções pré-definidas) para perguntar:
|
|
23
|
+
> "Em qual change você quer trabalhar? Descreva o que quer construir ou corrigir."
|
|
24
|
+
|
|
25
|
+
A partir da descrição dele, derive um nome kebab-case (por exemplo, "adicionar autenticação de usuário" → \`add-user-auth\`).
|
|
26
|
+
|
|
27
|
+
**IMPORTANTE**: NÃO prossiga sem entender o que o usuário quer construir.
|
|
28
|
+
|
|
29
|
+
2. **Crie o diretório da change**
|
|
30
|
+
\`\`\`bash
|
|
31
|
+
openspec new change "<nome>"
|
|
32
|
+
\`\`\`
|
|
33
|
+
Isso cria uma change com scaffold em \`openspec/changes/<nome>/\` com \`.openspec.yaml\`.
|
|
34
|
+
|
|
35
|
+
3. **Obtenha a ordem de construção dos artifacts**
|
|
36
|
+
\`\`\`bash
|
|
37
|
+
openspec status --change "<nome>" --json
|
|
38
|
+
\`\`\`
|
|
39
|
+
Analise o JSON para obter:
|
|
40
|
+
- \`applyRequires\`: array de IDs de artifacts necessários antes da implementação (por exemplo, \`["tasks"]\`)
|
|
41
|
+
- \`artifacts\`: lista de todos os artifacts com seu status e dependências
|
|
42
|
+
|
|
43
|
+
4. **Crie artifacts em sequência até estar pronto para apply**
|
|
44
|
+
|
|
45
|
+
Use a ferramenta **TodoWrite** para rastrear o progresso pelos artifacts.
|
|
46
|
+
|
|
47
|
+
Percorra os artifacts em ordem de dependência (artifacts sem dependências pendentes primeiro):
|
|
48
|
+
|
|
49
|
+
a. **Para cada artifact que está \`ready\` (dependências satisfeitas)**:
|
|
50
|
+
- Obtenha instruções:
|
|
51
|
+
\`\`\`bash
|
|
52
|
+
openspec instructions <artifact-id> --change "<nome>" --json
|
|
53
|
+
\`\`\`
|
|
54
|
+
- O JSON de instruções inclui:
|
|
55
|
+
- \`context\`: Contexto do projeto (restrições para você - NÃO inclua na saída)
|
|
56
|
+
- \`rules\`: Regras específicas do artifact (restrições para você - NÃO inclua na saída)
|
|
57
|
+
- \`template\`: A estrutura a ser usada para seu arquivo de saída
|
|
58
|
+
- \`instruction\`: Orientação específica do schema para este tipo de artifact
|
|
59
|
+
- \`outputPath\`: Onde escrever o artifact
|
|
60
|
+
- \`dependencies\`: Artifacts concluídos para ler como contexto
|
|
61
|
+
- Leia quaisquer arquivos de dependências concluídos para contexto
|
|
62
|
+
- Crie o arquivo do artifact usando \`template\` como a estrutura
|
|
63
|
+
- Aplique \`context\` e \`rules\` como restrições - mas NÃO copie-os para o arquivo
|
|
64
|
+
- Mostre breve progresso: "Criado <artifact-id>"
|
|
65
|
+
|
|
66
|
+
b. **Continue até todos os artifacts \`applyRequires\` estarem completos**
|
|
67
|
+
- Após criar cada artifact, reexecute \`openspec status --change "<nome>" --json\`
|
|
68
|
+
- Verifique se cada ID de artifact em \`applyRequires\` tem \`status: "done"\` no array de artifacts
|
|
69
|
+
- Pare quando todos os artifacts \`applyRequires\` estiverem done
|
|
70
|
+
|
|
71
|
+
c. **Se um artifact requerer entrada do usuário** (contexto incerto):
|
|
72
|
+
- Use a ferramenta **AskUserQuestion** para esclarecer
|
|
73
|
+
- Depois continue com a criação
|
|
74
|
+
|
|
75
|
+
5. **Mostre o status final**
|
|
76
|
+
\`\`\`bash
|
|
77
|
+
openspec status --change "<nome>"
|
|
78
|
+
\`\`\`
|
|
79
|
+
|
|
80
|
+
**Saída**
|
|
81
|
+
|
|
82
|
+
Após completar todos os artifacts, resuma:
|
|
83
|
+
- Nome da change e localização
|
|
84
|
+
- Lista de artifacts criados com breves descrições
|
|
85
|
+
- O que está pronto: "Todos os artifacts criados! Pronto para implementação."
|
|
86
|
+
- Prompt: "Execute \`/opsx:apply\` ou peça-me para implementar para começar a trabalhar nas tarefas."
|
|
87
|
+
|
|
88
|
+
**Diretrizes de Criação de Artifacts**
|
|
89
|
+
|
|
90
|
+
- Siga o campo \`instruction\` de \`openspec instructions\` para cada tipo de artifact
|
|
91
|
+
- O schema define o que cada artifact deve conter - siga-o
|
|
92
|
+
- Leia artifacts de dependência para contexto antes de criar novos
|
|
93
|
+
- Use \`template\` como a estrutura para seu arquivo de saída - preencha suas seções
|
|
94
|
+
- **IMPORTANTE**: \`context\` e \`rules\` são restrições para VOCÊ, não conteúdo para o arquivo
|
|
95
|
+
- NÃO copie blocos \`<context>\`, \`<rules>\`, \`<project_context>\` para o artifact
|
|
96
|
+
- Eles guiam o que você escreve, mas nunca devem aparecer na saída
|
|
97
|
+
|
|
98
|
+
**Guardrails**
|
|
99
|
+
- Crie TODOS os artifacts necessários para implementação (conforme definido pelo \`apply.requires\` do schema)
|
|
100
|
+
- Sempre leia artifacts de dependência antes de criar um novo
|
|
101
|
+
- Se o contexto estiver criticamente incerto, pergunte ao usuário - mas prefira tomar decisões razoáveis para manter o momento
|
|
102
|
+
- Se uma change com aquele nome já existir, pergunte se o usuário quer continuar ela ou criar uma nova
|
|
103
|
+
- Verifique se cada arquivo do artifact existe após escrever antes de prosseguir para o próximo`,
|
|
104
|
+
license: 'MIT',
|
|
105
|
+
compatibility: 'Requer openspec CLI.',
|
|
106
|
+
metadata: { author: 'openspec', version: '1.0' },
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
export function getOpsxProposeCommandTemplate() {
|
|
110
|
+
return {
|
|
111
|
+
name: 'OPSX: Propose',
|
|
112
|
+
description: 'Proponha uma nova change - crie-a e gere todos os artifacts em um passo',
|
|
113
|
+
category: 'Workflow',
|
|
114
|
+
tags: ['workflow', 'artifacts', 'experimental'],
|
|
115
|
+
content: `Proponha uma nova change - crie a change e gere todos os artifacts em um passo.
|
|
116
|
+
|
|
117
|
+
Vou criar uma change com artifacts:
|
|
118
|
+
- proposal.md (o que & por que)
|
|
119
|
+
- design.md (como)
|
|
120
|
+
- tasks.md (passos de implementação)
|
|
121
|
+
|
|
122
|
+
Quando pronto para implementar, execute /opsx:apply
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
**Entrada**: O argumento após \`/opsx:propose\` é o nome da change (kebab-case), OU uma descrição do que o usuário quer construir.
|
|
127
|
+
|
|
128
|
+
**Passos**
|
|
129
|
+
|
|
130
|
+
1. **Se nenhuma entrada for fornecida, pergunte o que ele quer construir**
|
|
131
|
+
|
|
132
|
+
Use a ferramenta **AskUserQuestion** (aberta, sem opções pré-definidas) para perguntar:
|
|
133
|
+
> "Em qual change você quer trabalhar? Descreva o que quer construir ou corrigir."
|
|
134
|
+
|
|
135
|
+
A partir da descrição dele, derive um nome kebab-case (por exemplo, "adicionar autenticação de usuário" → \`add-user-auth\`).
|
|
136
|
+
|
|
137
|
+
**IMPORTANTE**: NÃO prossiga sem entender o que o usuário quer construir.
|
|
138
|
+
|
|
139
|
+
2. **Crie o diretório da change**
|
|
140
|
+
\`\`\`bash
|
|
141
|
+
openspec new change "<nome>"
|
|
142
|
+
\`\`\`
|
|
143
|
+
Isso cria uma change com scaffold em \`openspec/changes/<nome>/\` com \`.openspec.yaml\`.
|
|
144
|
+
|
|
145
|
+
3. **Obtenha a ordem de construção dos artifacts**
|
|
146
|
+
\`\`\`bash
|
|
147
|
+
openspec status --change "<nome>" --json
|
|
148
|
+
\`\`\`
|
|
149
|
+
Analise o JSON para obter:
|
|
150
|
+
- \`applyRequires\`: array de IDs de artifacts necessários antes da implementação (por exemplo, \`["tasks"]\`)
|
|
151
|
+
- \`artifacts\`: lista de todos os artifacts com seu status e dependências
|
|
152
|
+
|
|
153
|
+
4. **Crie artifacts em sequência até estar pronto para apply**
|
|
154
|
+
|
|
155
|
+
Use a ferramenta **TodoWrite** para rastrear o progresso pelos artifacts.
|
|
156
|
+
|
|
157
|
+
Percorra os artifacts em ordem de dependência (artifacts sem dependências pendentes primeiro):
|
|
158
|
+
|
|
159
|
+
a. **Para cada artifact que está \`ready\` (dependências satisfeitas)**:
|
|
160
|
+
- Obtenha instruções:
|
|
161
|
+
\`\`\`bash
|
|
162
|
+
openspec instructions <artifact-id> --change "<nome>" --json
|
|
163
|
+
\`\`\`
|
|
164
|
+
- O JSON de instruções inclui:
|
|
165
|
+
- \`context\`: Contexto do projeto (restrições para você - NÃO inclua na saída)
|
|
166
|
+
- \`rules\`: Regras específicas do artifact (restrições para você - NÃO inclua na saída)
|
|
167
|
+
- \`template\`: A estrutura a ser usada para seu arquivo de saída
|
|
168
|
+
- \`instruction\`: Orientação específica do schema para este tipo de artifact
|
|
169
|
+
- \`outputPath\`: Onde escrever o artifact
|
|
170
|
+
- \`dependencies\`: Artifacts concluídos para ler como contexto
|
|
171
|
+
- Leia quaisquer arquivos de dependências concluídos para contexto
|
|
172
|
+
- Crie o arquivo do artifact usando \`template\` como a estrutura
|
|
173
|
+
- Aplique \`context\` e \`rules\` como restrições - mas NÃO copie-os para o arquivo
|
|
174
|
+
- Mostre breve progresso: "Criado <artifact-id>"
|
|
175
|
+
|
|
176
|
+
b. **Continue até todos os artifacts \`applyRequires\` estarem completos**
|
|
177
|
+
- Após criar cada artifact, reexecute \`openspec status --change "<nome>" --json\`
|
|
178
|
+
- Verifique se cada ID de artifact em \`applyRequires\` tem \`status: "done"\` no array de artifacts
|
|
179
|
+
- Pare quando todos os artifacts \`applyRequires\` estiverem done
|
|
180
|
+
|
|
181
|
+
c. **Se um artifact requerer entrada do usuário** (contexto incerto):
|
|
182
|
+
- Use a ferramenta **AskUserQuestion** para esclarecer
|
|
183
|
+
- Depois continue com a criação
|
|
184
|
+
|
|
185
|
+
5. **Mostre o status final**
|
|
186
|
+
\`\`\`bash
|
|
187
|
+
openspec status --change "<nome>"
|
|
188
|
+
\`\`\`
|
|
189
|
+
|
|
190
|
+
**Saída**
|
|
191
|
+
|
|
192
|
+
Após completar todos os artifacts, resuma:
|
|
193
|
+
- Nome da change e localização
|
|
194
|
+
- Lista de artifacts criados com breves descrições
|
|
195
|
+
- O que está pronto: "Todos os artifacts criados! Pronto para implementação."
|
|
196
|
+
- Prompt: "Execute \`/opsx:apply\` para começar a implementar."
|
|
197
|
+
|
|
198
|
+
**Diretrizes de Criação de Artifacts**
|
|
199
|
+
|
|
200
|
+
- Siga o campo \`instruction\` de \`openspec instructions\` para cada tipo de artifact
|
|
201
|
+
- O schema define o que cada artifact deve conter - siga-o
|
|
202
|
+
- Leia artifacts de dependência para contexto antes de criar novos
|
|
203
|
+
- Use \`template\` como a estrutura para seu arquivo de saída - preencha suas seções
|
|
204
|
+
- **IMPORTANTE**: \`context\` e \`rules\` são restrições para VOCÊ, não conteúdo para o arquivo
|
|
205
|
+
- NÃO copie blocos \`<context>\`, \`<rules>\`, \`<project_context>\` para o artifact
|
|
206
|
+
- Eles guiam o que você escreve, mas nunca devem aparecer na saída
|
|
207
|
+
|
|
208
|
+
**Guardrails**
|
|
209
|
+
- Crie TODOS os artifacts necessários para implementação (conforme definido pelo \`apply.requires\` do schema)
|
|
210
|
+
- Sempre leia artifacts de dependência antes de criar um novo
|
|
211
|
+
- Se o contexto estiver criticamente incerto, pergunte ao usuário - mas prefira tomar decisões razoáveis para manter o momento
|
|
212
|
+
- Se uma change com aquele nome já existir, pergunte se o usuário quer continuar ela ou criar uma nova
|
|
213
|
+
- Verifique se cada arquivo do artifact existe após escrever antes de prosseguir para o próximo`
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
//# sourceMappingURL=propose.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 getSyncSpecsSkillTemplate(): SkillTemplate;
|
|
9
|
+
export declare function getOpsxSyncCommandTemplate(): CommandTemplate;
|
|
10
|
+
//# sourceMappingURL=sync-specs.d.ts.map
|