feat(episode): TRAZA_r9seccion1i1-terminar-ember-estado-final_S20260814.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD

Skill: NONE | Type: troubleshooting
Summary: EPISODIO 1 — MEMORIA: [R9.seccion1.I1] "Terminar EMBER": estado final de la misi
This commit is contained in:
Ember 2026-08-15 05:50:44 +00:00
parent 2d30899fa4
commit 8bf5b95729

View file

@ -0,0 +1,51 @@
---
episode_id: "9af4fef6-af84-428a-951a-ee37b9e03902"
puente_flat: "TRAZA_r9seccion1i1-terminar-ember-estado-final_S20260814.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD"
session_code: "S20260814.SHERPA_CLONACION_SERVIDOR"
acto_dialogico: "informar"
actor_flujo: "multi_actor"
criticidad_aegis: "low"
skill_dominante: "NONE"
fase_proyecto: "operations"
tipo_semantico: "troubleshooting"
summary_one_line: "EPISODIO 1 — MEMORIA: [R9.seccion1.I1] "Terminar EMBER": estado final de la misión"
source_type: "claude_code"
trust_boundary: "internal"
created_at: "2026-08-15T05:50:34.180606+00:00"
relectura_tagged: false
forgejo_commit_sha: "pending"
---
## [R9.seccion1.I1] "Terminar EMBER": estado final de la misión de clonación
John, esto es lo que existe hoy que no existía cuando dijiste *"quiero clonar el ecosistema"*:
**El día que exista la VM, la secuencia es literal:** clonar el repo → `ember-clone-ecosystem.sh ./bundle-latest` → `build-local-images.sh` → `acunar-claves-clon.sh` → `init-empty-schema.sh` → `verify-clone-parity.sh` → oráculo de 9 puntos. Cada guion existe, tiene `bash -n` limpio, y los que pudieron probarse contra la realidad, se probaron.
## [R9.seccion2.T1] La cosecha de la Sesión 3 — seis mentiras de instrumento cazadas antes de producción
| # | El instrumento decía | La realidad | Cazado por |
|---|---|---|---|
| 1 | parser constraints v1 "funciona" | 0/8 contra la captura real | oráculo con datos reales |
| 2 | redacción total "es segura" | dejaba 41 falsas internas — acuñar `QDRANT_PORT` rompe el clon | oráculo del clasificador |
| 3 | regex v2 "solo secretos" | atrapaba `KEYCHAIN_*` (config) por substring | oráculo 11 nombres |
| 4 | verificador "leía el manifiesto" | extraía el **4 de "neo4j"** como conteo | lectura del control positivo |
| 5 | control negativo "mordía" | mutación al revés: quitar del manifiesto DEBILITA | exigir el exit 1 |
| 6 | scp "subió" (no abortó) | "Connection closed" y el regex viejo siguió en el servidor | grep del contenido remoto |
`★ Insight ─────────────────────────────────────`
Ninguno de los 6 se habría visto en la VM hasta el primer ensayo fallido — y varios (el puerto acuñado, el conteo falso) habrían producido **fallos confusos lejos de su causa**. La doctrina B-30 en una frase: no preguntes si el sensor corre; pregunta si dice la verdad. Esta sesión lo preguntó seis veces y seis veces la respuesta era no.
`─────────────────────────────────────────────────`
Y un colateral que importaba: **`.gitignore` excluía en silencio las plantillas redactadas** — el bundle viajaba sin ellas y el clon no habría tenido qué rellenar. Cerrado con negación explícita; el pre-commit sigue de juez y aprobó.
—
**Hice.** Las 3 sesiones completas del plan (commits `677f764b`, `8cc4493f`, `04fb0c52`, `ace8ea17` — todos en 3 remotos). El sistema de clonación pasó de "diseñado en junio, jamás probado" a "auditado, corregido, con esquema, fuentes, claves y verificador calibrado contra el servidor vivo".
**Falta — todo tuyo, nada mío:**
1. 🔴 **Rotar la clave OpenRouter** (expuesta en R8 — sigue pendiente) + borrar `~/playground/grafo-indice-v2-graphify/.orkey` en el origen.
2. 🔴 **La VM de ensayo** (Hetzner, Ubuntu 24.04, ≥16GiB/80GB, por horas) — desbloquea S4-S5.
3. 🟠 **Remediación del 22**: secretos hardcodeados en ~15 compose del origen.
**Mi consejo.** El orden es ese: la rotación son 2 minutos y cada día que pasa la clave expuesta es un riesgo vivo. La VM cuando puedas — todo está listo para recibirla: me das la IP y corro el ensayo completo (T-13→T-18→T-14→T-15) en una sesión.