update(episode): TRAZA_bitcora-s20260821pipelinememoriaselfawa_S20260821.R2_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD

Skill: TESSERA | Type: chronicle
Summary: EPISODIO 2 — MEMORIA: 📁 BITÁCORA S20260821.PIPELINE_MEMORIA_SELFAWARENESS.R5
This commit is contained in:
Ember 2026-08-22 03:15:21 +00:00
parent b7fbbca743
commit ce2cf6865d

View file

@ -7,7 +7,7 @@ actor_flujo: "multi_actor"
criticidad_aegis: "low"
skill_dominante: "TESSERA"
fase_proyecto: "operations"
tipo_semantico: "design"
tipo_semantico: "chronicle"
summary_one_line: "EPISODIO 2 — MEMORIA: 📁 BITÁCORA S20260821.PIPELINE_MEMORIA_SELFAWARENESS.R5"
source_type: "claude_code"
trust_boundary: "internal"
@ -16,33 +16,33 @@ relectura_tagged: false
forgejo_commit_sha: "pending"
---
**El antídoto que instalé tiene dos mitades.** La constante `CAMPO_TS` la comparten gate y test, así que un rename futuro rompe el test en vez de cegar la medición en silencio. Y el test nuevo no pregunta a una fixture: le pregunta a **Qdrant** cuántos puntos no tienen ese campo, con el propio filtro `is_empty` del store — otra ruta de código, no la del gate.
**Y lo verifiqué neutralizándolo.** Apunté la constante al campo roto y exigí que el test se pusiera rojo. Lo hizo, diciendo la verdad exacta: *"CAMPO_TS='timestamp' no existe en NINGUN punto (1735/1735 vacios): el gate esta ciego"*. Un test que no cambia de color cuando rompes el hecho que dice medir no está midiendo nada.
`─────────────────────────────────────────────────`
- ✅ **RESUELTA** · B-01 commit triple-remoto (`64d307fc`)
- ✅ **RESUELTA** · A-01 parte 1: gate de procedencia ve y da PASS (`c699b7a7`)
- 🟠 **HIGH** · A-01 partes 2-5: dedup de probes del canario, `dense_recall@1`, universos de facts
- 🟡 **MEDIUM** · A-02..A-11 (9 tareas restantes del Bloque A)
- 🟡 **MEDIUM** · Clave muerta `sk-ember-2ca4` en claro en `INFRA_MANIFEST.yaml` — scrub pendiente
- ⚪ **LOW** · 47 `.bak_*` huérfanos sin dueño ni fecha (deuda ZD-AP7)
### 📁 BITÁCORA S20260821.PIPELINE_MEMORIA_SELFAWARENESS.R5
**Dos hipótesis mías, refutadas por medición.** Sospeché que el canario preguntaba con un modelo de embedding distinto al de escritura — el coseno entre ambos nombres dio **1.000000**, mismo espacio. Y sospeché fallos de embedding inflando el fallo — **cero** líneas de error en el informe. Ambas descartadas: el 20% era real.
—
**Hice:** el commit de los 164 (quedaron 131 tras filtrar el ruido) en los tres remotos, y la primera reparación real del Bloque A. El gate que custodiaba una de las tres condiciones de tu freeze llevaba semanas ciego por leer un campo que no existe; ahora mide, y dice PASS con 39 de 39 episodios sellados.
- ✅ **RESUELTA** · A-01 partes 2-5 (canario + retrieval_gate + oracle) · `28d51629`, `3165c143`
- ✅ **RESUELTA** · Conflicto C-02: los dos instrumentos por fin coinciden
- ✅ **RESUELTA** · CR-6 cerrado para el canario (copia del repo era pre-fase4)
- 🟠 **HIGH** · Retrieval real de producción: **21,6% @1** — peor de lo que la cifra rectora sugería
- 🟠 **HIGH** · `freeze_recomendado` pasó a `true`: el E2E de hoy falló con un episodio real
- 🟡 **MEDIUM** · A-01 parte 6 (universos de `gate_facts`) + A-02..A-11
- 🟡 **MEDIUM** · Preguntas HyDE repetidas en el corpus (problema de corpus, ya declarado, no oculto)
**Falta:** las otras 4 piezas de A-01 y las 9 tareas restantes del Bloque A. Todas legales bajo tu moratoria, ninguna necesita permiso nuevo.
### 📁 BITÁCORA S20260821.PIPELINE_MEMORIA_SELFAWARENESS.R6
**Mi consejo:** sigo con el mismo patrón — reparar, instalar la vacuna, neutralizarla para probar que discrimina, desplegar, commitear. Es lento por tarea pero es lo único que evita que dentro de un mes tengamos otro instrumento verde que no mide nada.
—
**Hice:** las cuatro piezas que pediste. Los dos instrumentos que medían el criterio de salida del freeze ahora dicen la verdad sobre sí mismos, y uno de ellos te estaba dando una cifra al doble de la real.
**Falta:** la parte 6 de A-01 (universos del gate de hechos) y las nueve tareas A-02..A-11.
**Mi consejo:** hay un dato nuevo que merece tu atención antes de seguir. El retrieval real de producción es **21,6% en primer puesto**, no 41,3%. Eso no cambia el plan —el freeze sigue igual de justificado— pero sí cambia la magnitud del problema: es peor de lo que el tablero mostraba. Lo que sigue siendo cierto es que ninguna palanca de mejora es legal bajo la moratoria; primero terminamos de arreglar los ojos.
**Para avanzar, elige:**
- 🟢 **A** *(recomendado)* — sigo con A-01 partes 2-5 (los otros dos gates del criterio de salida) en este mismo turno.
- 🟡 **B** — salto a A-02, que es el que reconecta el lazo (gates vencidos → tu cola, tendencia del canario).
- ⚪ **C** — paras aquí; revisas lo hecho y decides el resto con calma.
- 🟢 **A** *(recomendado)* — sigo con A-02, que reconecta el lazo (gates vencidos → tu cola, tendencia del canario, saturación visible).
- 🟡 **B** — cierro primero A-01 parte 6 para dar por terminada esa tarea completa.
- ⚪ **C** — paras aquí; el avance está registrado en la DECISIÓN y retomamos cuando digas.
campo_inexistente_timestamp (1.0) | fix_CAMPO_TS--desbloquea-->condicion_2_freeze (1.0) | test_contrato--verifica_contra-->Qdrant_is_empty (1.0) | neutralizacion--demuestra-->el_test_discrimina (1.0) | B-01--precondicion_de-->rollback_bloque_A (1.0)
epistemic_summary: todo verificado con herramientas en esta sesion (pytest 11/11, neutralizacion en rojo, md5 local==remoto, gate corrido en el servidor con salida literal); la clave sk-ember-2ca4 se clasifica como MUERTA por declaracion de estado_vivo.json, no por prueba criptografica propia — soft_fact en ese punto concreto.
techo_80_por_ciento (1.0) | dedup_por_pregunta--elimina-->imposibilidad_estructural (1.0) | dense_recall_0.216--concuerda_con-->canario_25_por_ciento (0.95) | oracle_hyde--declaraba_medir-->produccion_inexistente (1.0) | retrieval_gate--dejaba_caer-->claves_nuevas_del_productor (1.0)
epistemic_summary: todo medido con herramientas en esta sesion (coseno 1.0, 12 probes unicos por SQL, diff byte-identico del bloque fase4, gate re-corrido en produccion con salida literal); dos hipotesis propias fueron REFUTADAS por medicion y se declaran como tales; el caveat sobre fusion-vs-dense se marca explicitamente como no-decisorio por leakage.
-->