Propón un nuevo cambio: crea el cambio y genera todos los artefactos en un solo paso.
Crearé un cambio con artefactos:
- proposal.md (qué y por qué)
- design.md (cómo)
- tasks.md (pasos de implementación)
Cuando esté listo para implementar, ejecuta /opsx:apply
Selección de almacén: Si el usuario menciona un almacén (un almacén es un repositorio OpenSpec independiente registrado en esta máquina) o el trabajo reside en uno, ejecuta openspec store list --json para descubrir los IDs de almacenes registrados, luego pasa --store <id> en los comandos que leen o escriben especificaciones y cambios (new change, status, instructions, list, show, validate, archive, doctor, context). Otros comandos no aceptan la bandera. Las pistas impresas por los comandos ya llevan la bandera; manténla en seguimientos. Sin un almacén, los comandos actúan sobre la raíz local openspec/ más cercana.
Entrada: La solicitud del usuario debe incluir un nombre de cambio (en kebab-case) O una descripción de lo que quieren construir.
Pasos
-
Si no se proporciona una entrada clara, pregunta qué quieren construir
Usa la herramienta AskUserQuestion (abierta, sin opciones predefinidas) para preguntar:
"¿En qué cambio quieres trabajar? Describe lo que quieres construir o arreglar."
A partir de su descripción, deriva un nombre en kebab-case (ej.: "añadir autenticación de usuario" →
add-user-auth).IMPORTANTE: No continúes sin entender qué quiere construir el usuario.
-
Crea el directorio del cambio
openspec new change "<nombre>"Esto crea un cambio con estructura base en el directorio de planificación resuelto por el CLI con
.openspec.yaml. -
Obtén el orden de construcción de artefactos
openspec status --change "<nombre>" --jsonAnaliza el JSON para obtener:
applyRequires: array de IDs de artefactos necesarios antes de la implementación (ej.:["tasks"])artifacts: lista de todos los artefactos con su estado y dependenciasplanningHome,changeRoot,artifactPathsyactionContext: contexto de ruta y ámbito. Úsalos en lugar de asumir rutas locales del repositorio.
-
Crea artefactos en secuencia hasta que esté listo para aplicar
Usa la herramienta TodoWrite para seguir el progreso entre los artefactos.
Itera sobre los artefactos en orden de dependencias (primero los artefactos sin dependencias pendientes):
a. Para cada artefacto que esté
ready(dependencias satisfechas):- Obtén instrucciones:
openspec instructions <artifact-id> --change "<nombre>" --json - El JSON de instrucciones incluye:
context: Antecedentes del proyecto (restricciones para ti - NO lo incluyas en la salida)rules: Reglas específicas del artefacto (restricciones para ti - NO lo incluyas en la salida)template: La estructura a usar para tu archivo de salidainstruction: Guía específica del esquema para este tipo de artefactoresolvedOutputPath: Ruta o patrón resuelto para escribir el artefactodependencies: Artefactos completados que debes leer para contexto
- Lee los archivos de dependencias completados para contexto
- Crea el archivo del artefacto usando
templatecomo estructura y escríbelo enresolvedOutputPath - Aplica
contextyrulescomo restricciones - pero NO los copies dentro del archivo - Muestra progreso breve: "Creado "
b. Continúa hasta que todos los artefactos de
applyRequiresestén completos- Después de crear cada artefacto, vuelve a ejecutar
openspec status --change "<nombre>" --json - Verifica si cada ID de artefacto en
applyRequirestienestatus: "done"en el array de artefactos - Detente cuando todos los
applyRequiresestén hechos
c. Si un artefacto requiere entrada del usuario (contexto poco claro):
- Usa la herramienta AskUserQuestion para aclarar
- Luego continúa con la creación
- Obtén instrucciones:
-
Muestra el estado final
openspec status --change "<nombre>"
Salida
Después de completar todos los artefactos, resume:
- Nombre y ubicación del cambio
- Lista de artefactos creados con breves descripciones
- Lo que está listo: "¡Todos los artefactos creados! Listo para implementar."
- Indicación: "Ejecuta
/opsx:applyo pídeme que implemente para comenzar a trabajar en las tareas."
Directrices para la creación de artefactos
- Sigue el campo
instructiondeopenspec instructionspara cada tipo de artefacto - El esquema define qué debe contener cada artefacto - síguelo
- Lee los artefactos de dependencia para contexto antes de crear otros nuevos
- Usa
templatecomo estructura para tu archivo de salida - completa sus secciones - IMPORTANTE:
contextyrulesson restricciones para TI, no contenido para el archivo- NO copies los bloques
<context>,<rules>,<project_context>dentro del artefacto - Estos guían lo que escribes, pero nunca deben aparecer en la salida
- NO copies los bloques
Barreras de protección
- Crea TODOS los artefactos necesarios para la implementación (según lo definido por el
apply.requiresdel esquema) - Siempre lee los artefactos de dependencia antes de crear uno nuevo
- Si el contexto no está críticamente claro, pregunta al usuario - pero prefiere tomar decisiones razonables para mantener el ritmo
- Si ya existe un cambio con ese nombre, pregunta si el usuario quiere continuarlo o crear uno nuevo
- Verifica que cada archivo de artefacto exista después de escribirlo antes de continuar al siguiente