feat(episode): TRAZA_lo-entregado-2-capas-poblaciones-distint_S20260621.R3_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD
Skill: NONE | Type: troubleshooting Summary: EPISODIO 3 — BLINDADAS: Lo entregado (2 capas, poblaciones distintas)
This commit is contained in:
parent
454f33eee3
commit
08dd1381b8
1 changed files with 48 additions and 0 deletions
|
|
@ -0,0 +1,48 @@
|
|||
---
|
||||
episode_id: "85756ed4-d250-44f1-a7fa-bfedcf600369"
|
||||
puente_flat: "TRAZA_lo-entregado-2-capas-poblaciones-distint_S20260621.R3_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD"
|
||||
session_code: "S20260621.CRONICA_SEMANAL_C15"
|
||||
acto_dialogico: "informar"
|
||||
actor_flujo: "multi_actor"
|
||||
criticidad_aegis: "low"
|
||||
skill_dominante: "NONE"
|
||||
fase_proyecto: "operations"
|
||||
tipo_semantico: "troubleshooting"
|
||||
summary_one_line: "EPISODIO 3 — BLINDADAS: Lo entregado (2 capas, poblaciones distintas)"
|
||||
source_type: "claude_code"
|
||||
trust_boundary: "internal"
|
||||
created_at: "2026-06-21T22:24:49.284906+00:00"
|
||||
relectura_tagged: false
|
||||
forgejo_commit_sha: "pending"
|
||||
---
|
||||
|
||||
✅ Hecho — **los dos, y sí: se necesitan ambos, tu razonamiento es exacto.** El hook solo cubre Claude Code; la memoria/doc cubre a TODAS las instancias (incluida Ember-AI en claude.ai, que no tiene hooks). Son complementarios, no redundantes.
|
||||
|
||||
## Lo entregado (2 capas, poblaciones distintas)
|
||||
|
||||
**🟡 Capa memoria/doc — protege a TODAS las instancias (incl. claude.ai):**
|
||||
- `docs/REGLA_IDENTIFICADORES_CROSS_STORE.md` — regla canónica path-estable.
|
||||
- `memory/reference_cross_store_id_rule.md` — memoria recall-able (aflora cuando una instancia trabaje cross-store).
|
||||
- Línea índice en **MEMORY.md** (se carga cada boot) + **auto-sincronizada al servidor** `cx43:/home/johnember/data/` → las instancias claude.ai que leen del servidor también la ven.
|
||||
|
||||
**🔴 Capa determinista — protege a Claude Code (hooks):**
|
||||
- `.claude/hooks/pre-tool-cross-store-id-guard.py` — detecta el cruce por `episode_id` sin `puente_flat` y emite `ask` con la regla.
|
||||
- **Testeado 4/4** (ask / allow-si-usa-puente / allow-.md / allow-sin-ids).
|
||||
- **Registrado en settings.json + JSON validado (válido) → LIVE** (hooks 79→80).
|
||||
|
||||
Si una instancia futura intenta escribir un cruce por `episode_id`, el hook la frena con la regla — y si no tiene hooks (claude.ai), la memoria + doc la informan. Doble red.
|
||||
|
||||
## Pendientes (menores, los registro)
|
||||
- ⚠️ **Drift INFRA_MANIFEST:** settings.json (80) vs INFRA_MANIFEST.yaml (77) — mi hook + 2 pre-existentes sin sincronizar. Deuda advisory; puedo sincronizar los 3 (otro edit D3) si quieres.
|
||||
- ⚠️ **Push triple-remoto pendiente:** bloqueado por un detect-secrets/baseline de OTRA instancia (no mío). Los artefactos existen + funcionan localmente; coordino el push cuando se libere la baseline.
|
||||
|
||||
### 📍 PARA JOHN — R4
|
||||
- **Respondido + hecho:** los dos. Tu intuición (memoria para instancias sin hooks como claude.ai) es correcta — por eso ambos.
|
||||
- **Vivo ahora:** el guardrail determinista en Claude Code + la regla en memoria/doc/servidor para el resto.
|
||||
- **Tu decisión (opcional):** 🟢 cerrar aquí (guardrail completo) · 🟡 sincronizo INFRA_MANIFEST (cierra el drift de los 3 hooks) · ⚪ coordino el push triple-remoto ahora.
|
||||
|
||||
📌 **PILA-PENDIENTES (R4)**
|
||||
- ✅ RESUELTA · guardrail cross-store id (doc + memoria + MEMORY.md + hook live).
|
||||
- 🟡 MEDIUM · **G-MANIFEST-001** sincronizar INFRA_MANIFEST hooks_active (3 hooks drift: cross-store-id-guard + 2 pre-existentes).
|
||||
- 🟡 MEDIUM · **G-PUSH-001** push triple-remoto (bloqueado baseline detect-secrets de otra instancia).
|
||||
- ⚪ LOW · corregir frase engañosa "episode_id da basura" en doc MAPA (DLC AVISO).
|
||||
Loading…
Reference in a new issue