dec-0060

Vista generada de dec-0060: Invariante cross-tier (de r44/Candidate H)

ImplementadoSin versión del tren todavía· generada desde docs/decisions/dec-0060-invariante-cross-tier-r44-candidate-h.md
track/docsdec-0124track/docs:DC10

Vista generada desde docs/decisions/dec-0060-invariante-cross-tier-r44-candidate-h.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 legadar45-cross-tier-pinned-semantics
Ficherodocs/decisions/dec-0060-invariante-cross-tier-r44-candidate-h.md

Enmienda a: r12

Por qué importa (del frontmatter del ADR):

Citado por r44 Candidate H (condición C7), r46, r48; es invariante load-bearing del BackingStore

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-0060-invariante-cross-tier-r44-candidate-h.md, el fichero canónico.

Invariante cross-tier (de r44/Candidate H)

Invariante cross-tier (de r44/Candidate H): eviction NUNCA toca entradas pinned — serve_to_completion + unavailable{evicted} truthful (C7)

Por qué pasa gate-3

  • Hard-to-reverse: Es invariante de r44/Candidate H que estructura la semántica del BackingStore. La política decide QUÉ evictar entre lo evictable; la semántica pin/unpin/evict decide QUÉ es evictable. Cambiarlo rompe C7.
  • Surprising sin contexto: Sin leer r44+r45, un ingeniero podría asumir que eviction puede tocar cualquier entrada no accedida recientemente, incluso si está pinned. La restricción explícita 'NUNCA toca pinned' es NO obvia.
  • Trade-off real: Alternativa: eviction agresiva sin pin = rompe serve_to_completion (un item con pin se puede evictar mid-stream). El trade-off es complejidad de bookkeeping (tracking pinned state) vs corrección semántica.

Procedencia

Split de docs/decisions/r45-r12-eviction-reconciliation-2026-07-12.md (lock r45-cross-tier-pinned-semantics) durante PASO 7 (2026-07-16). Ver el fichero padre para el contexto completo del pack original.