feat(episode): TRAZA_qu-pasa-con-mantenimiento-memoria-agent_S20260602.R18_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD

Skill: NONE | Type: troubleshooting
Summary: EPISODIO 18 — Prompt Injection: Qué pasa con `mantenimiento-memoria-agent` (hard
This commit is contained in:
Ember 2026-06-06 11:01:59 +00:00
parent efb9371566
commit 7631a2e4ef

View file

@ -0,0 +1,54 @@
---
episode_id: "75319904-ec57-4216-94be-1f19927ad5e1"
puente_flat: "TRAZA_qu-pasa-con-mantenimiento-memoria-agent_S20260602.R18_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD"
session_code: "S20260602.GRAFO_GRAPHIFY_CURADURIA"
acto_dialogico: "informar"
actor_flujo: "multi_actor"
criticidad_aegis: "low"
skill_dominante: "NONE"
fase_proyecto: "operations"
tipo_semantico: "troubleshooting"
summary_one_line: "EPISODIO 18 — Prompt Injection: Qué pasa con `mantenimiento-memoria-agent` (hard_fact, verif"
source_type: "claude_code"
trust_boundary: "internal"
created_at: "2026-06-06T11:01:30.159579+00:00"
relectura_tagged: false
forgejo_commit_sha: "pending"
---
Verificado. Aquí está el panorama completo del rol #23.
## Qué pasa con `mantenimiento-memoria-agent` (hard_fact, verificado en disco)
| Dimensión | Los 22 nativos | `mantenimiento-memoria-agent` (#23) |
|---|---|---|
| Ubicación | `.claude/agents/*.md` | `skills/mantenimiento-memoria-agent/CLAUDE.md` (skill, NO agente) |
| Modelo de invocación | **on-demand** (Agent tool) | **singleton autónomo** (cron diario) |
| Inyección spec-kit/constitution | ✅ SÍ (confirmado R24) | ❌ **NO** (generador no lo recorre) |
| Activación | viva en este boot | ❌ **inactivo** — su "activación" = el cron, que está DIFERIDO |
No es un error ni un olvido: es **deliberado**. El #23 no se despacha bajo demanda como los otros 22 — está diseñado para correr **solo, cada día a las 06:00 Bogotá, por un scheduler**. Su "estar activo" depende de que exista ese reloj, y ese reloj es justamente **Camino C / T-003**, que dejaste diferido esperando tu decisión de seguridad. Efecto colateral: como el generador spec-kit solo recorrió `.claude/agents/`, este skill tampoco recibió el digest constitucional.
## La decisión que esto destapa (PRÓLOGO)
**Reframe:** la pregunta real no es "¿por qué hay un agente inactivo?" sino "¿qué hacemos con el único rol cuyo binding constitucional falta **y** cuya activación depende de infraestructura que aún no provisionamos?".
**La historia:** el sprint activó+cableó los 22 on-demand. El #23 se dejó fuera a propósito (otro modelo de invocación), y su cron quedó esperando tu juicio A/B. Son dos faltantes con costo y riesgo muy distintos:
| Faltante | Costo de cerrarlo | Riesgo | Reversibilidad |
|---|---|---|---|
| **Binding** (inyectar constitution-mini al skill) | bajo (~1 edit + extender generador) | mínimo | trivial (`git checkout`) |
| **Activación** (provisionar el cron) | medio | **decisión de seguridad** A) n8n-ember+socket-proxy (↑blast radius) vs B) cron host (más seguro) | media |
**Mi inclinación + qué la cambiaría:** cerrar **ya** el binding (barato, reversible, elimina la asimetría) y **mantener el cron diferido a tu decisión A/B**. Lo que la voltea: si quieres zanjar A/B ahora, hago las dos en un mismo turno.
**Pregunta esencial (solo tú la decides):** ¿inyecto ahora la constitution-mini al skill #23 y dejamos el cron para tu decisión A/B después — o prefieres que abordemos primero la decisión de seguridad del cron (n8n-ember vs host), que es lo único que de verdad lo pone "activo"?
## 📌 PILA-PENDIENTES (R25) — COMPACT
🟢 **Z-001** [R24] FASE 2 binding 22 nativos → CONFIRMADO ✅
🟠 **B-005** [R25+grep] `mantenimiento-memoria-agent` SIN inyección constitution-mini (generador no lo recorre) [hard_fact] → fix barato pendiente tu OK
🟠 **T-003** [POSTA #3] Camino C cron — **DECISIÓN ABIERTA A/B** (lo que activa el #23) [pendiente tu juicio]
🟠 **T-002** [POSTA #2] FASE 3 hooks (regen ARIADNA + verificador + telemetría) [pendiente]
🟡 **T-004** deuda heredada ~1211 edits backup BLINDADA-29 [pendiente tu OK]
❓ — (1 abierta: binding-ya del #23 vs resolver primero cron A/B)