feat(episode): TRAZA_mitad-1-de-la-frescura-viva-y-verificada_S20260721.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: Mitad 1 de la frescura: viva y verificada
This commit is contained in:
Ember 2026-07-21 18:31:04 +00:00
parent 87e7535372
commit 1ed4a0c4e6

View file

@ -0,0 +1,42 @@
---
episode_id: "4bddae83-5e1c-49ec-9746-e010f0d3a7a1"
puente_flat: "TRAZA_mitad-1-de-la-frescura-viva-y-verificada_S20260721.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD"
session_code: "S20260721.GRAFO_NOMENCLATURA_NEO4J"
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: Mitad 1 de la frescura: viva y verificada"
source_type: "claude_code"
trust_boundary: "internal"
created_at: "2026-07-21T18:31:03.040471+00:00"
relectura_tagged: false
forgejo_commit_sha: "pending"
---
✅ Commit `4deab407` **pusheado a los 3 remotos**.
## Mitad 1 de la frescura: viva y verificada
El grafo ya **no puede envejecer en silencio**: cada `.md` con nomenclatura que escribas queda detectado y encolado automáticamente — incluido `docs/`, que es el 83% del corpus y que el hook original no miraba.
**Y hay una historia que vale la pena contarte:** el test-vs-oráculo **cazó un bug mío antes de que llegara a producción**. Mi `should_track` devolvía `False` ante rutas relativas — **en silencio**. Habría "funcionado" (Claude Code pasa rutas absolutas) hasta el día que algo pasara una relativa y el nodo **no se encolara sin que nadie se enterara**. Ese es justo el sensor mentiroso que la doctrina persigue: el que te deja creer que todo va bien. El test lo atrapó, lo corregí, y quedó documentado en el código para que nadie lo reintroduzca.
## Lo que falta: la mitad 2
Hoy la cola **acumula** (no se pierde nada), pero **el grafo en Neo4j todavía no se actualiza solo**. Falta el **drenador**: cola → `MERGE` idempotente → Neo4j, reusando el loader parametrizado que ya quedó probado en el servidor.
Sin él, la frescura está a medias: detectamos, pero no aplicamos.
**Hice:** construí el detector de frescura (lib + enganche al hook existente, sin crear un hook nuevo que sumara latencia), lo verifiqué contra un oráculo independiente (40 archivos, 0 discrepancias), corregí el bug silencioso que el test destapó, probé el antes/después con el mismo estímulo, y commiteé + pusheé.
**Falta:** el drenador que lleva la cola a Neo4j — la otra mitad del ciclo.
**Mi consejo:** **cerremos el ciclo ahora** (opción A). Un detector sin drenador es una cola que crece sin aplicarse; con el drenador, el grafo se mantiene fresco de verdad y cerramos el problema que abrió toda esta sesión.
**Elige:**
- 🟢 **A — Construir el drenador** *(recomendado)* — cierra el ciclo: cola → Neo4j idempotente
- 🟡 **B — Parar aquí** — nada se pierde (la cola acumula); drenamos cuando digas
- ⚪ **C — Otra cosa** que tengas en mente