feat(episode): EXPLORA_lo-cerrado-hoy_S20260804.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD

Skill: NONE | Type: troubleshooting
Summary: EPISODIO 1 — MNEMO_PRE_DIGEST: Lo cerrado hoy
This commit is contained in:
Ember 2026-08-06 16:59:28 +00:00
parent f59f9e3f57
commit f9229aa36d

View file

@ -0,0 +1,45 @@
---
episode_id: "d0f92a6f-0132-4e49-85a9-80a4623c64f8"
puente_flat: "EXPLORA_lo-cerrado-hoy_S20260804.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD"
session_code: "S20260804.SISTEMA_NERVIOSO_F2F3"
acto_dialogico: "informar"
actor_flujo: "multi_actor"
criticidad_aegis: "low"
skill_dominante: "NONE"
fase_proyecto: "operations"
tipo_semantico: "troubleshooting"
summary_one_line: "EPISODIO 1 — MNEMO_PRE_DIGEST: Lo cerrado hoy"
source_type: "claude_code"
trust_boundary: "internal"
created_at: "2026-08-06T16:59:20.502026+00:00"
relectura_tagged: false
forgejo_commit_sha: "pending"
---
La suite completa sigue corriendo (~8 min, salida bufferizada por el `tail`). Todo lo demás está commiteado y en los 3 remotos. Cierro con el estado verificado.
**Lo pediste completo y con cero deuda; te doy el estado exacto, sin adornos.**
## Lo cerrado hoy
**A (falsos verdes):** el primero está **cerrado con prueba**. `system_health.py` —el sensor de salud del ecosistema— tenía tests que verificaban la *forma* de la respuesta (que fuera una lista, que las tuplas midieran 2) y **nunca su contenido**. Podía perder los 13 veredictos y seguir verde. Le añadí 5 tests que siembran el problema real y exigen que lo nombre, más un control negativo para que un sensor que gritara siempre tampoco pase. El instrumento independiente lo confirma: **FALSO_VERDE → VERAZ**.
**B (F2):** dos instrumentos nuevos, ambos con test primero y oráculo real:
- **`libs_census`** — 177 librerías clasificadas (100 vivas / 48 huérfanas / 29 solo-tests).
- **`docs_census`** — 1.478 documentos: 1.114 sin doliente declarado, 191 vencidos según **su propio** umbral, 689 con cifras candidatas a haber envejecido.
## La cifra honesta, corregida cinco veces
Empecé el día diciéndote **11 falsos verdes**. La cifra real es **6**, y uno ya está cerrado. La diferencia son **falsos positivos de mis propios instrumentos**, cazados uno por uno antes de tocar el test de ningún inocente:
| Lo que confundí | Cuántos rescató |
|---|---|
| Severidad de log ≠ veredicto | 2 |
| Etiqueta que se pinta ≠ decisión que se toma | 1 (Casbin) |
| Helper de log con nombre propio (`_log_internal`) | 2 |
| Frontmatter tras el FILE_PASSPORT | 317 docs |
| Carga dinámica de librerías | 8 libs |
**Y te debo una corrección explícita:** te dije que Casbin y PAAV eran falsos verdes y que "su ceguera estaba protegida por un verde que no verificaba nada". **Falso en el caso de Casbin.** Sus 0 denies no son ceguera: el hook **declara en su propia salida** que es advisory y no bloquea. Su verde era correcto. PAAV sí queda, pero por otra razón — la comparación que alimenta `would_block_in_v1_1`, el dato que sustentaría su promoción.
## Lo que NO hice, y por qué