Puente extracción → nodos second-brain (chatgpt + design_chats + twitter)
Fecha: 2026-09-22. Estado: primera pasada hecha y verificada (9 nodos adoptados).
Origen: ~/nef/second-brain-twitter/reports/extraccion-*.md.
Qué se construyó
- Script puente:
~/nef/second-brain-twitter/scripts/reports_to_enrich.py- Extrae los bloques del apartado 3.2 Nodos candidatos de cada report.
- Parsea frontmatter tolerante (cita valores con
:que el LLM dejó crudos y rompían YAML — el bug real de 11 bloques endata-004/data-006). - Normaliza al contrato del nodo:
kindválido,status,level 0–5, slug kebab-case, edges validados (untoinexistente se elimina y pasa aopen_questions), dedupe por slug (conserva el cuerpo más largo). - Escribe borradores
_enrich/<slug>.md+<slug>.meta.json(staging, no tocacontent/nodes/).--drypara inspeccionar;--report <ruta>persiste el reporte.
- Reporte de inventario:
reports/puente-nodos-2026-09-22.md.
Resultado de la pasada
- 89 reports escaneados · 105 bloques leídos · 104 slugs únicos · 0 errores.
- 13 nodos marcados
needs_review(kind inválido normalizado o edges descartados). - Reparto temático: solo 9 son AI/ML (por tags); los otros 95 son
infra/personal (SDF hosting, dominios, turismo, lavadora…) → quedan en
_enrich/. - Todos los bloques salieron huérfanos (
edges: []): el prompt de extracción no recibió la lista de slugs existentes. Por eso hubo un pase de enlace manual.
Nodos adoptados (9) → content/nodes/
status: unseen, level: 0 (capturas nuevas; promover con npm run node:log).
| slug | edges (curados contra el grafo) |
|---|---|
arquitectura-de-agencias-modular | multi-agent-systems (generalizes), ai-agents (requires) |
arquitectura-hibrida-nosql-agentes-ia | vector-db, nosql-database (requires), rag (applies) |
claude-fable-autonomia-en-desarrollo | ai-app-builders (applies), ai-coding-assistants (requires) |
groq-gpt-oss-series-limits-latency-profile | large-language-models (requires), model-deployment (applies) |
hybrid-local-cloud-orchestration-strategy | model-selection (applies), model-deployment (requires) |
infraestructura-de-datos-para-agentes | web-scraping (requires), model-context-protocol (applies) |
llm-social-monitor-architecture | large-language-models, web-scraping (requires), embeddings (applies) |
principio-de-er-first-para-vibre-coding | database-schema-design (requires), data-modeling (applies) |
tunneler-y-red-mesh | model-deployment (applies) |
3 kind corregidos a concept (venían de compuestos model|architecture,
model, algorithm): arquitectura-hibrida-nosql-agentes-ia,
hybrid-local-cloud-orchestration-strategy, llm-social-monitor-architecture.
Verificación: npm run build → 390 nodos (381+9), 0 edges colgantes.
Pendientes que arrastra
- 95 borradores en
~/nef/second-brain/_enrich/(mode: extraccion-bridge), sin adoptar. Decidir: rutear acontent/journal/(capa privada), descartar, o adoptar un subconjunto con enlace manual. claude-convsigue en 0/111 reports (no había nada de claude-conv para el puente; solodesign_chatsde Claude aportó 1 nodo).- Los 9 adoptados tienen cuerpo corto (varios sin Mecanismo/Límite);
npm run enrich -- --doctrinepuede expandirlos.
⚠ Concurrencia detectada (2026-09-22 ~23:57)
Hay otra sesión de opencode (ses_f4318aa48ffe…) corriendo en loop
npm run enrich --doctrine --limit 12 sobre second-brain, con sleep 240 entre
lotes, y auto-commitea (queue-enrich: progreso …, log en /tmp/enrich-batch.log).
Efecto: su git add -A barrió los 104 drafts de _enrich/ a sus commits
(p. ej. 62639f5). Los 9 nodos adoptados seguían untracked al cierre; el
siguiente ciclo de esa cola los commiteará también.
No se tocó ese proceso. Antes de seguir: decidir si esa cola debe pausarse para no mezclar commits automáticos con la adopción manual.
Reanudar
cd ~/nef/second-brain-twitter
python3 scripts/reports_to_enrich.py --dry # ver qué saldría
python3 scripts/reports_to_enrich.py # escribir _enrich/