feat(episode): TRAZA_lo-que-no-hay-que-subir-a-ciegas_S20260807.R2_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD

Skill: NONE | Type: troubleshooting
Summary: EPISODIO 2 — MNEMO: Lo que no hay que subir a ciegas
This commit is contained in:
Ember 2026-08-08 05:28:13 +00:00
parent f9911e5d8f
commit 695e11dc7a

View file

@ -0,0 +1,40 @@
---
episode_id: "397b1237-15d7-474f-8b0a-cf61eecd4986"
puente_flat: "TRAZA_lo-que-no-hay-que-subir-a-ciegas_S20260807.R2_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD"
session_code: "S20260807.COTEJO_ARCHIVOS_SERVIDOR"
acto_dialogico: "informar"
actor_flujo: "multi_actor"
criticidad_aegis: "low"
skill_dominante: "NONE"
fase_proyecto: "operations"
tipo_semantico: "troubleshooting"
summary_one_line: "EPISODIO 2 — MNEMO: Lo que no hay que subir a ciegas"
source_type: "claude_code"
trust_boundary: "internal"
created_at: "2026-08-08T05:28:04.403750+00:00"
relectura_tagged: false
forgejo_commit_sha: "pending"
---
Esa instancia opera sin BLINDADA-30, sin la ley single-writer de `dos-vias-memoria` (la que se violó el 26-jul y hubo que revertir el mismo día), y su `blindadas.md` todavía afirma que BLINDADA-17 bloquea cuando aquí ya se corrigió que solo avisa: **cree tener muros que en realidad son recordatorios.** Peor: su PF-22 conserva el texto exacto sobre `cic_locks/` que ya provocó una vez que una instancia fabricara una librería de cerrojos que ya existía. La trampa sigue armada en el móvil.
## Lo que no hay que subir a ciegas
Un `rsync --delete` local→servidor destruiría cosas. `HANDOFF_PROMPT.md` diverge en ambos sentidos: el servidor conserva un bloque `FILE_PASSPORT` de 17 líneas que tu regenerador local ya borró. `crisol_run.py` —el escritor único del pipeline de memoria— está **más avanzado en el servidor** que en tu carpeta `archivos-a-subir-servidor/`; subirlo lo haría retroceder. Y hay 113 claims históricos que solo viven allá (ninguno posterior a junio, así que no pisarías trabajo vivo, pero sí archivo).
En dirección inversa: **3 scripts del cron del servidor no existen en ningún commit del repositorio** (`retrieval_gate.py`, `chequeo_diario_pipeline.py`, `health_check_cron.sh`, este último corre cada 5 minutos). Si se pierde el disco, se pierden.
**Lo que no pude medir y no voy a estimar:** los conteos de Qdrant, PostgreSQL y Neo4j. El contenedor no trae `curl` y el endpoint pide API key. Si material tuyo debiera estar ahí y no llegó, este informe no lo vería.
—
**Hice:** cotejo exhaustivo local↔MEMORIA con 12 agentes en paralelo, 279 mediciones por hash. Informe en [COTEJO_LOCAL_VS_SERVIDOR_MEMORIA_S20260808.md](docs/COTEJO_LOCAL_VS_SERVIDOR_MEMORIA_S20260808.md).
**Falta:** ejecutar. No toqué nada — esto fue solo medir.
**Mi consejo:** empezar por los 524 KB irrecuperables (un commit, tres remotos, 2 minutos) y seguir por el móvil, que es el que puede hacer daño hoy tomando decisiones con reglas falsas.
**Para avanzar, elige:**
- 🟢 **A** *(recomendado)* — Commiteo los 18 archivos irrecuperables **y** refresco la doctrina del móvil (copia dirigida de `CLAUDE.md` + `rules/`, sin `--delete`).
- 🟡 **B** — Solo el commit de rescate ahora; el móvil lo vemos después.
- ⚪ **C** — Nada aún; primero quieres revisar el informe completo.