Las specs son el código fuente. El código es un artefacto de build.
Por qué cerrar el ciclo con reverse discovery no agrega un comando — invierte qué cosa es el activo de un sistema de software.
el LLM es el compilador
reverse discovery es el decompilador — uno que recupera intención, no solo estructura
01 · Antes — el código es la verdad
Así funciona hoy casi todo proyecto: el activo es el código. La spec —si existe— es documentación: se escribe una vez y se pudre en silencio, porque nada la obliga a moverse cuando el código se mueve. A los seis meses nadie le cree, y con razón. Cuando el documento y el código dicen cosas distintas, gana el código. Siempre.
Fíjense la consecuencia económica: todo lo que la organización sabe del sistema vive en un artefacto que solo se puede leer ejecutándolo. Cuando el único que lo entiende se jubila, el conocimiento se jubila con él.
02 · La analogía — nadie edita el binario
Pensemos en C. Nadie parchea el binario compilado a mano — sería una locura: se edita
el .c y se recompila. El binario es descartable, regenerable;
el .c es el activo. La tesis dice: con LLMs suficientemente buenos, el
código fuente pasa a ocupar el lugar del binario. Se edita la spec y se
«recompila»: el LLM genera el código.
Un compilador solo, sin embargo, va en una dirección. Mientras la metodología era solo forward (intención → spec → código), la spec era una entrada más — no la representación canónica — porque el mundo está lleno de sistemas donde solo existe el código. Falta la vuelta.
03 · Después — el ciclo cerrado invierte el activo
Reverse discovery agrega la dirección inversa: código → spec. Es el
decompilador. Y con las dos direcciones, cualquier sistema — incluso el
legacy sin un solo documento — puede entrar al formato canónico. Con una condición que
hace todo el trabajo: el código legacy mezcla intención con accidente. Bugs de los que
los clientes ya dependen, timeouts que nadie decidió. Un decompilador ingenuo fotocopia
los bugs como features. Por eso el paso que ninguna herramienta automática puede hacer
es un gate humano: la máquina extrae candidatas con evidencia, y solo
una persona dictamina qué era intención (preserve), qué era bug
(fix) y qué nadie decidió jamás (undefined).
04 · Corolarios — lo que se desprende solo
El activo se aprecia; el código se deprecia. Si el código es regenerable, cada mejora de los modelos mejora el «build» gratis: el mismo paquete de specs, recompilado con el LLM de 2027, produce mejor código. Las specs son la única inversión que no envejece — y ese es el argumento comercial: no se vende la reescritura, se vende el activo que sobrevive también a la próxima reescritura.
La fidelidad se vuelve medible. Si se decompila lo que se compiló y el resultado coincide con lo que había, la metodología es lossless — y eso es un número, como el bootstrap test de un compilador que se compila a sí mismo:
discovery(forward(specs)) ≈ specs.
Nadie en el espacio spec-driven mide la fidelidad de su propia metodología; este ciclo
la convierte en un número publicable.Drift y migración son el mismo problema. Una spec que quedó tres semanas atrás del código es 5% de drift; un legacy sin ningún documento es 100% de drift. La misma pregunta, a distinta escala — con la honestidad de que hoy son instrumentos distintos, no un motor común.
05 · Truth-pass — qué es real hoy, qué sigue siendo visión
El pitch es hermoso, y justamente por eso hay que tenerle desconfianza. La regla de la casa: under-claim, luego cablear, luego re-claim. Estado al día de hoy (kit 1.65.0):
| Afirmación | Estado | Dónde |
|---|---|---|
| Curación con veredictos, gate medido, ledger auditable apéndice-only | REAL | 1.64.0 · ADR-009/010 |
| Oráculo que distingue comportamiento preservado de fixes declarados | REAL | 1.65.0 · golden-diff |
| Round-trip por cobertura de ID (¿qué specs son trazables en el código?) | REAL | 1.65.0 · roundtrip, advisory |
| Round-trip semántico (¿el código dice lo mismo que la spec?) | VISIÓN | diferido con condiciones · ADR-011 |
| «El código es totalmente regenerable desde las specs» | VISIÓN | el bootstrap test es el experimento pendiente |
| «Drift = reverse discovery incremental, mismo motor» | VISIÓN | idea válida, arquitectura rechazada · ADR-011 |
Y nótese lo elegante: la parte del diamante que ya es real — la capa de juicio humano formal, trazable y bloqueante — es exactamente la que ninguna herramienta del espacio tiene. La parte que sigue siendo visión es la que cualquiera podría prometer. Está construido lo difícil y falta lo glamoroso: el orden correcto.
06 · Por qué «diamante»
Porque no es la feature. Reverse discovery — el comando — es solo la primera materialización. Lo que el ciclo cerrado cambia es la categoría del proyecto entero: de metodología de desarrollo a formato de representación canónica de sistemas. El código va y viene; las decisiones — evidenciadas, juzgadas, registradas — son lo único que vale la pena migrar.
Estado verificado contra kit 1.65.0 · fuentes: ADR-009, ADR-010, ADR-011, CHANGELOG-1.64.0, CHANGELOG-1.65.0 · los estados REAL/VISIÓN siguen la regla INV-TRUTH-01 del repo.