ember-memory-test/episodes/DEPURA_mi-recomendacin-estaba-mal-fundada-y-lo_S20260807.R2_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD.md
Ember 40f67b1eb3 feat(episode): DEPURA_mi-recomendacin-estaba-mal-fundada-y-lo_S20260807.R2_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD
Skill: NONE | Type: troubleshooting
Summary: EPISODIO 2 — MNEMO_PRE_DIGEST: Mi recomendación estaba mal fundada, y lo digo pr
2026-08-11 18:25:36 +00:00

3.3 KiB

episode_id puente_flat session_code acto_dialogico actor_flujo criticidad_aegis skill_dominante fase_proyecto tipo_semantico summary_one_line source_type trust_boundary created_at relectura_tagged forgejo_commit_sha
d9c1f57f-b7d1-47e2-abba-d32c6358ebea DEPURA_mi-recomendacin-estaba-mal-fundada-y-lo_S20260807.R2_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD S20260807.DOCS_MNEMO_FUENTE_VIVA informar multi_actor low NONE operations troubleshooting EPISODIO 2 — MNEMO_PRE_DIGEST: Mi recomendación estaba mal fundada, y lo digo primero claude_code internal 2026-08-11T18:25:26.911405+00:00 false pending

Commit c7ced256. Y la tarea resultó ser otra de la que pediste — para bien.

Mi recomendación estaba mal fundada, y lo digo primero

Te propuse conectar panel_log diciendo que «tiene el clasificador turno a turno». Falso. Sus campos son event, probator_verified, query_hash, session_id, ts. Repetí el informe sin abrir el archivo — el error que llevo dos días cazando en otros.

Los datos del router viven en otros dos registros, y ambos ya se consumen. Así que la pregunta correcta no era «conectemos otro flujo» sino «¿por qué está ciego con lo que ya lee?».

La respuesta: el vigilante no veía nada

3 de los 7 detectores buscaban campos que ninguna fila escribe. Cuando el campo no existe, el criterio devuelve «no es fallo» — así que el único componente cuyo propósito es sumar fallos de todo el sistema reportaba cero.

registro buscaba realidad fallos invisibles
router action_taken (0 filas) agreement 392
esquemas validation_result (0) verdict 80
concilio probator_verdict (1 de 1.327) event 1.031

0 vistos → 1.503 visibles. Y el hook ya alerta en vivo: «routing_verifier: 3 fails» donde antes callaba.

Un cuarto caso que NO toqué

libro_vivo busca VIOLATION y sus 1.841 filas dicen pending_review. La clave existe; el criterio nunca se cumple. No inventé la semántica de un subsistema que no conozco — queda declarado como inerte, que no es lo mismo que ciego.

Lo valioso no son los tres parches

Es el candado: una auto-auditoría que contrasta cada clave declarada contra el registro real, más un test permanente. Porque un detector roto no falla: calla, y su silencio se lee como «todo bien».

★ Insight ───────────────────────────────────── El test pineaba el bug. Afirmaba en su docstring que el campo era action_taken y fabricaba a mano una fila con un campo que la realidad nunca produce. Es el reverso del error de ayer: allí un escenario imposible hacía fallar un test sobre código sano; aquí hacía pasar un test sobre código ciego — la forma más peligrosa, porque da confianza. ─────────────────────────────────────────────────

Control positivo: al revertir la clave, el candado grita con el detalle exacto —busca 'action_taken' (0 de 2273 filas)— y el archivo queda byte a byte.

Hice — el vigilante cross-sistema ve 1.503 fallos que antes no veía, con candado y test permanente. Commit c7ced256.