dec-0093

Vista generada de dec-0093: Placement Planner

ImplementadoSin versión del tren todavía· generada desde docs/decisions/dec-0093-placement-planner.md
track/docsdec-0124track/docs:DC10

Vista generada desde docs/decisions/dec-0093-placement-planner.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 legadar60-EXTRA-placement-planner-library
Ficherodocs/decisions/dec-0093-placement-planner.md

Enmienda a: r17, r27, r40, r45, r52, r54, r59

Por qué importa (del frontmatter del ADR):

ROADMAP.md línea 203 ('F-NODE-FOUNDATION ext. cont. 41... Placement Planner = LIBRARY... no microservicio'); r61 §AC-D6 ('Placement Planner = LIBRARY en packages/placement/... find apps/ -name 'placement' = 0 hits'); header del propio r60 ('Bloquea: F-NODE-FOUNDATION.M1+ placement trigger refinado'); docs/progress-log.md líneas 6694/6722.

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-0093-placement-planner.md, el fichero canónico.

Placement Planner

Placement Planner = LIBRARY (no microservicio), consumida por F-NODE-FOUNDATION + F-SWARM-CORE; trigger = M1 done + ≥1 nodo real F-NODE-ACQUISITION (r28 §3 anti-speculative).

Por qué pasa gate-3

NI classify NI verify evaluaron esto como lock — está huérfano en el ADR: solo aparece en 'Conflicts resolved' (línea 195, citado por error como parte de 'D1') y en 'Alternatives considered' (línea 207), pero el cuerpo real de D1 (líneas 37-56) es únicamente el alias table de mesh roles, sin mencionar Placement Planner. Es una decisión real y distinta: dado que r17 es 'microservicios split-duro desde día 1 (…) sin modo monolito' (invariante global del repo), decidir que Placement Planner NO es microservicio es un carve-out genuinamente surprising sin contexto; la alternativa rechazada (microservicio) tiene coste documentado (viola r17 + duplica role machinery F-NODE-FOUNDATION); y es load-bearing hoy con evidencia más concreta (grep verificable en r61 AC-D6) que varios de los D1-D8 'oficiales'.

Procedencia

Split de docs/decisions/r60-boundary-authorities-2026-07-15.md (lock r60-EXTRA-placement-planner-library) durante PASO 7 (2026-07-16). Ver el fichero padre para el contexto completo del pack original.