Propor uma nova mudança - crie a mudança e todos os artefatos em uma única etapa.
Criarei uma mudança com artefatos:
- proposal.md (o quê e por quê)
- design.md (como)
- tasks.md (passos de implementação)
Quando estiver pronto para implementar, execute /opsx:apply
Seleção de armazenamento: Se o usuário nomear um armazenamento (um armazenamento é um repositório OpenSpec independente registrado nesta máquina) ou o trabalho estiver em um, execute openspec store list --json para descobrir os IDs de armazenamento registrados, depois passe --store <id> nos comandos que leem ou escrevem especificações e mudanças (new change, status, instructions, list, show, validate, archive, doctor, context). Outros comandos não aceitam a flag. As dicas impressas pelos comandos já carregam a flag; mantenha-a nos acompanhamentos. Sem um armazenamento, os comandos atuam na raiz openspec/ local mais próxima.
Entrada: A solicitação do usuário deve incluir um nome de mudança (em kebab-case) OU uma descrição do que desejam construir.
Passos
-
Se nenhuma entrada clara for fornecida, pergunte o que desejam construir
Use a ferramenta AskUserQuestion (pergunta aberta, sem opções predefinidas) para perguntar:
"Em qual mudança você deseja trabalhar? Descreva o que deseja construir ou corrigir."
A partir da descrição, derive um nome em kebab-case (ex.: "adicionar autenticação de usuário" →
adicionar-auth-usuario).IMPORTANTE: Não prossiga sem entender o que o usuário deseja construir.
-
Crie o diretório da mudança
openspec new change "<nome>"Isso cria uma mudança esqueleto no diretório base de planejamento resolvido pela CLI com
.openspec.yaml. -
Obtenha a ordem de construção dos artefatos
openspec status --change "<nome>" --jsonAnalise o JSON para obter:
applyRequires: array de IDs de artefatos necessários antes da implementação (ex.:["tasks"])artifacts: lista de todos os artefatos com seu status e dependênciasplanningHome,changeRoot,artifactPathseactionContext: contexto de caminho e escopo. Use estes em vez de assumir caminhos locais do repositório.
-
Crie artefatos em sequência até estar pronto para aplicação
Use a ferramenta TodoWrite para acompanhar o progresso pelos artefatos.
Percorra os artefatos em ordem de dependência (artefatos sem dependências pendentes primeiro):
a. Para cada artefato que estiver
pronto(dependências satisfeitas):- Obtenha as instruções:
openspec instructions <id-do-artefato> --change "<nome>" --json - O JSON de instruções inclui:
context: Contexto do projeto (restrições para você - NÃO inclua na saída)rules: Regras específicas do artefato (restrições para você - NÃO inclua na saída)template: A estrutura a ser usada para o arquivo de saídainstruction: Orientação específica do esquema para este tipo de artefatoresolvedOutputPath: Caminho resolvido ou padrão para escrever o artefatodependencies: Artefatos concluídos para ler como contexto
- Leia os arquivos de dependência concluídos para obter contexto
- Crie o arquivo do artefato usando
templatecomo a estrutura e escreva-o emresolvedOutputPath - Aplique
contexterulescomo restrições - mas NÃO os copie para o arquivo - Mostre progresso breve: "Criado "
b. Continue até que todos os artefatos
applyRequiresestejam completos- Após criar cada artefato, execute novamente
openspec status --change "<nome>" --json - Verifique se cada ID de artefato em
applyRequirestemstatus: "done"no array de artefatos - Pare quando todos os artefatos
applyRequiresestiverem prontos
c. Se um artefato exigir entrada do usuário (contexto pouco claro):
- Use a ferramenta AskUserQuestion para esclarecer
- Depois continue com a criação
- Obtenha as instruções:
-
Mostre o status final
openspec status --change "<nome>"
Saída
Após concluir todos os artefatos, resuma:
- Nome da mudança e localização
- Lista de artefatos criados com breves descrições
- O que está pronto: "Todos os artefatos criados! Pronto para implementação."
- Sugestão: "Execute
/opsx:applyou peça para implementar para começar a trabalhar nas tarefas."
Diretrizes de Criação de Artefatos
- Siga o campo
instructiondeopenspec instructionspara cada tipo de artefato - O esquema define o que cada artefato deve conter - siga-o
- Leia os artefatos de dependência para obter contexto antes de criar novos
- Use
templatecomo a estrutura para o arquivo de saída - preencha suas seções - IMPORTANTE:
contexterulessão restrições para VOCÊ, não conteúdo para o arquivo- NÃO copie blocos
<context>,<rules>,<project_context>para o artefato - Eles guiam o que você escreve, mas nunca devem aparecer na saída
- NÃO copie blocos
Barreiras de Segurança
- Crie TODOS os artefatos necessários para implementação (conforme definido pelo
apply.requiresdo esquema) - Sempre leia os artefatos de dependência antes de criar um novo
- Se o contexto estiver criticamente pouco claro, pergunte ao usuário - mas prefira tomar decisões razoáveis para manter o ritmo
- Se uma mudança com esse nome já existir, pergunte se o usuário deseja continuá-la ou criar uma nova
- Verifique se cada arquivo de artefato existe após escrever antes de prosseguir para o próximo