Repository navigation
v0.4.26 — okf board, y el detector de obsolescencia con una sola vara
okf board (PR #32) y el detector de obsolescencia con una sola vara.
Added
okf board [--out] [--iniciativa X] [--no-tasks]: el vault como JSON de tablero en una sola pasada —columnas(los estados de cada capa segúntypes.states),tarjetas(un concepto tipado por tarjeta, fuera de la capa de registro, con capa, status,iniciativa, casillas hechas/total, edad y nivel destale),tareas(casillas abiertas con antigüedad, reutilizasearch.find_todos) ysalud(conteo por capa y estado).--iniciativafiltra por el campo; sin esquema de estados sigue funcionando con una capasin-esquemay los status observados.- PR #32, Medardo Rafael Hernandez Franco (7 tests).
Fixed
dashboard_snapshotno le pasabaconfigacollect_stale: el detector caía en los literales legacy (señal 3 =propuesta, señal 6 = Decision) mientrasstaleyboardleían el esquema del vault. Medido enOKF-Vaultcon el esquema activo: 72 de 700 conceptos divergían — el panel del DashboardView daba ATTENTION donde el CLI daba STALE—. Misma clase que el #21, el #29 y el #30: dos consumidores de la misma primitiva midiendo distinto.collect_stale(vault, config=cfg)ignoraba la lista de exentos del vault (types.exempt_from_no_backlinks) y usaba la embebida en silencio: el resultado dependía de cómo se llamaba a la función y no de la config. Ahora, conconfig, manda la lista del vault; los llamadores que la pasan explícita no cambian.
Medido (2026-10-16, sobre OKF-Vault con los dos strict activos)
board: 565 tarjetas, 271 tareas, cuatro capas (conocimiento 4 estados, compromiso 4, trabajo 5, infra 3).- El desajuste
salud.por_estadovscolumnasno puede ocurrir contypes.states.strict: true: toda tarjeta tiene un estado declarado por su capa (0 casos, 0 tarjetas sin status). staley el panel: 0 divergencias entre 700 conceptos (eran 72). STALE 6, ATTENTION 291.
Tests
- 451 (443 en v0.4.25): +7 del board, +1 de paridad panel/CLI.