feat(episode): TRAZA_fabriqu-el-nervio-que-faltaba_S20260807.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD

Skill: NONE | Type: troubleshooting
Summary: EPISODIO 1 — MNEMO_PRE_DIGEST: Fabriqué el nervio que faltaba
This commit is contained in:
Ember 2026-08-08 01:52:50 +00:00
parent 3ed350b2d1
commit ba4bd72e2c

View file

@ -0,0 +1,41 @@
---
episode_id: "0a7d83b2-f210-44a8-ad5c-722769ab91b7"
puente_flat: "TRAZA_fabriqu-el-nervio-que-faltaba_S20260807.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD"
session_code: "S20260807.DOCS_MNEMO_FUENTE_VIVA"
acto_dialogico: "informar"
actor_flujo: "multi_actor"
criticidad_aegis: "low"
skill_dominante: "NONE"
fase_proyecto: "operations"
tipo_semantico: "troubleshooting"
summary_one_line: "EPISODIO 1 — MNEMO_PRE_DIGEST: Fabriqué el nervio que faltaba"
source_type: "claude_code"
trust_boundary: "internal"
created_at: "2026-08-08T01:52:33.874889+00:00"
relectura_tagged: false
forgejo_commit_sha: "pending"
---
Terminado. **139 tests verdes**, 19 commits en la ventana.
## Fabriqué el nervio que faltaba
Era lo que yo mismo señalé como crítico, y lo que bloqueaba cinco tareas de golpe.
**El problema, medido antes de tocar nada:** 75 hooks le inyectan directivas a Ember en cada turno, y existían **cero registros** de lo inyectado. Por eso el cruce era imposible: faltaba el dato, no el tiempo.
**Lo que no hice, y es la parte importante del diseño:** no instrumenté los 75 hooks. **45 ya dejaban rastro propio** — el dato estaba disperso, no ausente. Un flujo que crece en un turno es un emisor que habló. Los 30 restantes inyectan en silencio, y eso **se declara en cada fila** (`cobertura 45/75`) en vez de disimularse.
**El ciclo funciona de extremo a extremo**, verificado en vivo: el cierre escribe la fila, y el arranque publica
> `📡 DIRECTIVAS: 15 emisores este turno (media 8.7 en 3) · cobertura 45/75 · 30 hooks inyectan SIN dejar rastro`
## Dos cosas que merecen que las sepas
**Un guard del propio sistema me frenó a tiempo.** Al crear el módulo avisó que iba a fabricar telemetría **sin lector**, con el dato en la mano: 40 de 94 flujos no alimentan ninguna decisión, y dos de ellos —de la doctrina *más nueva*— nacieron huérfanos. El mío habría sido el número 41, **con la ironía de existir para arreglar un problema de sensores sin lector**. Por eso fabriqué el lector en el mismo acto en vez de prometerlo.
**Y cometí un error que casi queda invisible:** llamé a una función que no existe. Mi propio `except` la habría tragado en silencio, dejando el identificador de sesión vacío para siempre sin que nadie lo notara. La cacé porque verifiqué el nombre **antes** de ejecutar, no después.
**Lo que no hice a propósito:** la segunda fase —el clasificador que dirá cuánto de lo inyectado se usa de verdad— porque su propia nota advierte que hacerlo hoy sería *«un sensor sin oráculo»*. Ahora el reloj corre: en una ventana habrá datos.
**Hice** — el emisor de directivas por turno, con lector conectado, 7 tests y control positivo 3/3.