config.yaml y schemas personalizados
openspec/config.yaml adapta los artefactos que genera el agente a tu proyecto: qué flujo usar, qué contexto debe conocer y qué reglas cumple cada artefacto. Si el flujo estándar no encaja, puedes definir tu propio schema.
Estructura de config.yaml
Sección titulada «Estructura de config.yaml»schema: spec-driven
context: | Aplicación de gestión de reservas de salas. Las fechas se guardan en UTC y se muestran en la zona horaria de la sala. Los códigos de error de negocio usan MAYÚSCULAS_CON_GUIONES (RESERVA_DUPLICADA).
rules: proposal: - Indica qué equipos o integraciones se ven afectados. specs: - Cada requisito incluye al menos un escenario de error con su código. tasks: - Cada tarea de implementación tiene su tarea de test.
operations: apply: guidance: | Ejecuta los tests del módulo afectado tras cada tarea. archive: guidance: | Comprueba que openspec validate --all --strict pasa antes de archivar.schema: el flujo de artefactos que se usa por defecto (spec-drivenes el estándar).context: se aplica a todos los artefactos. Incluye solo restricciones que el agente no puede deducir leyendo el código; repetir lo obvio solo gasta contexto.rules.<artefacto>: reglas específicas de un artefacto (proposal,specs,design,tasks).operations: orientación para la ejecución de apply y archive.
CLAUDE.md o config.yaml
Sección titulada «CLAUDE.md o config.yaml»Va en CLAUDE.md |
Va en config.yaml |
|---|---|
| Convenciones generales del repositorio (comandos, estilo, git) | Contexto de dominio que deben reflejar los artefactos |
| Instrucciones para cualquier tarea del agente | Reglas por artefacto (rules) |
| Herramientas y entorno de desarrollo | Orientación para apply y archive (operations) |
openspec init --language no sobrescribe un config.yaml existente: si ya lo tienes, ajusta el idioma a mano.
Schemas personalizados
Sección titulada «Schemas personalizados»Un schema define qué artefactos tiene un change y en qué orden se generan. Puedes partir del estándar o crear uno desde cero.
# Copiar el schema estándar al proyecto para modificarloopenspec schema fork spec-driven mi-flujo# O crear uno nuevo desde ceroopenspec schema init rapido --artifacts proposal,tasks# Validar estructura y plantillasopenspec schema validate mi-flujo# Ver de dónde se resuelve el schemaopenspec schema which# Crear un change con un schema concretoopenspec new change mi-cambio --schema mi-flujo# Listar schemas y plantillas disponiblesopenspec schemasopenspec templates# Copiar el schema estándar al proyecto para modificarloopenspec schema fork spec-driven mi-flujo# O crear uno nuevo desde ceroopenspec schema init rapido --artifacts proposal,tasks# Validar estructura y plantillasopenspec schema validate mi-flujo# Ver de dónde se resuelve el schemaopenspec schema which# Crear un change con un schema concretoopenspec new change mi-cambio --schema mi-flujo# Listar schemas y plantillas disponiblesopenspec schemasopenspec templatesPara que un schema sea el predeterminado del proyecto, indícalo en la clave schema de config.yaml.