Añadido
- Lint de contratos unificado (cierre del Bloque 1 del roadmap): nuevo
scripts/lib/contract-lint.js(registro puro de checkers, sin cortocircuito) con tres checkers —i1-manifest(nuevo: cruza el manifiestoruntime_capabilities:del frontmatter de los 14 SKILL.md de fase SDD contra lastools:reales del agente vinculado, emitiendo un offender explícito si el agente vinculado a un phase skill no existe en disco),j1-commands-agents(extracción descripts/commands-agents-contract.test.jspreservando sus guards rel-1/rel-2) ei3-budget-constant(extracción/generalización de la coherencia hooks.json↔constantes de lock JS+Go). Sin vía de invocación nueva: el arnés queda recogido por el glob existente descripts/check.js(pre-commit + CI ya cableados). - Manifiesto
runtime_capabilities:retrofitteado en los 14 SKILL.md de fase SDD (obligatorio para ese tier; utility/stack/_sharedquedan opcionales). - Categoría de evidencia
static-linten la taxonomía desdd-verify, distinta deruntime-test. - Nuevo dominio baseline
openspec/specs/contract-lint/spec.md.
Full Changelog: v2.20.3...v2.21.0