Skill: NONE | Type: troubleshooting Summary: EPISODIO 1 — Ember: Lo que se cerró — 5 arreglos, todos medidos antes y después
3 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 6eba144c-8c19-49b3-9eb8-94d28837fb80 | TRAZA_lo-que-se-cerr-5-arreglos-todos-medidos_S00000000.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD | S00000000 | informar | multi_actor | low | NONE | operations | troubleshooting | EPISODIO 1 — Ember: Lo que se cerró — 5 arreglos, todos medidos antes y después | claude_code | internal | 2026-08-29T05:06:40.961365+00:00 | false | pending |
Parte para ti, John. Los dos enjambres siguen produciendo la lista (13/14 y 8/15 carriles); mientras tanto, esto es lo que ya está arreglado y verificado.
Lo que se cerró — 5 arreglos, todos medidos antes y después
| # | Qué estaba roto | Antes → Después | Commit |
|---|---|---|---|
| 1 | 2.764 tests invisibles. Un sys.exit() a nivel de módulo en test_frontier_generator.py abortaba la recolección entera |
1.329 + INTERNALERROR → 4.093 recolectados |
cabdb8c7 |
| 2 | 811 pasaportes sin propósito. El generador escribía un marcador con el comentario "Ember llena esto" | 591 rellenados con extracción determinista | 180529f6 |
| 3 | La fábrica seguía encendida: cada fichero nuevo nacía con ~3 marcadores | El generador ahora deriva; el marcador queda solo de fallback honesto | ddf25183 |
| 4 | El arranque perdía 81,5 s en un N+1: 9 censos completos donde bastaba 1 | 8,3 s (9,8×), registro idéntico | 37d3f944 |
| 5 | _normalize contaba el mismo enlace dos veces (no idempotente) |
Punto fijo; 16 tests + 200 muestras Hypothesis | 4f9ade3f |
Baseline real de la suite, por primera vez: 3 de 4 turnos cerrados → 2.991 passed. De los 3 fallos, 2 los arreglé (corrieron antes del fix) y 1 era el bug de _normalize. El cuarto turno va por el 24%.
Dos cosas que debo decirte aunque no queden bien
Causé una regresión y la arreglé de raíz. Al rellenar el pasaporte de artifact-guard.md, su propósito real pasó a contener la palabra «Gate» — y el detector leyó la línea vecina CREATED: 2026-06-10 como un gate vencido de 79 días. El registro publicó un fantasma. La salida fácil era quitarle la palabra «Gate» a mi texto; eso es maquillar al detector. Corregí el instrumento: una fecha en un campo de metadatos nunca es un plazo. Con test de control positivo y de evasión.
Mi primer arreglo de _normalize fue insuficiente. Puse una lista de caracteres a mano y Hypothesis lo tumbó otra vez con '0\x1f\'. Estaban conviviendo dos nociones distintas de «espacio» en la misma función. Añadir ese carácter habría tapado el caso dejando viva la clase.
Restricciones externas (no son fallos de diseño)
- Fable está sin créditos. El enjambre murió en su primer agente. Sustituí el orquestador por Opus y lo declaro (RM-4).
- Rate limit 429 tumbó un agente trabajador. Los enjambres siguen con el resto.