dec-0096

Vista generada de dec-0096: Transport drafts (MSF/CMSF/LOC) NO leak to canonical domain contracts (@styx/api-contracts), per r20 §2.3 + r52 Eden Treaty App-type runtime-first. Transport drafts remain in harvest lane F-REFERENCE-HARVEST.R3 until consumer real identified.

ImplementadoSin versión del tren todavía· generada desde docs/decisions/dec-0096-transport-drafts-msf-cmsf-loc.md
track/docsdec-0124track/docs:DC10

Vista generada desde docs/decisions/dec-0096-transport-drafts-msf-cmsf-loc.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 legadaD5
Ficherodocs/decisions/dec-0096-transport-drafts-msf-cmsf-loc.md

Por qué importa (del frontmatter del ADR):

Cross-references r20 §2.3 (contract-first) and r52 (Eden Treaty App-type runtime-first) - both load-bearing per CLAUDE.md invariantes globales and styx.model.yml. r52 is referenced in CLAUDE.md and governs @styx/clients consumption pattern. Cited in styx.model.yml extends list via r61.

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-0096-transport-drafts-msf-cmsf-loc.md, el fichero canónico.

Transport drafts (MSF/CMSF/LOC) NO leak to canonical domain contracts (@styx/api-contracts), per r20 §2.3 + r52 Eden Treaty App-type runtime-first. Transport drafts remain in harvest lane F-REFERENCE-HARVEST.R3 until consumer real identified.

Transport drafts (MSF/CMSF/LOC) NO leak to canonical domain contracts (@styx/api-contracts), per r20 §2.3 + r52 Eden Treaty App-type runtime-first. Transport drafts remain in harvest lane F-REFERENCE-HARVEST.R3 until consumer real identified.

Por qué pasa gate-3

  • Hard-to-reverse: Boundary decision separating harvest lane from canonical domain. Once transport draft schemas leak into @styx/api-contracts (Arktype schemas per r20 §2.3 + r52), reversing requires contract breaking change or dual-track maintenance. Locks canonical domain purity.
  • Surprising sin contexto: Without ADR context, engineers would not understand why MSF/CMSF/LOC (mentioned in Doc 06 as 'encaje candidato en MOQT') are forbidden from api-contracts. 'Harvest lane vs canonical domain' boundary is architectural choice not inferable from code. r20 §2.3 + r52 interpretation B (App-type runtime-first) required context - this is policy decision, not technical constraint.
  • Trade-off real: Alternatives explicitly considered: (1) Pre-lock transport drafts in api-contracts - REJECTED via 'Lock explícito como ADR NO se pre-lockea (harvest → ADR si consumer real identificado)'; (2) App-type runtime-first via r52 interpretation B (semantic contract Arktype, App type runtime-derived) - CHOSEN over contract-first static replica. Cost of harvest-only approach = delayed integration until consumer real; benefit = preserves canonical domain purity per r20 §2.3. Trade-off is: exploration flexibility vs domain boundary hygiene.

Procedencia

Split de docs/decisions/r61-isolation-lifecycle-2026-07-15.md (lock D5) durante PASO 7 (2026-07-16). Ver el fichero padre para el contexto completo del pack original.