Pipeline y validación en CI
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.
Qué validar
Sección titulada «Qué validar»El comando es el mismo en cualquier plataforma:
openspec validate --all --strict --no-interactiveComprueba 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.
Pipeline mínima
Sección titulada «Pipeline mínima»trigger: nonepool: { 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.
name: openspecon: pull_request: push: branches: [main]env: OPENSPEC_TELEMETRY: '0'jobs: validate: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 22 - run: npm i -g @fission-ai/openspec@1.14.0 - run: openspec validate --all --strict --no-interactiveRegla opcional: no hay código sin change
Sección titulada «Regla opcional: no hay código sin change»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.
Automatización futura
Sección titulada «Automatización futura»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.