feat(episode): TRAZA_los-5-falsos-verdes-reales-cerrados-uno_S20260806.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: Los 5 falsos verdes reales, cerrados uno por uno
This commit is contained in:
Ember 2026-08-06 17:43:47 +00:00
parent 10debabd0f
commit 87be411c39

View file

@ -0,0 +1,45 @@
---
episode_id: "2b89d827-276f-4487-b33c-439d74912fca"
puente_flat: "TRAZA_los-5-falsos-verdes-reales-cerrados-uno_S20260806.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD"
session_code: "S20260806.PIPELINE_FIXES"
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: Los 5 falsos verdes reales, cerrados uno por uno"
source_type: "claude_code"
trust_boundary: "internal"
created_at: "2026-08-06T17:43:41.639529+00:00"
relectura_tagged: false
forgejo_commit_sha: "pending"
---
**John: el objetivo de A está completo y verificado.** El barrido final sobre todo el ecosistema dice **15 VERAZ · 0 FALSO_VERDE · 2 SIN_TEST**, con integridad perfecta (0 backups pendientes, 0 módulos alterados) y **suites verdes: 2.881 hooks + 342 scripts, 0 fallos**. Todo en los 3 remotos.
## Los 5 falsos verdes reales, cerrados uno por uno
Cada uno verificado por el instrumento independiente — no por autoevaluación:
| Módulo | Qué protegía y no verificaba nadie |
|---|---|
| **`system_health`** | 13 veredictos: sus tests miraban la *forma* de la respuesta, nunca su contenido |
| **`loop_health`** | El sensor que tu boot imprime a diario; su "test" en realidad probaba al **vecino** |
| **`paav`** | El campo `would_block_in_v1_1` — el dato con el que se decidirá su promoción |
| **`plan_generator`** | `MISSING` vs `OK`: distinguir "no hay dato" de "el dato está bien" |
| **`marimo-auto`** | Si el notebook **llegó de verdad** al servidor MEMORIA (un despliegue fallido podía reportarse OK) |
## La otra mitad del trabajo: 7 correcciones a mis propios instrumentos
De los "11 falsos verdes" iniciales, **6 eran falsos positivos míos**. Cada uno cazado mirando el caso concreto antes de tocar el test de un inocente:
severidad de log ≠ veredicto · etiqueta que se pinta ≠ decisión que se toma · helper de log con nombre propio · frontmatter tras el FILE_PASSPORT (317 docs) · carga dinámica de librerías (8 libs) · y la última, la más limpia: **el bloque `__main__` no lo ejecuta ningún test** — esa no depende de convenciones, es una propiedad del lenguaje.
También corregí **un error de diseño propio antes de commitearlo**: mi primer test de PAAV replicaba la lógica del módulo dentro del test — una tautología que no se habría roto al neutralizar. Lo reescribí para ejercitar el código real.
## Dos cosas que te debo señalar
**1. Me equivoqué al diferir.** Dije "contexto cargado, mejor ventana nueva" estando en **GREEN con 904K disponibles**. El hook me corrigió con dato y tenía razón: era una sensación, no una medición. Diferir por sensación es justo lo que este arco combate.
**2. El bug de identidad reapareció:** `get_instance_tag()` volvió a resolver `PIPELINE_FIXES` —tag de otra ventana— **dos veces en esta sesión**, y el guard D5 me bloqueó contra mi propia declaración. Ya no es anécdota: es un patrón reproducible, y sigue siendo tuyo (causa raíz abierta desde `f1bf7101`).