dec-0074

Vista generada de dec-0074: ABI NO se declara estable hasta (1) consumer WASM real en F-WEB-PLAYER-ENGINE, (2) consumer nativo real en F-APPLIANCE-PI3, (3) fixtures cross-target idénticos, (4) evolución compatible documentada o política de breaking-changes; cierre de fase promueve 'ABI v1 candidate'

ImplementadoSin versión del tren todavía· generada desde docs/decisions/dec-0074-abi-declara-estable-hasta-1.md
track/docsdec-0124track/docs:DC10

Vista generada desde docs/decisions/dec-0074-abi-declara-estable-hasta-1.md. No se edita a mano: bun run docs:gen la regenera y bun run docs:check falla si difiere. El estado aquí es el del model: si discrepa con otra página, manda el model.

CampoValor
EstadoLOCKED (migrado de un rNN por gate-3: el fichero no declara estado)
Referencia legadar56-D4.3
Ficherodocs/decisions/dec-0074-abi-declara-estable-hasta-1.md

Por qué importa (del frontmatter del ADR):

roadmap.spec.yml: F-CLIENT-PLATFORM-FOUNDATION.C3 depende de F-WEB-PLAYER-ENGINE.W2 y C4 depende de F-APPLIANCE-PI3.P3 — exactamente los dos gates de consumer real que D4.3 exige, codificados como dependsOn reales del spec.

Nodos del roadmap que lo citan en refs: ninguno.

Páginas de la documentación que lo citan: ninguna todavía.

Texto del ADR

Leído de docs/decisions/dec-0074-abi-declara-estable-hasta-1.md, el fichero canónico.

ABI NO se declara estable hasta (1) consumer WASM real en F-WEB-PLAYER-ENGINE, (2) consumer nativo real en F-APPLIANCE-PI3, (3) fixtures cross-target idénticos, (4) evolución compatible documentada o política de breaking-changes; cierre de fase promueve 'ABI v1 candidate', no API pública eterna.

ABI NO se declara estable hasta (1) consumer WASM real en F-WEB-PLAYER-ENGINE, (2) consumer nativo real en F-APPLIANCE-PI3, (3) fixtures cross-target idénticos, (4) evolución compatible documentada o política de breaking-changes; cierre de fase promueve 'ABI v1 candidate', no API pública eterna.

Por qué pasa gate-3

  • Hard-to-reverse: Revertir el requerimiento de 2 consumers reales sería costoso estructuralmente y cambiaría el gate de F-CLIENT-PLATFORM-FOUNDATION
  • Surprising sin contexto: No es obvio que 'v0 candidate' NO significa 'ABI estable' - el ADR aclara que cierre de fase promueve a v1 candidate, no API pública eterna
  • Trade-off real: Se rechazó declarar ABI estable prematuramente (alternativa mencionada en R-D4.3) en favor de v0 candidate con gates específicos

Procedencia

Split de docs/decisions/r56-portable-client-core-abi-2026-07-15.md (lock r56-D4.3) durante PASO 7 (2026-07-16). Ver el fichero padre para el contexto completo del pack original.