Skill: NONE | Type: troubleshooting Summary: EPISODIO 1 — MEMORIA: [R9.seccion1.I1] "Terminar EMBER": estado final de la misi
3.8 KiB
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:
- 🔴 Rotar la clave OpenRouter (expuesta en R8 — sigue pendiente) + borrar
~/playground/grafo-indice-v2-graphify/.orkeyen el origen. - 🔴 La VM de ensayo (Hetzner, Ubuntu 24.04, ≥16GiB/80GB, por horas) — desbloquea S4-S5.
- 🟠 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.