SpecScore vs CodeSpeak
Dos respuestas a "para qué deberían servir las especificaciones". CodeSpeak trata la especificación comocódigo fuente — un LLM la compila, y tú mantienes la especificación en lugar del código. SpecScore trata la especificación como un contrato abierto y duradero — conservas tu código, y cualquier agente (o ninguno) puede leerla, lintearla y trazarla.
Lo que tienen en común.
Lo que CodeSpeak hace bien.
CodeSpeakes un sistema de programación impulsado por LLM que compila especificaciones en inglés estructurado a código.
Una tesis audaz, argumentada con credibilidad
"Mantén la especificación, no el código" es un replanteamiento genuino, no un ajuste incremental. Viene del diseñador del lenguaje Kotlin, y vale la pena tomarlo en serio: si la especificación es la fuente, el código generado se convierte en un detalle de implementación.
Toma de control de código-a-especificación
codespeak takeover lee el código fuente existente y produce una especificación que captura su comportamiento — una rampa de entrada de baja fricción para código heredado, con una compresión de especificación-a-código reportada de aproximadamente 5–10×.
Recuperación de intención de sesiones de agentes
El Intent Studio de CodeSpeak extrae requisitos de sesiones de agentes previas — cosechando la intención que ya has expresado en lugar de pedirte que escribas una especificación desde una página en blanco.
Comparación de funcionalidades.
Las dos hacen apuestas distintas, así que la tabla compara filosofía y mecánica, no ganadores.
| Capacidad | CodeSpeak | SpecScore |
|---|---|---|
| Fuente de la verdad | La especificación (entrada de compilación) | La especificación es el contrato; el código es el entregable |
| Código generado | Producido por un LLM, no mantenido a mano | Tú y tus agentes escriben y poseen el código |
| Formato de especificación | Inglés simple, definido por CodeSpeak | Estándar Markdown + YAML abierto, esquema publicado |
| Especificación → código | Funcionalidad central (compilador LLM propietario) | Fuera de alcance — cualquier agente implementa |
| Funciona sin el proveedor | Las especificaciones se compilan a través de CodeSpeak | Sí — las especificaciones funcionan con cualquier agente, o ninguno |
| Linting de especificaciones | Sin documentar | Calidad de contenido — verbos vagos, ACs faltantes, referencias colgantes |
| Trazabilidad código-a-especificación | Vía regeneración | specscore: anotaciones + Verifies: trailers |
| Determinismo | Compilación LLM (no determinista) | Consultas CLI deterministas; código escrito normalmente |
| Código → especificación | codespeak takeover | survey + redacción |
| Apertura | Sistema propietario | Abierto — formato CC BY 4.0, herramientas MIT / Apache-2.0 |
| Etapa | Vista previa alfa | En producción |
En qué difiere SpecScore.
Conservas tu código
CodeSpeak genera y regenera la implementación; el código es una salida, no un activo. SpecScore deja el código donde corresponde — en tus manos, en tu lenguaje, revisable línea por línea. La especificación agrega claridad y trazabilidad sin quitarte el código.
Tus especificaciones son portables
Una especificación de CodeSpeak es valiosa porque CodeSpeak la compila. Una especificación de SpecScore es valiosa por sí misma — es Markdown bien estructurado que cualquier agente puede leer, y sigue siendo útil sin ningún tooling de SpecScore instalado en absoluto. Adóptala con cualquier herramienta, o ninguna. Vete cuando quieras.
La ambigüedad se detecta antes de que cueste
Con un compilador LLM, una especificación ambigua se convierte en código incorrecto en tiempo de build. El lint de SpecScore saca a la luz verbos vagos, criterios de aceptación faltantes y referencias colgantes antes de que un agente actúe sobre ellos.
$ specscore lint checkout/apply-discount.md ✗ R3 no acceptance criteria ✗ verb "handle gracefully" — no medible
Determinismo y trazabilidad
La respuesta de CodeSpeak a "¿qué código implementa esto?" es "todo, regenerado." La respuesta de SpecScore es un archivo y una línea específicos, víaspecscore code refs y trailers de commit Verifies:— determinista, auditable, diff-able.
Un grafo de artefactos estructurado
La unidad de CodeSpeak es un archivo de especificación en prosa. SpecScore tiene una jerarquía tipada — Ideas se promueven a Features, Features llevan Requisitos y Criterios de Aceptación con IDs, Plans referencian ACs, Tasks referencian Plans — todo navegable por máquina.
Sin proveedor en la ruta de build
SpecScore es un binario Go único. Lint se ejecuta en CI y en hooks de pre-commit sin cuenta, sin llamada a servicio, sin ida y vuelta a un LLM en tu build.
Cuándo usar cada uno.
Recurre a CodeSpeak cuando…
- Quieres dejar de mantener código y dejar que la especificación sea la fuente.
- Te sientes cómodo dependiendo del compilador de un proveedor para esa palanca.
- Quieres comprimir un codebase existente en una especificación mucho más corta.
Usa SpecScore cuando…
- Quieres especificaciones que sobrevivan a cualquier herramienta individual — portables por construcción.
- Quieres conservar tu código, en tu lenguaje, revisable y propio.
- Necesitas aplicación de calidad de especificaciones — lint detecta la ambigüedad temprano.
- Necesitas trazabilidad código-a-especificación determinista.
- No quieres ningún proveedor ni ida y vuelta a un LLM en tu ruta de build.
Dos apuestas distintas.
CodeSpeak es una apuesta por un compilador: entrégale la especificación y confía en que producirá y reproducirá el código. SpecScore es una apuesta por un formato: mantén la especificación abierta y portable, mantén el código tuyo, y deja que cualquier agente trabaje contra ella.
Una cambia portabilidad por palanca. La otra te mantiene libre — y lintable.
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.