diff --git a/episodes/DEPURA_1-tarea-no-op-rate-el-instrumento-ya-mi_S20260919.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD.md b/episodes/DEPURA_1-tarea-no-op-rate-el-instrumento-ya-mi_S20260919.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD.md new file mode 100644 index 00000000..bdda9d0e --- /dev/null +++ b/episodes/DEPURA_1-tarea-no-op-rate-el-instrumento-ya-mi_S20260919.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD.md @@ -0,0 +1,49 @@ +--- +episode_id: "e2250aec-c4ec-4218-9661-56b9f1a4e0aa" +puente_flat: "DEPURA_1-tarea-no-op-rate-el-instrumento-ya-mi_S20260919.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD" +session_code: "S20260919.SIDA341A4963ECD" +acto_dialogico: "informar" +actor_flujo: "multi_actor" +criticidad_aegis: "low" +skill_dominante: "NONE" +fase_proyecto: "operations" +tipo_semantico: "troubleshooting" +summary_one_line: "EPISODIO 1 — Ember: 1. Tarea no op rate : el instrumento ya mide lo que de verda" +source_type: "claude_code" +trust_boundary: "internal" +created_at: "2026-09-19T23:19:40.478200+00:00" +relectura_tagged: false +forgejo_commit_sha: "pending" +--- + +**CHAT-TEMA-RAÍZ:** ALQUIMIA v2 — fábrica de prompts con enrutado y perfil de derecho colombiano +**R15-SUB-TEMA:** las tres tareas que dejé como chips están hechas, verificadas y subidas; la tercera pasó por un revisor independiente que me corrigió + +## 1. Tarea `no_op_rate`: el instrumento ya mide lo que de verdad ocurre +`[R15.seccion1.T1]` + +La auditoría wave1 publicaba que ALQUIMIA dejaba el 100 % de las consultas sin tocar. Era un artefacto: `scripts/audit_wave1/m1_all.py` contaba el campo `transformed`, que el log no tiene en ninguna de sus 4.961 filas. La definición correcta está en el propio hook, en `mega-hook-alquimia.py:161`: `final_query = query_step2 if preserved else query`. De ahí se sigue que una consulta sale igual que entró en tres casos: cuando `preserved` es falso (el verificador de intención rechazó el enriquecimiento), cuando `reason` es `identical`, o cuando `reason` es `empty_query_no_enrichment`. + +| Definición probada | Resultado | +|---|---| +| Campo `transformed` (el artefacto) | 1,000 | +| Solo `reason == "identical"` | 0,858 | +| **La del código del hook** | **0,862** (4.275 sin cambio, 686 transformadas) | + +Arreglé además un fallo latente que yo mismo había introducido hoy. El script elegía «el `*alquimia*.jsonl` más reciente», y el registro de mi preflight también encaja en ese patrón. Ahora elige el log por su nombre. + +Verificación, hecha con TDD: +- La suite nueva falló primero por `AttributeError`, como debía. +- Tras el arreglo: **11 passed**. +- El control por neutralización demuestra que la fórmula vieja devuelve 1,0 con cualquier mezcla de filas. +- La medición real coincide con un conteo independiente. + +No reescribí el histórico. El `1.0` sigue en el JSON, acompañado de la clave `aviso_dlc2`. La auditoría lleva un aviso arriba. **El veredicto de ALQUIMIA, «SIMPLIFICAR (solo AQ-1)», no cambia**, porque se apoyó en los brazos M2 (enrutado Δ=−0,01 y recuperación Δ=−0,133) y no en esta tasa. Commit **`bb21574b`**. + +## 2. Tarea LEGIS y ATLAS: los módulos jurídicos no existen, y los archivos ahora lo dicen +`[R15.seccion2.T1]` + +Volví a comprobarlo. `skills/legis/` y `skills/atlas/` contienen solo `CLAUDE.md`, `BITACORA.md`, `MAP.md` y `_membrana.md`. La copia local del plugin de claude.ai tiene solo `SKILL.md`. + +- **LEGIS** promete `ROUTER.md`, 7 módulos y 5 plantillas. Su regla 1 («nunca generes un documento legal sin cargar antes el módulo») es incumplible, porque no hay módulo que cargar. +- **ATLAS** promete 5 módulos con carga progresiva. Tampoco existen.