feat(episode): DEPURA_estado-de-la-corrida-graphifyopenrouter_S20260607.R41_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD

Skill: TESSERA | Type: troubleshooting
Summary: EPISODIO 41 — BLINDADAS: Estado de la corrida graphify+OpenRouter
This commit is contained in:
Ember 2026-06-08 19:41:44 +00:00
parent e1ec082f07
commit 29f8915517

View file

@ -0,0 +1,56 @@
---
episode_id: "15ed7c88-9af7-438d-9571-20d51bd86c09"
puente_flat: "DEPURA_estado-de-la-corrida-graphifyopenrouter_S20260607.R41_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD"
session_code: "S20260607.MNEMO_BUG_FORENSE_MAP"
acto_dialogico: "informar"
actor_flujo: "multi_actor"
criticidad_aegis: "low"
skill_dominante: "TESSERA"
fase_proyecto: "operations"
tipo_semantico: "troubleshooting"
summary_one_line: "EPISODIO 41 — BLINDADAS: Estado de la corrida graphify+OpenRouter"
source_type: "claude_code"
trust_boundary: "internal"
created_at: "2026-06-08T19:40:49.341640+00:00"
relectura_tagged: false
forgejo_commit_sha: "pending"
---
Decisión de eficiencia: **paro de monitorear** — la corrida va **limpia y sana** (3/13 chunks, cero errores de JSON = el fix funcionó) pero es lenta (~3-4 min/chunk vía OpenRouter; ETA ~30-40 min para los 13). Seguir con sleeps largos quema contexto sin valor. La corrida es **detached, sobrevive** todo. Te reporto y la recojo cuando termine.
## Estado de la corrida graphify+OpenRouter
| Aspecto | Estado |
|---|---|
| **Causa raíz del fallo previo** | ✅ diagnosticada: doble truncación (input 20K/archivo + output 16K tokens) |
| **Fix aplicado** | ✅ 24 archivos split (<12.4KB) + `--token-budget 6000` (~2/chunk) + `MAX_OUTPUT_TOKENS 32000` + `claude-sonnet-4.6` |
| **Key OpenRouter** | ✅ extraída del git local (73 chars), subida por SFTP al servidor (no expuesta en chat) |
| **Corrida actual** | 🟢 **viva, limpia**`run3`, 3/13 chunks done, **cero** errores JSON (vs 100% fallo antes) |
| **Modo** | detached (`docker exec -d`) — sobrevive SSH/sesión |
| **ETA** | ~30-40 min (OpenRouter ~3-4 min/chunk; concurrencia limitada por rate) |
## Lo que haré cuando termine (autónomo)
1. Verificar `run3.log``DONE rc=0` + `output3/graph.json` con nodos > 0.
2. Traer el `graph.json` al repo local (`docs/grafo-indice-output/graph-v2-openrouter.json`).
3. Comparar nodos/aristas vs el determinista (304/280) — el de OpenRouter debería traer **más aristas semánticas** (el valor que le faltaba al determinista).
4. Commit + push 3 repos.
**Está corriendo sola.** Házme ping en ~40 min (o cuando quieras) con "revisa el grafo" y te traigo el resultado + la comparación. Si falla algún chunk, el log lo dirá y lo retomo.
**Aprendizajes guardados en la TOOLBOX** (lo que pediste) — commit `96b6e58`, push a los 3 repos.
## Lo que quedó documentado en `docs/TOOLBOX.md`
Nueva subsección **"graphify sobre DIGESTS GRANDES — doble truncación + `--token-budget`"** con:
- **Root cause** del fallo: graphify 0.8.33 trunca input a 20K chars/archivo (`llm.py:274`) + output a `max_tokens 16384`.
- **El lever clave** `--token-budget`: bajo (6000 ≈ 2 archivos/chunk) = extracción limpia; alto (24000) = ciclo derrochador truncar→partir.
- **La receta verificada** completa (split <12K en frontera de nodo + `GRAPHIFY_MAX_OUTPUT_TOKENS=32000` + model-id verificado en catálogo).
- **4 gotchas:** el `
C1 INFRA_MANIFEST ██████████░░ FRESH (113/117 OK + 2 drift)
C2 INFRA_DYNAMIC ████████████ FRESH (1.6h al boot)
C3 TOOLBOX ████████████ OK (TOOLBOX disponible)
C4 Rules+Skills ████████████ OK (BLINDADAS + 71 skills (69 CLAUDE.md + 2 SKILL.md))
C5 Hooks ████████████ ACTIVE (186 hooks .py registrados)
C6 wiki-MEMORIA ██████░░░░░░ PARCIAL (sync 1d ago)
```