Skill: NONE | Type: troubleshooting Summary: EPISODIO 1 — Neo4j: R17 · Las 38 revisadas: 14 falsos positivos y un hallazgo gr
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".