Ir al contenido

Pipeline y validación en CI

Nivel
Avanzado
OpenSpec
1.14.0
Revisado

La validación local (el hook Stop de Claude Code) avisa pronto, pero no obliga. Lo que hace obligatoria la disciplina es una comprobación en la CI que bloquee la fusión.

El comando es el mismo en cualquier plataforma:

Ventana de terminal
openspec validate --all --strict --no-interactive

Comprueba que todas las specs y changes cumplen el formato. --strict convierte las advertencias en errores y --no-interactive evita preguntas en un entorno sin terminal.

azure-pipelines.openspec.yml
trigger: none
pool: { vmImage: ubuntu-latest }
steps:
- task: NodeTool@0
inputs: { versionSpec: '22.x' }
- script: npm i -g @fission-ai/openspec@1.14.0
displayName: Install OpenSpec
- script: openspec validate --all --strict --no-interactive
displayName: Validate specs
env: { OPENSPEC_TELEMETRY: '0' }

Con Azure Repos, regístrala como Build Validation en la branch policy de main.

Puedes hacer fallar la CI si una PR modifica el código fuente sin tocar openspec/changes/, salvo que lleve una etiqueta no-spec. Define la excepción desde el primer día: hotfixes, configuración y cambios editoriales son casos legítimos, y sin una salida explícita la regla se acaba saltando de formas peores.

Revisa de vez en cuando cuántas PR usan no-spec: si crecen, el proceso se está erosionando.

Cuando el flujo esté asentado, puedes ejecutar Claude Code en modo no interactivo (claude -p) en la pipeline con el prompt del verificador y publicar el resultado como comentario en la PR. No lo hagas en el primer sprint: mide antes el valor de la revisión humana y el coste en tokens por PR.

Gobierno del cambio