Pendientes — social-silo: chunks Claude/ChatGPT y análisis
Fecha: 2026-09-27
Repo: ~/nef/social-silo
Estado: extracción ChatGPT completa; extracción Claude EN CURSO.
Pipeline (real, verificado)
exports/{claude,chatgpt} → *_export_split.py → /tmp/*-conv/*.md (chunks)
→ scripts/extract_exports.py (Ollama qwen3.5:9b, num_ctx 32768, MAX_BYTES 60000)
→ reports/extraccion-*.md
→ scripts/reports_to_enrich.py → ~/nef/second-brain/_enrich/
→ (revisión manual) → ~/nef/second-brain/content/nodes/
Prompt de extracción: ~/nef/decisions/[CREDENCIAL].md
Readiness de chunks (2026-09-27)
| Fuente | Conversaciones | Tamaño | Chunks | Reportes | Estado |
|---|---|---|---|---|---|
| ChatGPT | 107 | 4.27 MB | 72 | extraccion-chatgpt-conv-001..072 | ✅ extraído (sin huecos) |
| Claude | 175 | 6.58 MB | 111 | extraccion-claude-conv-* | ❌ 0 → extracción en curso |
Nota: /tmp/chatgpt-conv y /tmp/claude-conv se purgan con el sistema. Regenerar
con los splitter scripts (idempotentes) antes de re-extraer.
Pendientes
- Claude, extraer 111 chunks — en curso: PID 33808, log
/tmp/claude-ext.log. Salida esperada:reports/extraccion-claude-conv-001..111.md. Idempotente:emit()salta reportes existentes >200B, reanudable. - Puente reports → _enrich con los reports de Claude:
python3 scripts/reports_to_enrich.py(escaneareports/extraccion-*.md). - Revisar 13 nodos ⚠ (
needs_review: trueen_enrich/*.meta.json). - Promover
_enrich/→content/nodes/— staging, hoy nada se ha movido. Actual: 260 en_enrich/, 390 encontent/nodes/. - Sanitizar:
python3 scripts/sanitize.py reports/extraccion-*.md. - Git: 100 cambios sin commitear (
reports/extraccion-*,exports/untracked).exports/pesa ~600 MB (zips + json) → confirmar.gitignore.
Comandos
# regenerar chunks (si /tmp se purgó)
python3 scripts/claude_export_split.py exports/claude/conversations.json /tmp/claude-conv
python3 scripts/chatgpt_export_split.py exports/chatgpt /tmp/chatgpt-conv
# extracción (reanudable)
python3 scripts/extract_exports.py ~/nef/decisions/[CREDENCIAL].md /tmp/claude-conv
# puente a staging + saneo
python3 scripts/reports_to_enrich.py
python3 scripts/sanitize.py reports/extraccion-*.mdMonitoreo
tail -f /tmp/claude-ext.log # progreso
kill 33808 # detener (reanudable)
ls reports/extraccion-claude-conv-*.md | wc -lPolítica de cruces (instrucción 2026-09-27)
Van a existir cruces entre fuentes. No cerrar nodos/edges cuando lleguen desde Claude (quedan 2 cuentas extra fuera del silo). Reglas:
- El bridge fusiona por
slug(report más largo gana, lista dereportsse acumula). - Edges cuyo destino aún no existe se conservan como
open_questions(nunca se borran). - Nada se promueve a
content/nodes/hasta cerrar todas las fuentes.
Análisis materializado (2026-09-27)
Staging separado para no clobber _enrich/ (había 3 colisiones con nodos no-bridge):
reports/_bridge-2026-09-27/— 106 nodos (chatgpt=83, data=20, claude=2, design=1).reports/puente-nodos-2026-09-27.md— tabla del bridge.reports/cruces-2026-09-27.md— cruces y abiertos:- 1 cruce real:
observatorio-de-la-web-independiente(conv-012 + conv-014). - duplicados probables:
observatorio-de-la-web-independiente==observatorio-web-independiente(J=1.0) ysitio-qd-je-observatorio-de-la-web-independiente(J=0.5) → unificar sin cerrar. - 13 nodos ⚠ (kind inválido → fallback): revisión manual.
- 9 slugs ya existen en
content/nodes/(colisión) y 104 coinciden con_enrich/.
- 1 cruce real:
- El LLM emite
edges: []: el grafo sale sin aristas. Los cruces reales vendrán de Claude + las 2 cuentas; hoy no hay edges que perder. reports/edges-propuestos-2026-09-27.md+reports/_bridge-2026-09-27/_edges-propuestos.json— 636 aristas “related” propuestas (nomic-embed-text, sim ≥ 0.62; 🔵 ≥ 0.82) y 3 pares same-as por slug (tríoobservatorio-*). Nada escrito aedges:.
Unificación promovida (2026-09-27)
Se unificó el trío observatorio-* (dos conceptos duplicados + su implementación):
content/nodes/observatorio-de-la-web-independiente.md— concept, consolida conv-011/012/013/014;aliases: [observatorio-web-independiente].content/nodes/sitio-qd-je-observatorio-de-la-web-independiente.md— experiment,implements → observatorio-de-la-web-independiente(primer edge real del lote).- Build ✅
npm run build: 392 nodos, sin dangling ni rels inválidas.
Bridge alias-aware: scripts/reports_to_enrich.py lee aliases: de
content/nodes/ y colapsa el slug entrante al canónico (106 → 105 slugs en la
re-corrida). Así, cuando lleguen nodos de Claude y de las 2 cuentas extra, los
duplicados fusionan en el canónico en vez de crear nodos paralelos.
Traído al second-brain (2026-09-27)
Objetivo declarado: unificar el silo (social-silo/experiments → second-brain → nodo.ws) en un solo knowledge-factory.
- 16 experiments del staging →
content/nodes/(validando aristas; ninguna quedó dangling). Todo el conjuntokind: experimentque faltaba. - 7 nodos del frente dataviz (la capa DVS entra al grafo):
vega-lite,vega-altair,geopandas,matplotlib-journey,bostock(person),the-pudding,the-economist-graphic-detail(concept). Con doctrina (Mecanismo/Límite/Ejercicio) y 3 aristasrequires(vega-altair→vega-lite, geopandas→pandas, matplotlib-journey→matplotlib). - Build ✅
npm run build: 415 nodos, sin dangling. - Nota:
content/resources/sigue local-only; en el jardín los nodos ganan en colisión de título (garden.mjs). Esto extiende el AGENTS.md (que solo declaraba al frente datavizd3/observable/flourish/matplotlibcomo nodos) — pendiente actualizar AGENTS si la unificación sigue.
Plan de fusión (dicho por Nef)
social-silo/experiments → second-brain (este) → publicar en nodo.ws.
Al terminar la extracción de Claude y sumar las 2 cuentas extra, re-correr el
bridge+cruces y promover lo que corresponda.