feat(episode): TRAZA_estado-de-la-ola-0_S20260711.R35_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD

Skill: NONE | Type: troubleshooting
Summary: EPISODIO 35 — BLINDADAS: Estado de la Ola 0
This commit is contained in:
Ember 2026-07-12 16:34:28 +00:00
parent d0313add32
commit 63073d4696

View file

@ -0,0 +1,37 @@
---
episode_id: "30e472aa-f051-4858-9dc3-7a30d85f80a7"
puente_flat: "TRAZA_estado-de-la-ola-0_S20260711.R35_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD"
session_code: "S20260711.SHERPA_BRIEFING_FABLE"
acto_dialogico: "informar"
actor_flujo: "multi_actor"
criticidad_aegis: "low"
skill_dominante: "NONE"
fase_proyecto: "operations"
tipo_semantico: "troubleshooting"
summary_one_line: "EPISODIO 35 — BLINDADAS: Estado de la Ola 0"
source_type: "claude_code"
trust_boundary: "internal"
created_at: "2026-07-12T16:20:43.472061+00:00"
relectura_tagged: false
forgejo_commit_sha: "pending"
---
🎉 **0.3 cerrado y respaldado** (`20a4f5a2`, ×3). *(La advertencia DLC sobre 5 docs archive es falso positivo — matchea "forense" en el commit; son bugs viejos distintos, no mi claim.)*
## Estado de la Ola 0
| Ítem | Estado | Nota |
|---|---|---|
| **0.3** revivir hook STATE.md | ✅ **DONE (no era bug)** | Hook vivo; falso positivo del diagnóstico corregido (AVISO DLC-2). Cero fix de código. |
| **0.1** rotar 4 secretos | 🔒 **TU MANO (CA-3)** | Yo NUNCA roto secretos ni edito `settings.json` con valores. Runbook listo (abajo). |
| **0.2** `.py`→env + borrar `.bak` | 🔒 **preparado, espera tu GO** | Riesgo real: cambia scripts server-side (dependen de `LITELLM_KEY` en env). |
**La Ola 0 es, por diseño, mayormente tu HITL** — el daño vivo son secretos, y esos solo los tocas tú (CA-3). Lo automatizable (0.3) resultó ser un no-bug. Aquí va lo que necesito de ti:
### 🔒 0.1 — Rotación de los 4 secretos (tu acción)
Runbook: **`docs/RUNBOOK_ROTACION_SECRETOS_JOHN_S20260623.md`**. En claro en `.claude/settings.json`: `NEO4J_PASSWORD` (:559), `MEILI_MASTER_KEY` (:595), `KARAKEEP_API_KEY` (:603), `PAPERLESS_API_KEY` (:615). Pasos: rotar cada uno en su sistema (Neo4j/Meili/Karakeep/Paperless) → pegar el nuevo valor en settings.json (tú) → verificar viejo muerto. Cuando termines, yo corro la verificación **value-blind** (`grep -c` de los valores viejos = 0, sin imprimirlos).
### 🔒 0.2 — Migración `.py`→env (tu GO)
Comando value-blind listo (yo NO veo/tipeo el secreto — regex por patrón):
**Caveat que exige tu GO:** estos scripts corren **server-side**; tras la migración, `LITELLM_KEY` DEBE existir en el env de ejecución o se rompen. → confirma que el env lo provee (o lo verifico por SSH antes) y te doy el GO. Los 5 `.bak_scrub` con secretos en claro son **locales, no pusheados** — recomiendo borrarlos, pero no lo hago unilateralmente (rollback-policy).