feat(episode): TRAZA_bitcora-s20260728reingestacrisolfugasr8_S20260728.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD

Skill: NONE | Type: design
Summary: EPISODIO 1 — MNEMO_PRE_DIGEST: 📁 BITÁCORA S20260728.REINGESTA_CRISOL_FUGAS.R8
This commit is contained in:
Ember 2026-07-28 23:40:54 +00:00
parent a9b56be49d
commit b6a8345fbe

View file

@ -0,0 +1,53 @@
---
episode_id: "5b02b5ab-ecaf-486e-b18d-ca797c10695b"
puente_flat: "TRAZA_bitcora-s20260728reingestacrisolfugasr8_S20260728.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD"
session_code: "S20260728.REINGESTA_CRISOL_FUGAS"
acto_dialogico: "informar"
actor_flujo: "multi_actor"
criticidad_aegis: "low"
skill_dominante: "NONE"
fase_proyecto: "operations"
tipo_semantico: "design"
summary_one_line: "EPISODIO 1 — MNEMO_PRE_DIGEST: 📁 BITÁCORA S20260728.REINGESTA_CRISOL_FUGAS.R8"
source_type: "claude_code"
trust_boundary: "internal"
created_at: "2026-07-28T23:40:44.896101+00:00"
relectura_tagged: false
forgejo_commit_sha: "pending"
---
El arco queda con tres documentos que se sostienen entre sí: la **auditoría** (qué se midió y cómo), la **decisión** (qué se eligió y qué se descartó, con motivo) y el **runbook** (quién hace qué, en qué orden, con vuelta atrás).
La decisión guarda las cuatro alternativas rechazadas con su razón medida — túnel, lista de rangos, pasar `lumbre` a naranja, y empezar por la `INPUT`. Sin ese registro, dentro de un mes alguien propone otra vez "túnel y allowlist" y vuelve a descubrir a golpes que rompe tu MCP y tus certificados.
Sobre el aviso de CONCILIO: lo dejé escrito dentro del propio documento en vez de silenciarlo. No se convocó ningún panel, y una decisión que dice apoyarse en trece lentes que nunca se reunieron vale menos que una que declara honestamente apoyarse en mediciones. Añado el falso positivo del detector a la pila: se disparó por contenido que pegaste, no por una invocación real — la misma clase de defecto que encontramos ayer en el guard D3, un guardián midiendo la forma en lugar del hecho.
**Nada de esto cambia lo que necesito de ti**, que sigue siendo un minuto de trabajo:
**J-1** → `dash.cloudflare.com` → **brasaluz.com** → **SSL/TLS** → **Origin Server** → activa **Authenticated Origin Pulls**. No tumba nada: Cloudflare empieza a llevar el carnet, pero el servidor todavía no se lo pide.
**J-2** → **SSL/TLS** → **Overview** → dime qué modo aparece. Si dice `Flexible`, párate y avísame.
En cuanto me confirmes J-1, lanzo el canario sobre un solo vhost y lo verifico con los tres controles desde LUMEN.
🔴 **CRITICAL** · `G-001` Bypass del origen — **bloqueado esperando J-1 y J-2**
🟠 **HIGH** · `G-005` `INPUT` preventiva — tras ORIGEN, requiere J-3 (consola de rescate)
🟡 **MEDIUM** · `G-006` `DOCKER-USER` v6 vacía — latente
🟡 **MEDIUM** · `T-002` Commit + push del arco (3 documentos + fix del guard + tests)
🟡 **MEDIUM** · `B-002` **Nuevo:** el detector de panel/CONCILIO se dispara con contenido pegado y exige actas con nombre derivado de un pegado. Mismo patrón FORMA-vs-HECHO que el guard D3
⚪ **LOW** · `S-001` Token de `lumbre` en claro en el Caddyfile (informativo, fuera de alcance)
✅ **RESUELTAS** · decisión firmada · runbook entregado · CA verificado y colocado sin downtime
### 📁 BITÁCORA S20260728.REINGESTA_CRISOL_FUGAS.R8
🆕 WRITE `docs/DECISION_S20260728_endurecimiento_origen_client_auth.md` → 4 alternativas descartadas con motivo medido
✏️ EDIT passport del mismo → PURPOSE/Author/DEPENDS completados
⚡ BASH inventario del arco → 3 documentos, 35 KB en total
**Hice:** firmé por escrito la decisión de diseño y su porqué, que es lo único que impide que esta iniciativa muera por tercera vez.
**Falta:** tus dos clics. Todo lo demás está preparado y esperando.
**Mi consejo:** haz J-1 y J-2 ahora — un minuto, cero riesgo — y seguimos con el canario en el mismo tirón. El trabajo pesado ya está hecho; lo que queda es aplicar y verificar.
**Para avanzar:** dime **"J1 hecho"** más el modo que viste en J-2.