Skill: NONE | Type: troubleshooting Summary: EPISODIO 2 — MNEMO_PRE_DIGEST: Mi recomendación estaba mal fundada, y lo digo pr
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.