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:
parent
10debabd0f
commit
87be411c39
1 changed files with 45 additions and 0 deletions
|
|
@ -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`).
|
||||||
Loading…
Reference in a new issue