feat(episode): TRAZA_tu-eleccin-de-b-evit-un-error-mayor_S20260726.R3_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD

Skill: NONE | Type: design
Summary: EPISODIO 3 — MNEMO_PRE_DIGEST: Tu elección de B evitó un error mayor
This commit is contained in:
Ember 2026-07-27 02:46:51 +00:00
parent 32f8a9b9d1
commit 168c9bba55

View file

@ -0,0 +1,59 @@
---
episode_id: "dcc5d179-893a-4354-b524-6cd35928bea0"
puente_flat: "TRAZA_tu-eleccin-de-b-evit-un-error-mayor_S20260726.R3_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD"
session_code: "S20260726.ARCO_CICLO4_AUTOMEJORA"
acto_dialogico: "informar"
actor_flujo: "multi_actor"
criticidad_aegis: "low"
skill_dominante: "NONE"
fase_proyecto: "operations"
tipo_semantico: "design"
summary_one_line: "EPISODIO 3 — MNEMO_PRE_DIGEST: Tu elección de B evitó un error mayor"
source_type: "claude_code"
trust_boundary: "internal"
created_at: "2026-07-27T02:46:42.904162+00:00"
relectura_tagged: false
forgejo_commit_sha: "pending"
---
Corregido y respaldado: commit `017787a7`, push 3/3.
—
## Tu elección de B evitó un error mayor
Habías pedido el experimento antes que el reindexado. **Ese orden fue el correcto**, y aquí está por qué.
El experimento no confirmó lo que yo esperaba: **lo refutó**. Y con él, la tesis sobre la que íbamos a lanzar el reindexado.
**La evidencia, en tres líneas:**
El evento se cerró **sin que el worker de Qdrant tocara nada**. Y la razón está escrita en el código, en un docstring que no había leído:
> *"qdrant and neo4j are **owned by crisol (single-writer)**; not checked here"*
**Qdrant tiene un único escritor por diseño: el crisol.** El outbox solo posee Nextcloud y Forgejo.
## Mi error, sin rodeos
Interpreté `--only nextcloud forgejo` como *"un parche de junio que nadie revirtió"*. **Era la configuración correcta.** Al añadirle `qdrant neo4j` introduje un **segundo escritor** sobre la misma colección — exactamente lo que ese diseño existe para impedir.
**Revertido el mismo día**, con `diff` vacío contra el respaldo y el servicio activo con su línea original. El sistema está como estaba.
★ Insight ─────────────────────────────────────
La diferencia entre "bug olvidado" y "decisión de arquitectura" eran **dos líneas de un docstring que no leí antes de actuar**. Todo el resto de mi cadena causal —cronología, correlaciones, el aviso en el documento— era coherente y convincente… y construido sobre una premisa falsa.
Es la lección más incómoda del día y la más útil: **la coherencia interna de un razonamiento no lo valida**. Solo la evidencia externa lo hace. Por eso el experimento valía más que la ejecución.
─────────────────────────────────────────────────
## Qué sigue en pie y qué no
| Afirmación | Veredicto |
|---|---|
| 204 episodios del canon fuera del índice | ✅ **en pie** (medido, cobertura 100%) |
| Ventana 2→11 jul con 54-80% de ausencia | ✅ **en pie** (medido) |
| La clave muerta del worker y su HTTP 400 | ✅ **en pie** (reproducido) |
| Ambas vías comparten pipeline (`CRISOL_v4.0`) | ✅ **en pie** |
| "El sistema perdió su redundancia el 19-jun" | ❌ **falso** — Qdrant nunca tuvo dos escritores |
| "El hueco se explica por la muerte de la vía B" | ❌ **falso** — es del crisol, y **su causa real sigue sin diagnosticar** |
| "El reindexado debe ir por la vía B" | ❌ **falso y peligroso** — violaría escritor único |