Vista generada de dec-0046: El planner modela direct-play con tres estados ortogonales — DIRECT_ELIGIBLE (codec/container decodificable), DIRECT_SUSTAINABLE (link medido sostiene el envelope, informativo no veto), DIRECT_POLICY_SELECTED (policy de sesión decide) — junto con la 'regla canónica' que l
docs/decisions/dec-0046-planner-modela-direct-play-tres-estados.mdVista generada desde
docs/decisions/dec-0046-planner-modela-direct-play-tres-estados.md. No se edita a mano:bun run docs:genla regenera ybun run docs:checkfalla si difiere. El estado aquí es el del model: si discrepa con otra página, manda el model.
| Campo | Valor |
|---|---|
| Estado | LOCKED (migrado de un rNN por gate-3: el fichero no declara estado) |
| Referencia legada | L1-three-orthogonal-states |
| Fichero | docs/decisions/dec-0046-planner-modela-direct-play-tres-estados.md |
Enmienda a: r32-bitrate-not-a-gate-2026-06-24
Por qué importa (del frontmatter del ADR):
Embebido literal en .claude/rules/codec-agnostic-architecture.md:40-42 (regla de gobierno del boundary packages/playback-policy+capability-model+domain), roadmap.spec.yml:925 (título del gate r32 cita explícitamente el split 3-axes), ROADMAP.md:286-288, r42-cathedral-adjacent-spike:115 ('NO modificar semánticas r31/r32 ni DIRECT_ELIGIBLE/DIRECT_SUSTAINABLE/DIRECT_POLICY_SELECTED' — dos veces en ese handoff), y materializado en código real: packages/api-contracts/src/playback-plan.ts (reason kinds 'link-ample'/'link-tight'/'bitrate-unknown', interface IPlaybackLink) + packages/playback-policy/src/planner.ts (param link) según docs/specs/r32-playback-planner-impl-spec.md, más packages/mocks/src/sintel-federation.ts que cita DIRECT_SUSTAINABLE en un comentario de fixture ya en uso por F-UI.
Nodos del roadmap que lo citan en refs: ninguno.
Páginas de la documentación que lo citan: ninguna todavía.
Leído de docs/decisions/dec-0046-planner-modela-direct-play-tres-estados.md, el fichero canónico.
El planner modela direct-play con tres estados ortogonales — DIRECT_ELIGIBLE (codec/container decodificable), DIRECT_SUSTAINABLE (link medido sostiene el envelope, informativo no veto), DIRECT_POLICY_SELECTED (policy de sesión decide) — junto con la 'regla canónica' que la resume (líneas 32-35, fusiono aquí L3 porque es una reformulación del mismo modelo, no un lock independiente).
Split de docs/decisions/r32-addendum-eligibility-sustainability-policy-2026-06-24.md (lock L1-three-orthogonal-states) durante PASO 7 (2026-07-16). Ver el fichero padre para el contexto completo del pack original.