ember-memory-test/episodes/TRAZA_opcin-a-completa_S20260618.R3_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD.md
Ember 49dc0af91f feat(episode): TRAZA_opcin-a-completa_S20260618.R3_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD
Skill: FORJA | Type: troubleshooting
Summary: EPISODIO 3 — ember_experience:  Opción A — COMPLETA
2026-06-18 16:52:05 +00:00

3.6 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
2922de03-c14c-45e5-b268-7fb060e91290 TRAZA_opcin-a-completa_S20260618.R3_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD S20260618.VERIFY_FIRST_PASSPORT_FIX informar multi_actor low FORJA operations troubleshooting EPISODIO 3 — ember_experience: Opción A — COMPLETA claude_code internal 2026-06-18T15:41:42.014449+00:00 false pending

Deploy v2 confirmado (🎯 CRITERIO_EXITO exacto): server md5 e35567f8… == local, AST_OK, guard v2 presente. Backup pre_neardup_v2 creado.

🧪 TEST_POST: AST_PARSE_OK v2 · V2_LOGIC_OK (skips=[4]) · deploy md5-match + AST_OK server.

Opción A — COMPLETA

Parte 1 — Borrado quirúrgico del único duplicado real (grupo 4, sim 0.958):

Acción Resultado
Archivado previo /home/johnember/data/capa2_grp4_archive_S20260618.json (17.5KB: fila PG + payload Qdrant + nodo Neo4j)
PostgreSQL 7c72acd9 borrado (+ fila episode_outbox por FK RESTRICT) · commit
Qdrant punto ba4664fe borrado de ember_experience
Neo4j nodo + 8 relaciones (DETACH DELETE)
Verify DEL ausente (0) · KEEP 05fea691 presente (1) en los 3 stores — consistencia preservada

Dos intentos previos abortaron sin daño (transacción + rollback) hasta corregir un FK real (episode_outbox.puente RESTRICT). La salvaguarda funcionó.

Parte 2 — Capa 1 refinada a v2 (gate de similitud 0.95):

  • v1 (solo prefijo) era demasiado agresivo → habría false-skip de grupos 1 y 3 (contenido distinto, sim 0.69).
  • v2 añade difflib >= 0.95 sobre el cuerpo completo. Calibrado empíricamente: grp4=0.953 → SKIP; grp1/3=0.69, grp5=0.86, grp2=0.94 → INGEST. El umbral 0.95 separa limpio (tu elección validada por datos).
  • Desplegado + verificado en el servidor.

El hallazgo de fondo: lo que parecían "4-5 near-dups" era 1 duplicado real + 4 respuestas distintas/evolucionadas. El corpus estaba mucho más limpio de lo que el diagnóstico grueso sugería — y el guard ahora previene solo lo correcto sin destruir contenido legítimo.

📌 PILA-PENDIENTES (R29):

  • RESUELTAS: borrado grp4 (3 stores, archivado, verificado) · Capa 1 v2 (calibrada, desplegada)
  • 🟠 HIGH: commit crisol_run.py v2 a los 3 remotos (BLINDADA-29 pendiente)
  • 🟡 MEDIUM: 51 episodios en LOOP_WRITE local pendientes de push a Qdrant (pipeline separado del crisol)
  • LOW: 3 scripts capa2_* en /home/johnember/scripts/ (rastro de auditoría) · grp2 (0.941) conservado como borderline

📍 PARA JOHN — R29

  • Hice: Borré el único duplicado real (grupo 4) de los 3 stores, archivado y verificado quirúrgicamente (KEEP intacto). Refiné Capa 1 con el gate de similitud 0.95 que pediste, calibrado con datos reales y desplegado. Frené borrar los otros 4 — eran contenido distinto, no duplicados.
  • Falta: Nada de la tarea A. Opcional: commitear el cambio del crisol a los 3 remotos (BLINDADA-29) y/o drenar los 51 pendientes del loop local.
  • Mi consejo: Commitear ya el guard v2 a los remotos (es código vivo en producción sin respaldo git aún), y dejar el resto para cuando quieras.
  • Para avanzar, elige:
    • 🟢 A (recomendado) — Commit crisol_run.py v2 a los 3 remotos y cerrar el dedup.
    • 🟡 B — Además, drenar los 51 episodios pendientes del LOOP_WRITE local a Qdrant.
    • C — Otra cosa (pullear el archivo local, limpiar scripts, etc.).