Skill: FORJA | Type: troubleshooting
Summary: EPISODIO 3 — ember_experience: ✅ Opción A — COMPLETA
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.95sobre 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.pyv2 a los 3 remotos (BLINDADA-29 pendiente) - 🟡 MEDIUM: 51 episodios en
LOOP_WRITElocal 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.pyv2 a los 3 remotos y cerrar el dedup. - 🟡 B — Además, drenar los 51 episodios pendientes del
LOOP_WRITElocal a Qdrant. - ⚪ C — Otra cosa (pullear el archivo local, limpiar scripts, etc.).
- 🟢 A (recomendado) — Commit