--- episode_id: "898ee381-390d-4448-bd2f-05c86731e4c1" puente_flat: "TRAZA_4-gaps-estructurales_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: "NONE" fase_proyecto: "operations" tipo_semantico: "troubleshooting" summary_one_line: "EPISODIO 3 — Prompt Injection: 4. 🟡 Gaps estructurales" source_type: "claude_code" trust_boundary: "internal" created_at: "2026-06-18T00:19:37.070138+00:00" relectura_tagged: false forgejo_commit_sha: "pending" --- - **Fatiga de alarma masiva (2 always-ON con precisión 0%):** - `mega-hook-paav-pre-action.py` → **17.579 disparos**, 0% precisión - `mega-hook-aegis-capability-gate.py` → **14.223 disparos**, 0% precisión (es el `AEGIS-CAP advisory` que viste en CADA tool-call de este turno) - **5 FN (detecciones que debieron dispararse y no):** `gap-detector` (2), `test-after-fix` (1), `marimo-auto` (1), `session` (1). - **Push guard con contador stale:** marca *last push 2026-04-09* pese a que BLINDADA-29 pushea triple-remoto seguido → el contador no se resetea (señal falsa, no bloquea). ## 4. 🟡 Gaps estructurales 1. **El health-check solo cubre 13 de ~70 hooks cableados** — `system_health.py` smoke-testea una muestra hardcodeada. El "13/13 OK" es tranquilizador pero **no es cobertura**, es muestreo. 2. **JAE solo tiene veredicto sobre 10 hooks** → ~60 hooks **sin medición de efectividad** (ciego a FN). 3. **Deuda de housekeeping:** 57 orphan files (`.passport_reads_*` de 175–525h) + 56 `.bak` + 754 backups. 4. **Deuda de docs:** ~20+ hooks con `[FILL: qué hace este archivo]` en MAP.md (incluido `mega-hook-routing-verifier.py`). 5. **No drillé** en el "1 error / 9 stale" del drift-check del boot (PR-6: gap honesto, lo dejo señalado). ### 📍 PARA JOHN — R19 **Hice:** Auditoría empírica read-only del sistema de hooks — inventario (263 archivos → ~70 cableados), compilación (0 errores), health-check fresco, y reporte de efectividad JAE. **Falta:** Decidir remediación de 3 frentes: secretos en `settings.json` (crítico), 2 hooks 0%-precisión que hacen ruido, y limpieza de 57 huérfanos. **Mi consejo:** Lo único que urge es el **secreto en git** — es exfil activa por cada push y es literalmente tu tema de sesión. El ruido PAAV/AEGIS y la limpieza son higiene, no incendio. Iría por el secreto primero. **Para avanzar, elige:** - 🟢 **A** *(recomendado)* — Plan de saneamiento de secretos: mover los 4 a `.env.local` gitignored + `git rm --cached settings.json` con plantilla. (Requiere tu GO; rotación aparte.) - 🟡 **B** — Atacar la fatiga de alarma: calibrar/degradar `paav-pre-action` + `aegis-capability-gate` (0% precisión). - ⚪ **C** — Solo limpieza: barrer 57 huérfanos + 56 `.bak` + resolver `[FILL]` de docs. 📌 **PILA-PENDIENTES (R19)** 🔴 **B-001** Secretos en claro en `settings.json` commiteado [origen R19, git ls-files] · conf. alta 🟠 **B-002** PAAV + AEGIS-CAP precisión 0%, ~32K disparos ruido [JAE report] · conf. alta 🟡 **G-001** Health-check cubre 13/~70 hooks (muestreo, no cobertura) · conf. alta 🟡 **G-002** 57 huérfanos + 56 `.bak` + ~20 docs `[FILL]` · conf. alta ❓ **Q-001** ¿Camino A/B/C? ¿Rotación de secretos ahora o sprint dedicado?