ember-memory-test/episodes/TRAZA_los-5-falsos-verdes-reales-cerrados-uno_S20260806.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD.md
Ember 87be411c39 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
2026-08-06 17:43:47 +00:00

3.1 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
2b89d827-276f-4487-b33c-439d74912fca TRAZA_los-5-falsos-verdes-reales-cerrados-uno_S20260806.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD S20260806.PIPELINE_FIXES informar multi_actor low NONE operations troubleshooting EPISODIO 1 — MNEMO_PRE_DIGEST: Los 5 falsos verdes reales, cerrados uno por uno claude_code internal 2026-08-06T17:43:41.639529+00:00 false 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).