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:
parent
87e7535372
commit
1ed4a0c4e6
1 changed files with 42 additions and 0 deletions
|
|
@ -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
|
||||||
Loading…
Reference in a new issue