Verificacion y Archivo

Por: Artiko
openspecverifyarchivevalidacion

Verificacion y Archivo

El cierre del ciclo

Con todas las tareas completadas, el cambio setup-data-model esta implementado. Ahora toca cerrar el ciclo: archivar el cambio para que las delta specs se fusionen con los specs principales.

Validacion antes de archivar

Con perfil Core

En el perfil Core, /opsx:archive incluye validaciones internas:

  1. Verifica completitud de artefactos (openspec status)
  2. Verifica que las tareas estan completas
  3. Evalua delta specs y ofrece sincronizarlas
  4. Muestra warnings si algo esta incompleto

Con perfil Expanded

El perfil Expanded ofrece /opsx:verify para validacion formal antes de archivar:

/opsx:verify setup-data-model

Evalua tres dimensiones:

Validacion por CLI

Tambien puedes validar desde la terminal en cualquier momento:

openspec validate setup-data-model

Referencia: openspec validate [nombre]

OpcionDescripcion
--allValidar todos los cambios y specs
--changesValidar solo cambios
--specsValidar solo specs
--type <change|spec>Tipo de item cuando el nombre es ambiguo
--strictModo de validacion estricta
--jsonSalida en JSON
--concurrency <n>Validaciones paralelas (default: 6)
openspec validate                          # Interactivo
openspec validate setup-data-model         # Cambio especifico
openspec validate --all --strict --json    # Todo, estricto, para CI

/opsx:archive - Cerrando el ciclo

Referencia: /opsx:archive

Sintaxis: /opsx:archive [nombre-cambio]

ArgumentoRequeridoDescripcion
nombre-cambioNoCambio a archivar (se pregunta si se omite)
/opsx:archive                    # Pregunta cual archivar
/opsx:archive setup-data-model   # Cambio especifico

Tambien disponible como comando CLI:

Referencia: openspec archive [nombre]

OpcionDescripcion
--yes / -ySaltar confirmaciones (util para CI/scripts)
--skip-specsNo fusionar specs (para cambios de infra/tooling/docs)
--no-validateSaltar validacion (requiere confirmacion)
openspec archive setup-data-model          # Interactivo
openspec archive setup-data-model --yes    # Sin confirmaciones
openspec archive update-ci --skip-specs    # Sin fusion de specs

Que hace archive internamente

  1. Verifica artefactos con openspec status
  2. Verifica tareas pendientes en tasks.md
  3. Evalua delta specs comparando con specs principales
  4. Ofrece sincronizar (fusionar delta specs en specs principales)
  5. Mueve la carpeta al archivo con timestamp

Sincronizacion de specs

Si el cambio tiene delta specs, archive analiza que cambios se aplicarian:

La IA muestra un resumen y pregunta:

Delta specs detectadas. Cambios a aplicar:
- 7 requisitos nuevos (ADDED)

Opciones:
1. Sync now (recommended)
2. Archive without syncing

Resultado del archivo

La carpeta del cambio se mueve a:

openspec/changes/archive/
  2024-12-17-setup-data-model/
    .openspec.yaml
    proposal.md
    design.md
    tasks.md
    specs/

Salida tipica:

## Archive Complete

Change: setup-data-model
Schema: spec-driven
Archived to: openspec/changes/archive/2024-12-17-setup-data-model/
Specs: ✓ Synced to main specs

Los specs tras archivar

Antes del cambio

openspec/specs/
  (vacio)

Despues de archivar

openspec/specs/
  data-model/
    spec.md    # REQ-001 a REQ-007, sin marcadores ADDED

Los requisitos ahora son parte de la linea base. Cuando el siguiente cambio modifique el modelo de datos, sus delta specs mostraran:

### REQ-006: Card fields [MODIFIED]
Card contains: id, title, description, priority, position,
column_id, assignee_id (UUID, FK, optional),
created_at, updated_at.

El ciclo completo

/opsx:propose (o /opsx:new + /opsx:ff)
       |
       v
  Artefactos generados
  (proposal, specs, design, tasks)
       |
  /opsx:apply
       |
       v
  Implementacion
  (tarea por tarea)
       |
  /opsx:archive
       |
       v
  Specs actualizados
  Cambio archivado

Como los specs evolucionan

Los specs son un documento vivo. Con cada cambio archivado:

Despues de 5 cambios archivados, los specs reflejan el estado actual completo del proyecto. Son la fuente de verdad que la IA consulta para cada nuevo cambio.

Esta evolucion incremental es lo que hace a OpenSpec especialmente poderoso en proyectos brownfield.

Resumen


← Capitulo 6: Implementando con Apply | Capitulo 8: Iteracion Drag and Drop →