Glosario de IA Operations
¿Qué es una especificación viva?
Especificación viva (Living Specification)
← Todos los términos del glosarioEspecificación guardada en control de versiones junto al código y actualizada con cada cambio del sistema, en lugar de un documento estático que se queda desfasado.
Explicación
Una especificación viva describe qué debe hacer un sistema y cómo encajan sus partes, y se guarda en el mismo repositorio que el código, actualizándose cada vez que el sistema cambia. Suele combinar documentos legibles con artefactos que entiende una máquina: contratos de API como ficheros OpenAPI, registros de decisiones de arquitectura (ADR), políticas y definiciones de evaluación. Como se versiona y se revisa igual que el código, sigue fiel al sistema que funciona en vez de desfasarse como un PDF. Las herramientas de IA pueden leerla para generar código y pruebas, detectar diferencias entre especificación e implementación y proponer cambios cuando cambian los contratos.
Qué contiene
- Descripciones funcionales: objetivos, usuarios, flujos y criterios de aceptación.
- Contratos: definiciones de API (por ejemplo, OpenAPI), esquemas de eventos y modelos de datos.
- Registros de decisiones de arquitectura que explican por qué las cosas se construyen así.
- Políticas y restricciones: reglas de seguridad, privacidad, rendimiento y cumplimiento.
- Pruebas y definiciones de evaluación que comprueban el sistema frente a la especificación.
Especificación viva frente a documento estático
Una especificación estática se escribe una vez, se aprueba y se queda atrás mientras el código avanza. Tras unas cuantas versiones, nadie se fía de ella.
Una especificación viva cambia en la misma pull request que el código. La revisión cubre las dos cosas, el historial muestra cuándo y por qué cambió cada requisito y las comprobaciones automáticas pueden parar la build cuando la implementación ya no cumple el contrato. La especificación pasa a ser una herramienta de trabajo, no un archivo.
Por qué importa con la IA
Los asistentes y agentes de programación con IA funcionan mejor con un contexto claro y actual. Una especificación viva les da la intención, las reglas y los contratos que necesitan, y así adivinan menos y el código sale más coherente.
También funciona al revés. La IA puede comparar especificaciones y código, proponer migraciones cuando cambia un contrato, regenerar pruebas y resumir qué cambió entre versiones. Enfoques como el desarrollo guiado por especificaciones ponen la especificación en el centro de ese ciclo.
Preguntas frecuentes
¿Qué es una especificación viva?
Es una especificación que vive en control de versiones junto al código y se actualiza con cada cambio del sistema. Describe intención, reglas y contratos, y sigue siendo fiel porque se revisa y se mantiene como el código.
¿Qué diferencia hay entre documentación viva y especificación viva?
La documentación viva describe cómo funciona el sistema ahora, a menudo generada a partir del código o de las pruebas. La especificación viva dice qué debe hacer el sistema y es la referencia con la que se comprueban código y pruebas. En la práctica se solapan y suelen guardarse juntas.
¿Qué herramientas se usan para una especificación viva?
Lo habitual son documentos Markdown en Git, contratos OpenAPI o AsyncAPI, registros de decisiones de arquitectura, ficheros de esquema y baterías de pruebas enlazadas a requisitos. Los kits de desarrollo guiado por especificaciones para asistentes de IA también ordenan especificaciones, planes y tareas en el repositorio.
¿Cómo ayuda una especificación viva a los agentes de programación?
Le da al agente un contexto actual y fiable: qué construir, qué reglas aplican y qué contratos hay que respetar. Así el código encaja mejor en el sistema y es más fácil comprobar lo que hace el agente frente a la especificación.
Guías de decisión que usan este término
Dónde aparece en Thinkia
Para seguir leyendo
Términos relacionados
Fuentes
- OpenAPI Initiative · OpenAPI Specification, GitHub (en inglés)
- Organización ADR en GitHub · Registros de decisiones de arquitectura (en inglés)
- GitHub · Spec Kit, kit para desarrollo guiado por especificaciones (en inglés)
- Gojko Adzic · Specification by Example (en inglés)
Actualizado: 2026-10-21