--- episode_id: "3a229a2e-bea4-4115-bd09-de28b60833fe" puente_flat: "TRAZA_para-john-r5_S20260617.R3_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD" session_code: "S20260617.CUSTODIA_SKILL_SECRETOS" acto_dialogico: "informar" actor_flujo: "multi_actor" criticidad_aegis: "low" skill_dominante: "TESSERA" fase_proyecto: "operations" tipo_semantico: "troubleshooting" summary_one_line: "EPISODIO 3 — Meilisearch: 📍 PARA JOHN — R5" source_type: "claude_code" trust_boundary: "internal" created_at: "2026-06-17T21:21:02.791848+00:00" relectura_tagged: false forgejo_commit_sha: "pending" --- ✅ **Runbook de rotación entregado** ([RUNBOOK_ROTACION_4_KEYS_SECRETOS](docs/RUNBOOK_ROTACION_4_KEYS_SECRETOS_S20260617.md), gitignored local — es recon). Y el **PASO 0 (enumeración) ya prueba la lección D-9 con números reales:** | Key | Consumidores en el repo (solo local) | |---|---| | OpenAI | **10** archivos | | Karakeep | **15** | | Langfuse | **13** | | Meilisearch | **14** | | LiteLLM master (la de D-9) | **8** | **Esto es exactamente el punto:** cada key tiene 8-15 referencias **solo en el repo** (+ las del servidor MEMORIA vía SSH). **No se puede rotar "a ojo"** — fue justo un satélite no-listado (`embedding.env`) el que rompió el pipeline en D-9. El runbook obliga a ejecutar el PASO 0 (enumeración exhaustiva: repo + servidor + satélites) por cada key ANTES de rotar. **El rito (matriz CUSTODIA, división CA-3):** - **Tú ejecutas** (CA-3, tus cuentas): generar cada key nueva → inyectar en TODOS los consumidores del PASO 0 → recargar (`up -d --force-recreate`, no `restart`) → verificar liveness por la **vía real** + que la vieja sea **rechazada**. - **Yo hago** (sin CA-3): completar la enumeración server-side (SSH read-only), scrubear MEMORY.md, y verificar liveness por la vía real tras cada rotación. ### 📍 PARA JOHN — R5 - **Hice:** invoqué CUSTODIA (INVENTARIO + ROTACION_PLAN) sobre las 4 keys → runbook con el rito + la lección D-9 + enumeración real (8-15 consumidores/key). CA-3 respetado (propongo, no ejecuto). - **Falta:** que TÚ generes+inyectes las keys nuevas (CA-3). Yo puedo adelantar la enumeración server-side para darte el blast-radius completo antes. - **Mi consejo:** déjame correr el PASO 0 server-side (SSH read-only, sin tocar nada) para entregarte el mapa COMPLETO de consumidores por key — así rotas con la lista exhaustiva y no repites el olvido D-9. - **Para avanzar:** 🟢 **A** corro la enumeración server-side completa (el blast-radius real de cada key) · 🟡 **B** empiezas a rotar la 1ª key (OpenAI) y yo verifico la vía real · ⚪ **C** cerrar con STATE+HANDOFF.