feat(episode): TRAZA_el-gate-para-declararlo-funcional-mi-pro_S20260801.R2_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD

Skill: NONE | Type: chronicle
Summary: EPISODIO 2 — MNEMO_PRE_DIGEST: El gate para declararlo "funcional" (mi propuesta
This commit is contained in:
Ember 2026-08-02 03:21:34 +00:00
parent aa7b6508ca
commit eecf331784

View file

@ -0,0 +1,35 @@
---
episode_id: "53578829-12c7-4b97-aeef-fc8a6b0e7190"
puente_flat: "TRAZA_el-gate-para-declararlo-funcional-mi-pro_S20260801.R2_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD"
session_code: "S20260801.PIPELINE_FIXES"
acto_dialogico: "informar"
actor_flujo: "multi_actor"
criticidad_aegis: "low"
skill_dominante: "NONE"
fase_proyecto: "operations"
tipo_semantico: "chronicle"
summary_one_line: "EPISODIO 2 — MNEMO_PRE_DIGEST: El gate para declararlo "funcional" (mi propuesta, queda en "
source_type: "claude_code"
trust_boundary: "internal"
created_at: "2026-08-02T03:21:28.242437+00:00"
relectura_tagged: false
forgejo_commit_sha: "pending"
---
- 🔴 **El transporte no existe**: no hay ni un conector a las APIs de los proveedores. El "bus de mensajes" eres tú copiando ZIPs entre 7 pestañas, 8-16 horas por ciclo. Es un ritual manual excelentemente documentado, no todavía un protocolo ejecutable.
- 🔴 **El contrato que corre no es el que está escrito**: `validator.py` usa una copia inline débil de los schemas (claim mínimo 1 carácter en vez de 50; justificación ni se exige) y **nunca carga** los archivos JSON canónicos. Doble fuente de verdad, y ya divergieron.
- 🟠 **El lock global no es atómico** (escribe-espera-relee, carrera posible) e importa `portalocker` sin usarlo jamás. Con un solo humano operando no muerde; con procesos concurrentes, morderá.
- 🟠 **Identidad sin autenticar**: una sola API key compartida y `author_ia` autodeclarado — cualquiera con la key firma como cualquier IA. Y el contenido de las IAs se ingiere sin cuarentena anti prompt-injection.
- 🟡 Higiene: 5 copias duplicadas de los parches anidadas hasta romper el límite de rutas de Windows (me pasó al clonar), y métricas KPI definidas pero sin nadie que registre el dato real.
## El gate para declararlo "funcional" (mi propuesta, queda en el doc)
1 ciclo completo propose→challenge→decide **sin copy-paste** contra APIs de ≥2 proveedores · validator carga los .json (una sola fuente de verdad) · lock atómico real · key por agente · los 63 tests verdes reproducidos (yo **no** los ejecuté — es claim del repo, lo declaro) · 1 decisión real con KPIs registrados. Cuando cruce ese gate — y solo entonces — se abre la conversación EMBER↔PERCIA, con expediente formal y tu GO.
**Nota de estado:** mi edición a MEMORY.md solo añadió la línea de la directiva — ningún hecho-de-estado de `estado_vivo` cambió (dolientes: no_afectados). Dejé un chip para compactar MEMORY.md (<140 líneas) como tarea aparte.
**Hice:** encontré el repo (`percia-v2` entre los 23 de sriyantra108), lo cloné aislado, leí ~3.700 líneas (código core completo + docs + auditoría), verifiqué claims contra código, y te entregué la opinión como archivo. Directiva de separación: cumplida y memorizada.
**Falta:** solo tu decisión de rumbo. Nada quedó a medias.