feat(episode): TRAZA_camino-b-calibracin-ruido-estado-acumul_S20260617.R2_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD

Skill: NONE | Type: chronicle
Summary: EPISODIO 2 — BLINDADAS: Camino B (calibración ruido) — estado acumulado
This commit is contained in:
Ember 2026-06-18 16:48:28 +00:00
parent 01db4cd943
commit 27f1189a49

View file

@ -0,0 +1,56 @@
---
episode_id: "0a8d1d64-7d93-402f-a018-e5e2539bc942"
puente_flat: "TRAZA_camino-b-calibracin-ruido-estado-acumul_S20260617.R2_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD"
session_code: "S20260617.PIPELINE_FIXES"
acto_dialogico: "informar"
actor_flujo: "multi_actor"
criticidad_aegis: "low"
skill_dominante: "NONE"
fase_proyecto: "operations"
tipo_semantico: "chronicle"
summary_one_line: "EPISODIO 2 — BLINDADAS: Camino B (calibración ruido) — estado acumulado"
source_type: "claude_code"
trust_boundary: "internal"
created_at: "2026-06-18T03:23:52.860517+00:00"
relectura_tagged: false
forgejo_commit_sha: "pending"
---
**Push: 6a09371 (zero-deuda throttle) → sriyantra ✅ + forgejo ✅; origin falló (DNS transitorio).** El trabajo está respaldado en 2/3 remotos (zero-loss satisfecho); origin sincroniza al recuperar DNS (instancia paralela o próximo push). Overrides limpiados.
He llegado a un cierre natural y honesto de esta sesión-maratón. Resumo el estado completo de camino B.
## Camino B (calibración ruido) — estado acumulado
| Item | Estado | Commit |
|---|---|---|
| **FP verify-first** (passport Bash-branch) | ✅ verificado + en 3 remotos (convergió INST21536) | `8ff0c48`/`704db4f` |
| **FP test-before-fix** (shell-var sentinel) | ✅ verificado e2e 9/9 + en 3 remotos (re-aplicado tras clobber) | `e7d3c37` |
| **Throttle RELOJERO-enforce** | ✅ verificado + en 3 remotos | `8ff0c48` |
| **Throttle zero-deuda-enforce** (#1 ofensor) | ✅ verificado (emit1=True emit2=False) + 2/3 remotos | `6a09371` |
| Throttles restantes (6) | 📋 documentados, listos | — |
**Lo entregado este turno (A):** verifiqué ventana limpia → pusheé `e7d3c37` a los 3 remotos → apliqué + verifiqué el throttle zero-deuda (el peor: disparaba casi cada turno, ahora 1/día-UTC) → commit `6a09371`.
## 🔴 Hallazgo nuevo: rotación de session UUID rompe las gates
Las gates `test-before-fix` y `verify-first` keyean su tracking "de este turno" por `session_id`. **El session UUID rota mid-turn** (la self-awareness pasó de CUSTODIA→PIPELINE_FIXES), así que el exec/Read que registro bajo una sesión **se pierde** cuando la gate corre bajo la rotada → me forzó override en cada edit. Es **el mismo root cause** que el throttle resuelve con `scope_global` (por eso el sweep insistió en ese modo). Ironía: las gates anti-error me bloquean por su propia fragilidad de estado.
## Throttles restantes (6, listos — plan del sweep)
| Hook | rank | fix (helper `should_emit`) |
|---|---|---|
| relojero-prompt-detector | 2 | per-sesión, full→1-línea |
| success-criteria | 3 | per-(sesión,archivo) |
| test-after-fix | 4 | per-(sesión,archivo), **preservar escalación** |
| infra (B3) | 5 | threshold 3→10 + gate B1/B7 en creación |
| libro-vivo | 6 | per-(sesión,tomo) |
| gap-detector | 7 | per-entidad |
(+ migrar RELOJERO de session-sentinel a `should_emit scope_global` — robustez vs rotación.)
### 📍 PARA JOHN — R27
**Hice:** Pusheé el FP fix `e7d3c37` (3 remotos) + apliqué/verifiqué el throttle zero-deuda (#1 ofensor) commit `6a09371`. 4 de los items de calibración cerrados (2 FP + 2 throttles).
**Falta:** 6 throttles (documentados, listos) + sync de `6a09371` a origin (DNS) + migrar RELOJERO a scope_global.