feat(episode): TRAZA_hecho-john-el-contrato-nico-ya-existe_S20260610.R9_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD
Skill: TESSERA | Type: reflection
Summary: EPISODIO 9 — LEXICON_COSECHA: ✅ Hecho, John — el contrato único ya existe como C
This commit is contained in:
parent
fadfe037b7
commit
65201b3cfc
1 changed files with 35 additions and 0 deletions
|
|
@ -0,0 +1,35 @@
|
||||||
|
---
|
||||||
|
episode_id: "c9273ff0-b6eb-4c2d-b74f-d0fb7f9928a9"
|
||||||
|
puente_flat: "TRAZA_hecho-john-el-contrato-nico-ya-existe_S20260610.R9_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD"
|
||||||
|
session_code: "S20260610.SELFAWARENESS_MISION_CRITICA"
|
||||||
|
acto_dialogico: "informar"
|
||||||
|
actor_flujo: "multi_actor"
|
||||||
|
criticidad_aegis: "low"
|
||||||
|
skill_dominante: "TESSERA"
|
||||||
|
fase_proyecto: "operations"
|
||||||
|
tipo_semantico: "reflection"
|
||||||
|
summary_one_line: "EPISODIO 9 — LEXICON_COSECHA: ✅ Hecho, John — el contrato único ya existe como CÓDIGO de p"
|
||||||
|
source_type: "claude_code"
|
||||||
|
trust_boundary: "internal"
|
||||||
|
created_at: "2026-06-11T23:00:06.984644+00:00"
|
||||||
|
relectura_tagged: false
|
||||||
|
forgejo_commit_sha: "pending"
|
||||||
|
---
|
||||||
|
|
||||||
|
# ✅ Hecho, John — el contrato único ya existe como CÓDIGO de producción: **[scripts/memory_writer.py](scripts/memory_writer.py)** (commit `c913ef5`, push 3/3, desplegado en el servidor MEMORIA)
|
||||||
|
|
||||||
|
## El efecto alzheimer, eliminado
|
||||||
|
|
||||||
|
Tu razonamiento era exacto: sin memoria operativa, solo el código commiteado sobrevive entre instancias. Ahora el contrato no es una idea de este chat — es un módulo importable:
|
||||||
|
|
||||||
|
- **`CanonicalEpisode`** — EL schema (los campos canónicos, `validate()` que rechaza lo que viole el contrato, y `episode_id` **determinista derivado del sha del contenido**: mismo contenido → mismo id, en cualquier instancia, para siempre).
|
||||||
|
- **`MemoryWriter`** — EL camino único de grabación: dedup por sha **antes** de embeber (no gastar tokens en duplicados) → embed una sola vez → Qdrant + PostgreSQL + Neo4j con el mismo id y el mismo `embedding_model_id` por punto.
|
||||||
|
- **Invariantes I-MW1..I-MW5 escritos y testeados** — los que hoy nadie garantizaba: key canónica `content` (nunca más `body`/`content_text`), modelo desde UNA fuente env (jamás hardcode), 1 contenido = 1 punto en cada store.
|
||||||
|
|
||||||
|
**Verificación (no de palabra):** tests **7/7 PASS** (3 propiedades Hypothesis + 4 unit) · 1 bug real cazado y arreglado durante los tests (registro `sys.modules` para dataclasses) · smoke en servidor: `IMPORT_OK` y la cadena de config resolviendo — hoy devuelve `gemini-embedding-001` (el fallback correcto pre-formateo); cuando corra el formateo, leerá `gemini-embedding-2` del env compartido que el paso 2 crea. Y la prueba bonita del anti-alzheimer: **el mismo episodio produce el mismo `episode_id` (`c1d13f59-…`) en Windows y en Linux** — el contrato es portable de verdad.
|
||||||
|
|
||||||
|
Las "reparaciones más adelante" que anticipaste son exactamente el wiring: que `crisol_run.py` y ember-mcp dejen sus caminos propios y llamen esta librería (pasos 7-8, coordinación R-CAT-2). El contrato ya los espera.
|
||||||
|
|
||||||
|
📌 **PILA-PENDIENTES (R12):** 🔴 2do GO `--execute --yes-formateo` (sesión fresca) · 🟠 wiring crisol/mcp → `memory_writer` (R-CAT-2) · 🟡 B15 LEXICON_COSECHA antes del cierre + heredados
|
||||||
|
|
||||||
|
📁 **BITÁCORA S20260610.SELFAWARENESS_MISION_CRITICA.R12:** 📖 READ scripts/MAP.md (gate) · 🆕 WRITE memory_writer.py (+280) + test_memory_writer.py (+90) · 🧪 TEST_POST: `pytest test_memory_writer.py` → ERROR colección → fix sys.modules → **7 passed** · 🧪 TEST_POST: `python memory_writer.py` → smoke puro OK (id determinista + 16 keys) · ⚡ BASH scp → servidor + smoke `IMPORT_OK model_id=...001` (fallback correcto) · ⚡ BASH commit `c913ef5` + push origin/forgejo/sriyantra 3/3
|
||||||
Loading…
Reference in a new issue