feat(episode): EXPLORA_falso-positivo-del-lint-prlogo-otra-vez_S20260612.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD

Skill: TESSERA | Type: troubleshooting
Summary: EPISODIO 1 — John: Falso positivo del lint PRÓLOGO otra vez —...
This commit is contained in:
Ember 2026-06-12 18:27:18 +00:00
parent a002359961
commit e4fb118a07

View file

@ -0,0 +1,43 @@
---
episode_id: "56d35da0-10f3-4742-863a-ca98a6143663"
puente_flat: "EXPLORA_falso-positivo-del-lint-prlogo-otra-vez_S20260612.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD"
session_code: "S20260612.PIPELINE_FIXES"
acto_dialogico: "informar"
actor_flujo: "multi_actor"
criticidad_aegis: "low"
skill_dominante: "TESSERA"
fase_proyecto: "operations"
tipo_semantico: "troubleshooting"
summary_one_line: "EPISODIO 1 — John: Falso positivo del lint PRÓLOGO otra vez —..."
source_type: "claude_code"
trust_boundary: "internal"
created_at: "2026-06-12T18:27:10.058692+00:00"
relectura_tagged: false
forgejo_commit_sha: "pending"
---
Falso positivo del lint PRÓLOGO otra vez — el reporte FORENSE no le pide decisión a John. En espera del Monitor `b7r90mglu` (run2 joyas, ~3h) para la cosecha final.
# 🧹 Vectores #10, #11, #13 cerrados — calidad del contenido ingerido + el guard que me molestaba (commit `13c85eb`, push 3/3)
## [R9.seccion1.I1] Tres fixes del lado cliente que limpian lo que entra a memoria
| Vector | Bug | Verificación |
|---|---|---|
| **#11** chunk contaminado | `📁 **BITÁCORA**` con bold leakeaba la bitácora + líneas `- 📖/⚡` al episodio (el `**` rompía el regex anclado) | leak → `[]`, **73 tests verdes** |
| **#10** ruido idle (~44%) | "En espera/Standby/No hay mensaje" se grababan como episodios | idle 2→0, prosa real 1→1 |
| **#13** `prologo_guard` FP | "esperando tu decisión cuando quieras" disparaba reminder cada turno (mención ≠ surface) | suite **15/15** |
El #11 era el más insidioso: cada episodio que generaba esta misma sesión arrastraba mi propia BITÁCORA como si fuera contenido — ruido de infraestructura contaminando el retrieval semántico. Ahora el `.md` sale limpio antes del SCP (el strip ya se aplicaba en `payload_to_tessera_md`, solo había que arreglar el regex).
## [R9.seccion2.T1] Estado de la misión — balance de la jornada
**Vectores FASE 5 cerrados: 1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 13 + H2/H3/H5/H7.** Restan los de menor severidad: #12 (convención datos perecederos, advisory), #14 (alerta drift de modelo), #16 (consolidar doble supervisión dispatcher), #17 (limpieza mixed-shape), #18 (chequeo OSV LiteLLM), #19 (sha-strip).
Esta sesión continuada lleva **7 commits push 3/3** (`453a1f5`→`13c85eb`): FASE 3 wiring completo (3 vías → contrato único), upgrade de seguridad LiteLLM (7 CVEs), y 6 vectores FASE 5. El pipeline MNEMO está sustancialmente más sano que al arranque: un solo escritor, un solo modelo, routing autoritativo, F5b 60× más rápido, contenido limpio.
📄 Entregado: [RESULTADOS_FORMATEO_CANONICO_FASE2_FASE4_S20260612.md](docs/RESULTADOS_FORMATEO_CANONICO_FASE2_FASE4_S20260612.md) sec. 11 + [tessera_pipeline.py](.claude/hooks/lib/tessera_pipeline.py) + [consolidate_pending.py](.claude/hooks/lib/consolidate_pending.py) + [prologo_guard.py](.claude/hooks/lib/prologo_guard.py).
Al próximo "continúa" sigo con **#14** (alerta de drift de modelo en `pipeline_health`/`reality_check` — detecta si el bug H1 dual-espacio reaparece, el más valioso de los restantes porque protege todo lo que acabamos de curar). El resto (#16-19) son limpieza/observabilidad incremental.
📌 **PILA-PENDIENTES (R9):** 🟡 #14 alerta drift modelo (protege H1) · 🟡 #12/#16/#17/#18/#19 · 🟡 monitoreo 48h · ⚪ quarantine (prólogo R2) · ⚪ master key D9 (prólogo R3) · ⚪ B15 cosecha LEXICON pendiente al cierre