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
This commit is contained in:
parent
4284adff7c
commit
3a30056ab6
1 changed files with 25 additions and 0 deletions
|
|
@ -0,0 +1,25 @@
|
||||||
|
---
|
||||||
|
episode_id: "9630b989-4dd1-447f-a2b3-20a7cadfd5af"
|
||||||
|
puente_flat: "TRAZA_r17-las-38-revisadas-14-falsos-positivo_S20260823.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD"
|
||||||
|
session_code: "S20260823.SID2AEA91FA85F2"
|
||||||
|
acto_dialogico: "informar"
|
||||||
|
actor_flujo: "multi_actor"
|
||||||
|
criticidad_aegis: "low"
|
||||||
|
skill_dominante: "NONE"
|
||||||
|
fase_proyecto: "operations"
|
||||||
|
tipo_semantico: "troubleshooting"
|
||||||
|
summary_one_line: "EPISODIO 1 — Neo4j: R17 · Las 38 revisadas: 14 falsos positivos y un hallazgo gr"
|
||||||
|
source_type: "claude_code"
|
||||||
|
trust_boundary: "internal"
|
||||||
|
created_at: "2026-08-24T06:36:32.598348+00:00"
|
||||||
|
relectura_tagged: false
|
||||||
|
forgejo_commit_sha: "pending"
|
||||||
|
---
|
||||||
|
|
||||||
|
# R17 · Las 38 revisadas: 14 falsos positivos y un hallazgo grande
|
||||||
|
|
||||||
|
Informe entregado 👆: [HALLAZGO_S20260824_grafo_semantico_neo4j_programado_y_nunca_ejecutado.md](docs/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"*.
|
||||||
Loading…
Reference in a new issue