SpecScore vs OpenSpec
Ambos colocan especificaciones en Markdown, junto a tu código, legibles por agentes de IA. Responden preguntas distintas: OpenSpec organiza especificaciones y genera comandos para agentes. SpecScore valida el contenido de las especificaciones, aplica el ciclo de vida y traza el código de vuelta a los requisitos.
Lo que tienen en común.
Lo que OpenSpec hace bien.
El soporte de agentes más amplio
OpenSpec soporta 29 agentes de IA mediante archivos de skills generados — Claude, Cursor, Copilot, Gemini, Windsurf, Cline y más. Si tu agente está en la lista, OpenSpec se integra sin configuración.
Baja barrera de entrada
npm install -g @fission-ai/openspec && openspec init y ya estás escribiendo especificaciones. Sin esquema que aprender, sin frontmatter obligatorio. Diseñado para ser sencillo — especialmente para proyectos existentes.
Modelo limpio de deltas de cambio
El formato ADDED / MODIFIED / REMOVED de OpenSpec para evolucionar especificaciones está bien diseñado. Cada cambio es una carpeta con una propuesta, especificaciones delta y tareas — una forma estructurada de proponer modificaciones.
Comparación de funcionalidades.
| Capacidad | OpenSpec | SpecScore |
|---|---|---|
| Formato de especificación | Markdown (sin frontmatter) | Markdown + YAML frontmatter |
| Linting de especificaciones | Solo estructura de archivos | Calidad de contenido — verbos vagos, ACs faltantes, referencias colgantes |
| IDs de requisitos | Ninguno (referenciados por título) | Basados en slug (REQ: slug-format) |
| IDs de criterios de aceptación | Ninguno | IDs direccionables por máquina |
| Estado del ciclo de vida | Implícito (ubicación del archivo) | Aplicado — Draft → Under Review → Approved → Implementing → Stable → Deprecated |
| Trazabilidad código-a-especificación | Ninguno | specscore: anotaciones + Verifies: trailers de commits |
| Sub-features | No | Sí (directorios anidados) |
| Referencias cruzadas | Sin mecanismo formal | Dependencias, Ideas fuente, referencias a planes |
| Integración CI | Básica (openspec validate) | specscore lint con severidad configurable, hooks de pre-commit |
| Soporte de agentes | 29 agentes | Claude Code como principal + CLI para cualquier agente |
| Personalización de esquema | Sí (schema.yaml, fork/init) | Esquema fijo (consistencia por diseño) |
| Propuestas de cambio | Modelo delta (ADDED/MODIFIED/REMOVED) | Ideas de cambio + propuestas |
| Dependencia de runtime | Node.js 20.19+ | Ninguna — binario Go único |
| Licencia | MIT | MIT |
Donde SpecScore va más allá.
La validación va más allá de la estructura de archivos
El validate de OpenSpec verifica la estructura de archivos — si el archivo existe, si tiene las secciones correctas. SpecScore verifica más, en dos capas: lint comprueba de forma determinista las relaciones de contenido — cada requisito tiene criterios de aceptación, las referencias cruzadas se resuelven, las transiciones de estado son válidas — y un revisor de IA (/review, /score) detecta lo que ningún linter puede: criterios ambiguos y verbos vagos.
$ specscore lint checkout/apply-discount.md ✗ R3 no acceptance criteria ✗ link "Related Feature: discount-tiers" not found
Cada requisito tiene un ID legible por máquina
OpenSpec referencia requisitos por título — frágil ante renombramientos. SpecScore asigna IDs basados en slug (REQ: slug-format) e IDs de ACs que sobreviven renombramientos, refactorizaciones y traspasos entre agentes.
El ciclo de vida se aplica, no se infiere
En OpenSpec, el ciclo de vida de una especificación es su ubicación de archivo: specs/ (actual), changes/ (propuesto), archive/ (terminado). En SpecScore, el ciclo de vida es un campo de estado aplicado — Draft → Under Review → Approved → Implementing → Stable → Deprecated — validado por lint, transicionado por specscore change-status desde git hooks o CI.
El código se traza de vuelta a las especificaciones
OpenSpec no tiene mecanismo de trazabilidad. SpecScore tiene anotaciones specscore: en comentarios de código y trailers Verifies: en commits. Ejecuta specscore code refs y obtén una respuesta determinista a "¿qué código implementa este requisito?"
Sin dependencia de runtime
OpenSpec requiere Node.js 20.19+. SpecScore es un binario Go único — sin runtime, sin node_modules. Funciona en proyectos Go, Rust, Python, Java sin agregar Node al toolchain.
Jerarquía de artefactos componible
Las especificaciones de OpenSpec son planas por dominio. SpecScore tiene una jerarquía tipada: Ideas se promueven a Features, Features contienen requisitos y ACs, Plans referencian ACs, Tasks referencian Plans. Todas las relaciones son navegables por máquina a través del CLI.
Cuándo usar cada uno.
Empieza con OpenSpec cuando…
- Usas Cursor, Copilot u otros agentes no-Claude y necesitas integración lista para usar.
- Estás agregando especificaciones a un codebase existente por primera vez y quieres cero fricción.
- Tu equipo valora la flexibilidad de esquema sobre la aplicación estricta.
Usa SpecScore cuando…
- Necesitas control de calidad de especificaciones — lint detecta ambigüedades antes de que los agentes desperdicien tokens en ellas.
- Necesitas trazabilidad código-a-especificación — "¿qué código implementa este requisito?" retorna una respuesta determinista.
- Estás construyendo un sistema grande con muchas features, sub-features y transiciones de ciclo de vida.
- Quieres cero dependencias de runtime — un binario, sin Node.js requerido.
- Necesitas puertas de calidad de especificaciones en CI —
specscore lintsale con código no-cero en fallos, igual que ESLint ogo vet.
No son mutuamente excluyentes.
SpecScore puede hacer lint de los archivos spec.md de OpenSpec. Los equipos que empiezan con OpenSpec pueden agregar la capa de calidad de SpecScore sin migrar — valida las especificaciones que ya tienes, agrega trazabilidad cuando la necesites, aplica el ciclo de vida cuando tu equipo crezca.
OpenSpec es una buena rampa de entrada. SpecScore son las barandas de seguridad.
Otras comparaciones.
El mismo formato, junto a otras herramientas de desarrollo guiado por especificaciones:
Todas juntas, en una página: mejores herramientas de desarrollo basado en especificaciones en 2026.
Comentarios
Esta comparación se basa en documentación y código fuente públicamente disponibles. ¿Algo incorrecto o desactualizado? abre un issue de corrección. ¿Quieres que comparemos SpecScore con otra herramienta? solicita una.