feat(episode): TRAZA_tu-recuerdo-era-correcto-y-ahora-est-me_S20260802.R6_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD

Skill: NONE | Type: design
Summary: EPISODIO 6 — ember_experience: Tu recuerdo era correcto — y ahora está medido
This commit is contained in:
Ember 2026-08-03 02:41:00 +00:00
parent a216960844
commit 07cc1c6aa2

View file

@ -0,0 +1,49 @@
---
episode_id: "fb6e6a00-aeb7-4706-8fc9-59563c03cca0"
puente_flat: "TRAZA_tu-recuerdo-era-correcto-y-ahora-est-me_S20260802.R6_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD"
session_code: "S20260802.SELFAWARE_FASE2_FRESCURA"
acto_dialogico: "informar"
actor_flujo: "multi_actor"
criticidad_aegis: "low"
skill_dominante: "NONE"
fase_proyecto: "operations"
tipo_semantico: "design"
summary_one_line: "EPISODIO 6 — ember_experience: Tu recuerdo era correcto — y ahora está medido"
source_type: "claude_code"
trust_boundary: "internal"
created_at: "2026-08-03T02:40:46.076097+00:00"
relectura_tagged: false
forgejo_commit_sha: "pending"
---
# Tu recuerdo era correcto — y ahora está medido
Verifiqué las vías en Qdrant en vivo. **El pipeline no solo es la mejor vía: hoy es la única que graba.**
| Vía de ingesta | Puntos | % |
|---|---|---|
| `ingested_via = CRISOL_v4.0` | **1.394** | **100 %** |
| cualquier otra | **0** | 0 % |
Y graba rico: **72 campos distintos**, 58 presentes en más del 90 % de los puntos. La auditoría de julio contó 59-60 — el esquema **creció**. De los 1.394, hay 1.387 con `google/gemini-embedding-2` declarado y **7 sin modelo** (único punto sucio del censo, anotado).
## El mapa de quién escribe dónde
| Almacén | Escritor | Vía |
|---|---|---|
| Qdrant · PostgreSQL · Neo4j | **crisol** (`crisol_run.py`, cron horario) | A — directa |
| Nextcloud · Forgejo | **outbox** (`ember-outbox.service`) | B — por eventos |
Un matiz a tu premisa: el crisol cubre **tres** de los cinco almacenes; Nextcloud y Forgejo los proyecta el outbox. No compiten — son complementarias por diseño (la ley single-writer, DV-1). Preguntar "cuál graba mejor" entre crisol y outbox no aplica: poseen almacenes distintos.
## Qué es realmente la "vía manual"
Es el push de la cola local (`pending_memory_push.json`). Su estado: **legacy retirado el 2 de mayo**, el propio arranque advierte que *duplica datos* si se usa a ciegas, y el censo lo confirma con **cero puntos**. Existe también `memory_writer.py` en el servidor, que sabe escribir a los tres almacenes y embebe **por LiteLLM** — mientras los oráculos y la búsqueda van **directo a OpenRouter**. Esa asimetría es la deuda estructural que documenté anoche, y fue la puerta por la que entró el cambio de espacio.
## Cuál produce mejores retrievals
**No hay comparación posible, y ese es el hallazgo:** con una sola vía escribiendo, la calidad del retrieval **no depende de la vía**. Coincide con lo que ya concluyó la auditoría del 27 de julio. Lo que la determina es el **espacio de embedding** — la causa raíz de anoche. Muestra de hoy (n=25): coseno p50 **0.82**, solo **2 de 25** reproducen su vector, recall laxo **0.48**.
## ⚠️ Riesgo nuevo que esto destapa para el re-embedding
Dos cosas que cambian el plan: