feat(episode): TRAZA_el-fix-en-tabla_S20260801.R3_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD

Skill: NONE | Type: troubleshooting
Summary: EPISODIO 3 — MNEMO_PRE_DIGEST: El fix, en tabla
This commit is contained in:
Ember 2026-08-01 07:48:36 +00:00
parent fb65eb620b
commit 1aac8bfd33

View file

@ -0,0 +1,59 @@
---
episode_id: "3e836792-840d-47b4-b034-8c0c57320eb2"
puente_flat: "TRAZA_el-fix-en-tabla_S20260801.R3_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD"
session_code: "S20260801.ZERO_DEUDA_CIERRE_TOTAL"
acto_dialogico: "informar"
actor_flujo: "multi_actor"
criticidad_aegis: "low"
skill_dominante: "NONE"
fase_proyecto: "operations"
tipo_semantico: "troubleshooting"
summary_one_line: "EPISODIO 3 — MNEMO_PRE_DIGEST: El fix, en tabla"
source_type: "claude_code"
trust_boundary: "internal"
created_at: "2026-08-01T07:48:32.114900+00:00"
relectura_tagged: false
forgejo_commit_sha: "pending"
---
Todo verificado. Cierro con el resumen.
## El fix, en tabla
| | antes | después |
|---|---|---|
| Conteo del sensor | 14 vencidos / 4 vigentes | **12 / 2** |
| Oráculo (resumen del registro) | 12 / 2 | 12 / 2 |
| ¿Coinciden? | **NO** | **SÍ** |
| Score gobernanza | 22.2 | **14.3** |
| Rúbrica global | 78.4 | **75.1** |
| Tests | 5 | **8 verdes** |
**La nota bajó, y eso es el éxito, no el fracaso.** El 78.4 estaba inflado. Un instrumento veraz que empeora la puntuación está haciendo exactamente su trabajo.
## Lo que el bug tenía de peligroso
No era un error de magnitud fija. Ayer **deprimía** la nota (55.6 contra 57.1 real); hoy la **inflaba** (22.2 contra 14.3). Porque las 2 menciones espurias pesan 100% sobre una base de 2 vigentes y solo 17% sobre 12 vencidos. **Mentía más fuerte justo cuando la gobernanza se degradaba** — que es precisamente cuando el sensor hace falta. Un sesgo constante lo corriges de cabeza; este no.
## Cómo verifiqué que el test sirve
No basta con que esté verde. Lo **neutralicé** y comprobé que enrojece:
| escenario | resultado | veredicto |
|---|---|---|
| Sensor sano | (12, 2) = oráculo | verde |
| Discriminador anulado | (14, 4) ≠ oráculo | **rojo → muerde** |
| Bug original reintroducido | (14, 4) ≠ oráculo | **rojo → muerde** |
| Prosa sin filas (control negativo) | (0, 0) | correcto |
Y el test **no cablea ninguna cifra**. Menos mal: el registro pasó de 6 a 12 vencidos **entre ayer y hoy**. Haber escrito `assert vencidos == 6` habría roto el test el mismo día de crearlo. El invariante es la *coincidencia* sensor↔oráculo, no un número.
## Sobre los 3 tests rojos que verás
Son **preexistentes**. Lo verifiqué retirando mi fix con `git stash`: fallan igual sin él. Regresión limpia — 373 passed.
Uno merece atención: `test_verify_blindada_enforcement` falla con *"esperaba 30 BLINDADAS, dio 31"*. Es **otro test-vs-oráculo cazando un drift real** — el archivo de doctrina se titula "26 reglas" y contiene 31. El sensor correcto lleva tiempo gritando sin que nadie lo escuche. Es la clase *veredicto sin consumidor* en vivo, dentro del ecosistema que quiere ser un guardrail perfecto.
**Hice:** el fix con TDD real (test en rojo primero, luego código), 3 tests-vs-oráculo como exige la BLINDADA-30, prueba de mutación demostrando que muerden, regresión verificada, y propagué las cifras corregidas al briefing de Fable. 2 commits, push verificado idéntico en los 3 remotos (`a2334a3d`).