SOLID, hexagonal architecture, TDD, ADRs, intentional naming — these existed for 30 years and were never fully adopted because humans couldn't sustain them under pressure. The AI reader that benefits from them is also the executor that enforces them. The friction of adoption disappeared. The benefit doubled. SOLID, arquitectura hexagonal, TDD, ADRs, naming intencional — estas existieron 30 años y nunca se adoptaron completamente porque los humanos no las podían sostener bajo presión. El lector de IA que se beneficia de ellas es también el ejecutor que las hace cumplir. La fricción de adopción desapareció. El beneficio se duplicó.
Temper is the heart of Generative Specification. Every other stage — the mold, the harness, the cascade — exists to make this one possible. The structural disciplines below were invented over thirty years to make code legible to the next human reader. A stateless AI reader has the exact same problem: it arrives knowing nothing about what you meant. The disciplines that help the human help the AI — for the same reason, by the same mechanism. El Templado es el corazón de la Especificación Generativa. Cada otra etapa — el molde, el harness, la cascada — existe para hacer posible esta. Las disciplinas estructurales de abajo fueron inventadas a lo largo de treinta años para hacer el código legible para el siguiente lector humano. Un lector de IA sin estado tiene exactamente el mismo problema: llega sin saber nada de lo que quisiste decir. Las disciplinas que ayudan al humano ayudan a la IA — por la misma razón, por el mismo mecanismo.
But there is a difference that changes everything. Humans could never fully sustain these disciplines under deadline pressure. The AI reader that benefits from them is also the AI executor that enforces them on every file it touches. The discipline that required willpower is now structural. That is why Temper is the core: it is where the thirty-year-old promise of software engineering finally becomes enforceable. Pero hay una diferencia que lo cambia todo. Los humanos nunca pudieron sostener completamente estas disciplinas bajo la presión de los plazos. El lector de IA que se beneficia de ellas es también el ejecutor de IA que las hace cumplir en cada archivo que toca. La disciplina que requería fuerza de voluntad ahora es estructural. Por eso el Templado es el núcleo: es donde la promesa de treinta años de la ingeniería de software por fin se vuelve exigible.
Grouped by what they govern. For each: what it does for humans is well known — the column that matters is what it does for the AI reader. (Two notes: the doc-first cascade is GS's own discipline, covered under Mold; hooks and quality gates are enforcement — part of the harness, see Harden — not a design discipline, so they are not listed here.) Agrupadas por lo que gobiernan. Para cada una: lo que hace por los humanos es bien conocido — la columna que importa es lo que hace por el lector de IA. (Dos notas: la cascada doc-first es la disciplina propia de GS, cubierta bajo Molde; los hooks y quality gates son enforcement — parte del harness, ver Harden — no una disciplina de diseño, así que no se listan aquí.)
| DisciplineDisciplina | Mechanical advantage for the AI readerVentaja mecánica para el lector de IA |
|---|---|
| SOLID (Martin) — 5 principles: SRP · OCP · LSP · ISP · DIP SOLID (Martin) — 5 principios: SRP · OCP · LSP · ISP · DIP | The AI reads the contract (the interface), not the implementation. By Single Responsibility, a class is its own complete spec — no call-graph traversal. By Dependency Inversion, there is no hidden coupling, and hallucinations about private state are structurally impossible. El AI lee el contrato (la interfaz), no la implementación. Por Responsabilidad Única, una clase es su propia spec completa — sin recorrer el call graph. Por Inversión de Dependencias, no hay acoplamiento oculto, y las alucinaciones sobre estado privado son estructuralmente imposibles. |
| DisciplineDisciplina | Mechanical advantage for the AI readerVentaja mecánica para el lector de IA |
|---|---|
| Hexagonal / Clean Architecture (Cockburn; Martin) — ports & adapters + the dependency rule (DIP at architectural scale) Hexagonal / Clean Architecture (Cockburn; Martin) — ports & adapters + la regla de dependencias (DIP a escala arquitectónica) | The domain core is isolated from infrastructure behind ports (interfaces); adapters are the glue to the database, UI, and external APIs. The AI reads and changes business logic through the port contract without reading or understanding the adapters — and the same ports let the harness drive the domain in isolation, with no real infrastructure. This is the Dependency Inversion Principle applied at the scale of the system. El núcleo de dominio está aislado de la infraestructura detrás de ports (interfaces); los adapters son el pegamento a la base de datos, la UI y las APIs externas. El AI lee y cambia la lógica de negocio a través del contrato del port sin leer ni entender los adapters — y los mismos ports dejan que el harness ejercite el dominio en aislamiento, sin infraestructura real. Es el Principio de Inversión de Dependencias aplicado a escala de sistema. |
| Convention over Configuration / Screaming Architecture (Rails; Martin) Convention over Configuration / Screaming Architecture (Rails; Martin) |
Predictable structure means the AI's first guess about where code lives is right — controllers/ holds controllers. No discovery traversals; the project layout itself announces its intent.
Estructura predecible significa que la primera búsqueda del AI sobre dónde vive el código acierta — controllers/ tiene controllers. Sin traversals de descubrimiento; el layout del proyecto anuncia su intención.
|
| DisciplineDisciplina | Mechanical advantage for the AI readerVentaja mecánica para el lector de IA |
|---|---|
| Type-Driven Design (Minsky; King, “Parse, don't validate”) Type-Driven Design (Minsky; King, “Parse, don't validate”) |
The type signature is a machine-checked contract — a free harness layer. Illegal states do not compile; every failure mode lives in the type (Result<T, E>), not hidden in exceptions. The AI reads the type; the compiler enforces it.
La firma de tipos es un contrato verificado por el compilador — una capa de harness gratis. Los estados ilegales no compilan; cada modo de falla vive en el tipo (Result<T, E>), no escondido en excepciones. El AI lee el tipo; el compilador lo hace cumplir.
|
| Design by Contract (Meyer) Design by Contract (Meyer) | Preconditions, postconditions, and invariants stated inline. The contract is the executable spec the AI generates against and the harness checks — and it is the lineage of the F-NNN specification format itself. Precondiciones, postcondiciones e invariantes declaradas inline. El contrato es el spec ejecutable contra el que el AI genera y el harness verifica — y es el linaje del propio formato de especificación F-NNN. |
| DisciplineDisciplina | Mechanical advantage for the AI readerVentaja mecánica para el lector de IA |
|---|---|
| DDD — Ubiquitous Language (Evans) DDD — Lenguaje Ubicuo (Evans) | Names in code map to the model's training distribution for the same domain. Higher generation quality, fewer mistranslations between business and code. Los nombres en el código mapean a la distribución de entrenamiento del modelo sobre el mismo dominio. Mayor calidad de generación, menos traducciones erróneas entre negocio y código. |
| CQRS (Young) CQRS (Young) | Reads and writes are separate types. The AI cannot accidentally mutate state in a query path; the intent of each operation is visible in its type. Lecturas y escrituras son tipos separados. El AI no puede mutar estado por accidente en un camino de lectura; la intención de cada operación es visible en su tipo. |
| DisciplineDisciplina | Mechanical advantage for the AI readerVentaja mecánica para el lector de IA |
|---|---|
| TDD (Beck) TDD (Beck) | Each test is a behavioral declaration the AI reads before the implementation. Intent is stated, not inferred from existing code. Cada test es una declaración de comportamiento que el AI lee antes de la implementación. La intención está declarada, no inferida del código existente. |
| BDD (North) BDD (North) | Given/When/Then scenarios are executable acceptance criteria. The AI generates against the scenario, not against a guess. Los escenarios Given/When/Then son criterios de aceptación ejecutables. El AI genera contra el escenario, no contra una suposición. |
| DisciplineDisciplina | Mechanical advantage for the AI readerVentaja mecánica para el lector de IA |
|---|---|
| Clean Code (Martin) — intentional naming, small functions Clean Code (Martin) — naming intencional, funciones pequeñas |
calculateMonthlyCost(userId, period): Result<Money, Error> — domain, operation, inputs, output, and error contract, all in the signature. The AI reads zero implementation to use it correctly.
calcularCostoMensual(userId, period): Result<Money, Error> — dominio, operación, inputs, output y contrato de error, todo en la firma. El AI lee cero implementación para usarla bien.
|
| GoF Design Patterns (Gamma et al.) — named in the spec Patrones de Diseño GoF (Gamma et al.) — nombrados en la spec | The pattern name activates the AI's full trained knowledge of the canonical structure, interface contracts, and invariants. The name IS the specification. El nombre del patrón activa el conocimiento entrenado completo del AI sobre la estructura canónica, contratos de interfaz e invariantes. El nombre ES la especificación. |
| Immutability / Functional Core, Imperative Shell (Bernhardt) Immutability / Functional Core, Imperative Shell (Bernhardt) | No hidden state mutation to track across the call graph. A value object is fully described by its construction; the pure core is trivially testable and side effects are quarantined at the edges. Sin mutación de estado oculta que rastrear por el call graph. Un value object está completamente descrito por su construcción; el núcleo puro es trivialmente testeable y los efectos quedan en los bordes. |
| DisciplineDisciplina | Mechanical advantage for the AI readerVentaja mecánica para el lector de IA |
|---|---|
| Conventional + Atomic Commits Conventional + Atomic Commits |
Two disciplines: Conventional Commits standardizes the message (type(scope): description) so the git log is queryable and cascade triggers fire from parseable types; atomic commits keep each commit to one logical change, so history is a clean, bisectable, revertible sequence of intent.
Dos disciplinas: Conventional Commits estandariza el mensaje (tipo(scope): descripción) para que el git log sea consultable y los cascade triggers se activen desde tipos parseables; los atomic commits mantienen cada commit en un solo cambio lógico, así la historia es una secuencia de intención limpia, bisectable y reversible.
|
| ADRs (Nygard) ADRs (Nygard) | The AI reads the why behind decisions. It cannot "optimize" an intentional tradeoff that looks suboptimal without the context the ADR records. El AI lee el porqué de las decisiones. No puede "optimizar" un tradeoff intencional que parece subóptimo sin el contexto que el ADR registra. |
These disciplines existed for thirty years and were never fully adopted — not because they were wrong, but because humans could not sustain them under pressure. The AI reader that benefits from them is also the executor that enforces them. The friction of adoption disappeared. The benefit doubled. Estas disciplinas existieron durante treinta años y nunca se adoptaron completamente — no porque estuvieran equivocadas, sino porque los humanos no las podían sostener bajo presión. El lector de IA que se beneficia de ellas es también el ejecutor que las hace cumplir. La fricción de adopción desapareció. El beneficio se duplicó.
The most common objection to Generative Specification: it looks token-expensive. You write a specification, cascade documents, and tests — then regenerate code from the spec. Surely that burns more tokens than simply asking the AI to write the code? La objeción más común a la Especificación Generativa: parece cara en tokens. Escribes una especificación, documentos en cascada, y tests — luego regeneras el código desde la spec. ¿Seguramente eso quema más tokens que simplemente pedirle al AI que escriba el código?
The metric is wrong. What matters is not tokens generated — it is tokens per correct, merged line of code. Without a specification, the AI spends tokens on code that gets discarded, on re-explaining context at the start of every cold session, on debugging hallucinations, and on redoing work lost to drift. GS front-loads the spend into a specification written once and read every session, then collapses the waste downstream. The line of code that ships on the first try is far cheaper than the line written three times. La métrica está equivocada. Lo que importa no son los tokens generados — son los tokens por línea de código correcta y mergeada. Sin una especificación, el AI gasta tokens en código que se descarta, en re-explicar el contexto al inicio de cada sesión fría, en depurar alucinaciones, y en rehacer trabajo perdido por la deriva. GS adelanta el gasto a una especificación escrita una vez y leída en cada sesión, luego colapsa el desperdicio aguas abajo. La línea de código que llega bien al primer intento es mucho más barata que la línea escrita tres veces.
There is a deeper reason GS spends fewer tokens, and it was just measured in an independent benchmark. The sentinel, the CNT, and the cascade documents are, in effect, a compact knowledge graph of your codebase — structure authored once. A session without that structure must re-read thousands of tokens of code and re-derive the architecture every time. A session with it navigates directly to what it needs. Hay una razón más profunda por la que GS gasta menos tokens, y se acaba de medir en un benchmark independiente. El sentinel, el CNT y los documentos de cascada son, en efecto, un grafo de conocimiento compacto de tu codebase — estructura autorada una vez. Una sesión sin esa estructura debe re-leer miles de tokens de código y re-derivar la arquitectura cada vez. Una sesión con ella navega directo a lo que necesita.
The Yarmoluk–McCreary CKG benchmark (April 2026) quantified exactly this gap for knowledge retrieval: reading a pre-authored structure cost 11× fewer tokens at 3.8× higher accuracy than chunked-prose retrieval (RAG), and far less than re-deriving structure from text each time (GraphRAG). Their conclusion — "when expert structure is available, the dynamic extraction step is wasted computation" — is the GS thesis in another field. The token cost people fear is not the price of GS; it is the price of working without authored structure, paid again every session. El benchmark CKG de Yarmoluk–McCreary (abril 2026) cuantificó exactamente esta brecha para retrieval de conocimiento: leer una estructura pre-autorada costó 11× menos tokens con 3.8× más precisión que el retrieval de prosa troceada (RAG), y mucho menos que re-derivar la estructura del texto cada vez (GraphRAG). Su conclusión — "cuando la estructura experta está disponible, el paso de extracción dinámica es cómputo desperdiciado" — es la tesis de GS en otro campo. El costo en tokens que la gente teme no es el precio de GS; es el precio de trabajar sin estructura autorada, pagado de nuevo en cada sesión.
The disciplines are enforced by the harness, not by willpower. The sentinel (CONSTITUTION.md) names them in its structural-disciplines manifesto. The hooks reject violations before they land. The CI gate fails the build. Las disciplinas las hace cumplir el harness, no la fuerza de voluntad. El sentinel (CONSTITUTION.md) las nombra en su manifiesto de disciplinas estructurales. Los hooks rechazan violaciones antes de que lleguen. El gate de CI hace fallar el build.