ember-memory-test/episodes/TRAZA_r17-las-38-revisadas-14-falsos-positivo_S20260823.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD.md
Ember 3a30056ab6 feat(episode): TRAZA_r17-las-38-revisadas-14-falsos-positivo_S20260823.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD
Skill: NONE | Type: troubleshooting
Summary: EPISODIO 1 — Neo4j: R17 · Las 38 revisadas: 14 falsos positivos y un hallazgo gr
2026-08-24 06:36:47 +00:00

2.5 KiB

episode_id puente_flat session_code acto_dialogico actor_flujo criticidad_aegis skill_dominante fase_proyecto tipo_semantico summary_one_line source_type trust_boundary created_at relectura_tagged forgejo_commit_sha
9630b989-4dd1-447f-a2b3-20a7cadfd5af TRAZA_r17-las-38-revisadas-14-falsos-positivo_S20260823.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD S20260823.SID2AEA91FA85F2 informar multi_actor low NONE operations troubleshooting EPISODIO 1 — Neo4j: R17 · Las 38 revisadas: 14 falsos positivos y un hallazgo gr claude_code internal 2026-08-24T06:36:32.598348+00:00 false pending

R17 · Las 38 revisadas: 14 falsos positivos y un hallazgo grande

Informe entregado 👆: HALLAZGO_S20260824_grafo_semantico_neo4j_programado_y_nunca_ejecutado.md

El cruce con HARNESS_CLASES da cero coincidencias — y no por error: el arnés cataloga hooks y las 38 viven en la capa de librerías. Eso deja un hallazgo secundario: la clasificación de 226 componentes, que sería la báscula para podar, no cubre los 193 módulos de lib/. Se clasificó lo que dispara, no lo que ese disparo usa por debajo. Triaje de las 38: 13 son falsos positivos por framework (validadores de Pydantic, fixtures de pytest, visitantes de árbol, ciclo de vida de unittest — todos invocados por despacho dinámico); 1 es claim_and_declare, que el arranque imprime como comando para que yo lo ejecute por shell. Quedan 24 candidatas reales sin una sola mención fuera de su definición en todo el repositorio. ## [R17.seccion1.I1] Lo que apareció en Neo4j

8 de esas 24 están en el mismo archivo. neo4j_writer.py sabe construir siete tipos de relación —entity_depends_on, entity_uses, entity_hosted_on, entity_connected_via, episode_follows_episode, episode_resolves, episode_learned_from— y a ninguno lo llama nadie. Lo único que llega al grafo son MENTIONS e IN_SESSION, las dos que write_full_episode invoca desde su propio archivo. Esto explica con causa algo que ya habíamos medido y no sabíamos por qué: el informe 3 registró que Neo4j solo tiene aristas MENTIONS. No es que el grafo esté mal diseñado — es que el vocabulario rico está escrito y nunca se ejecuta. Sin esas aristas, el canal de grafo solo puede responder "qué episodios mencionan X"; nunca "qué depende de X", "qué vino después" ni "qué resolvió esto".