feat(episode): TRAZA_chat-tema-raz-camino-c-fix-embershared_S20260610.R29_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD
Skill: TESSERA | Type: reflection Summary: EPISODIO 29 — Neo4j: CHAT-TEMA-RAÍZ: Camino C — fix `ember_shared` + criterios
This commit is contained in:
parent
0053a2a429
commit
165e621d13
1 changed files with 55 additions and 0 deletions
|
|
@ -0,0 +1,55 @@
|
||||||
|
---
|
||||||
|
episode_id: "f7e5b2d3-8931-4ff4-b5d7-9d70628774dd"
|
||||||
|
puente_flat: "TRAZA_chat-tema-raz-camino-c-fix-embershared_S20260610.R29_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD"
|
||||||
|
session_code: "S20260610.SELFAWARENESS_MISION_CRITICA"
|
||||||
|
acto_dialogico: "informar"
|
||||||
|
actor_flujo: "multi_actor"
|
||||||
|
criticidad_aegis: "low"
|
||||||
|
skill_dominante: "TESSERA"
|
||||||
|
fase_proyecto: "operations"
|
||||||
|
tipo_semantico: "reflection"
|
||||||
|
summary_one_line: "EPISODIO 29 — Neo4j: CHAT-TEMA-RAÍZ: Camino C — fix `ember_shared` + criterios"
|
||||||
|
source_type: "claude_code"
|
||||||
|
trust_boundary: "internal"
|
||||||
|
created_at: "2026-06-10T23:57:21.758463+00:00"
|
||||||
|
relectura_tagged: false
|
||||||
|
forgejo_commit_sha: "pending"
|
||||||
|
---
|
||||||
|
|
||||||
|
**Hallazgo crítico confirmado** `[hard_fact — curl directo a Qdrant este turno]`. Esto cambia el diagnóstico y es exactamente lo que el "medir antes de ampliar" debía cazar.
|
||||||
|
|
||||||
|
—
|
||||||
|
|
||||||
|
## CHAT-TEMA-RAÍZ: Camino C — fix `ember_shared` + criterios
|
||||||
|
### R1-SUB-TEMA: Bug del vector ARREGLADO + tercer bug descubierto + decisión de criterios
|
||||||
|
|
||||||
|
—
|
||||||
|
|
||||||
|
### `[R1.seccion1.I1]` — Lo hecho y verificado (parte 1 de Camino C ✅)
|
||||||
|
|
||||||
|
| Acción | Estado | Evidencia |
|
||||||
|
|--------|--------|-----------|
|
||||||
|
| **Fix A** vector carry-through (`shared_promoter.py` build_promoted_payload, v1.1) | ✅ aplicado | Edit confirmado |
|
||||||
|
| **Fix B** fail-loud sin vector (`shared_promoter_runtime.py` store_fn) | ✅ aplicado | Edit confirmado |
|
||||||
|
| **2 property-tests Capa A** (vector preservado / ausente) | ✅ escritos durante | Edit confirmado |
|
||||||
|
| **Suite completa** | ✅ **7/7 PASSED** | 🧪 pytest este turno |
|
||||||
|
|
||||||
|
El bug del **vector-cero (B-NEW01) — el de daño irreversible — está cerrado y verificado.**
|
||||||
|
|
||||||
|
### `[R1.seccion2.I2]` — Tercer bug descubierto al medir (B-NEW02, criteria-field-mismatch)
|
||||||
|
|
||||||
|
Inspeccioné los payloads reales de `ember_experience`. Las claves son:
|
||||||
|
`content_text, summary_one_line, aroma_j, aroma_e, actor_flujo, has_decision, importance_score, mode_classifier, session_code, criticidad_aegis…` `[hard_fact]`
|
||||||
|
|
||||||
|
**Pero el promotor lee campos que NO existen** en el corpus:
|
||||||
|
- lee `payload["title"]` → **None** (no existe)
|
||||||
|
- lee `payload["content_preview"]` y `payload["content"]` → **None** (el texto real está en **`content_text`**)
|
||||||
|
- lee `payload["turn_count"]` y `payload["participants"]` → **None** (no existen)
|
||||||
|
|
||||||
|
**Consecuencia:** aun con el vector arreglado + el cron instalado, el promotor promovería **CERO** episodios — porque `match_trigger_keywords` recibe texto vacío (always None) y `detect_coauthorship` recibe turn_count=0/participants=[] (always False). **Por eso `ember_shared` está realmente en 0.** El vector-cero era el bug que *corrompería* si promoviera; este es el que explica que *no promueva nada*.
|
||||||
|
|
||||||
|
### `[R1.seccion3.Q1]` — Decisión de criterios (paso 3) — con su prólogo
|
||||||
|
|
||||||
|
Aquí me detengo y te lo presento, John, porque redefinir los criterios es decidir **qué cuenta como memoria relacional John↔Ember** — y eso es una pregunta de valores, no de código.
|
||||||
|
|
||||||
|
**Reframe.** No es "arreglar un mapeo de campos". Es **definir qué merece entrar a `ember_shared`** — el store de "lo nuestro". El mapeo de campos es trivial (cambiar `content_preview`→`content_text`); lo no-trivial es el *criterio de selección*.
|
||||||
Loading…
Reference in a new issue