Decision: second-brain — grafo de conocimiento sin Astro
Fecha: 2026-08-15 Dominio: IA/ML
Decisión
Soltar Astro. El “segundo cerebro” es el grafo de nodos (content/nodes/*.md
content/projects/*.mdcon edges tipados), no un sitio web. La superficie son dos vistas derivadas de un JSON emitido por un script — Docs (curriculum DataCamp) y Cloud (esfera explorable) — más una capa de memoria para agentes (AGENTS.md,prompts/).
Contexto
Partí de astro-starter-template (“knowledge-os”, un grafo de aprendizaje IA/ML
sobre Astro 5 + Cloudflare con edges tipados y derivaciones en build). El centro
de gravedad se movió de “sitio que renderiza el grafo” a “archivos que el agente
edita + una nube que exploro”. Astro solo aportaba (a) validación de schema e
integridad referencial y (b) render de páginas — ambos portables a ~200 líneas
de script. Lo demás (build system, MDX, RSS, adapter Cloudflare) era peso muerto.
Dónde vive cada cosa
| Memoria | Lugar |
|---|---|
| Conceptos / papers / tools / modelos / etc. | ~/Proyectos/2nd-brain/content/nodes/*.md (130) |
| Proyectos (qué construyo, qué skill otorgan) | content/projects/*.md (7) |
| Decisiones | ~/nef/decisions/ (69) |
| Self-model (creencias, patrones, metas) | ~/nef/mirror.md + ~/nef/roadmap.md |
| Prompts reusables del agente | 2nd-brain/prompts/ (6) |
| Portafolio (trabajo visual shippeado) | repo separado Viscose-carousel |
Arquitectura (cero framework, una dep)
2nd-brain/
content/{nodes,projects}/*.md # el estado, versionado en Git
lib/graph.mjs # parse (gray-matter) + integridad + backlinks + rutas + deuda
lib/curriculum.mjs # secciones → courses (componentes conexos) → chapters (depth)
lib/thumbs.mjs # SVG por nodo (color kind + grid topográfico + glifo + nivel)
lib/tokens.mjs # kinds, glifos, colores, rels
scripts/build.mjs # → dist/{graph,curriculum}.json + thumbs/*.svg + copia site/
site/ # SPA vanilla: docs (DataCamp) + cloud (esfera) + detalle de nodo
node scripts/build.mjs deriva todo; la integridad referencial rompe el build
si un edge/grant/uses apunta a un slug inexistente. El mapeo DataCamp:
track = sección → course = componente conexo de edges → chapter = etapa de
prerrequisitos → node = ejercicio (glifo ○◐◑●), con “start/continue” en el
siguiente no-mastered y ruta de prerrequisitos por nodo.
Correr
cd ~/Proyectos/2nd-brain
npm run build # deriva dist/
npm run dev # npx serve dist → localhost:3000Tradeoffs / reversión
- Se pierde: el render Astro de páginas (dashboard, /paths, /docs como HTML).
Reversión posible: el contenido
.mdes idéntico; si algún día se quiere SSR/type-safety,lib/*.mjsse re-porta a Astro en una sesión. - Se gana: cero build-framework, un solo JSON derivado, agente ↔ memoria sin fricción (editas y está), superficie client-side con tu identidad visual.
Pendiente (registrado, no ejecutado)
- Retirar
use-claude/openclaw-supermemory(nube, contradice local-first) yuse-opencode/knowledge-cloud(template React pelado).claude-sidekick(MCP a Ollama) se queda. - Hosting público (Cloudflare Pages) solo cuando quieras URL — para el momento “witnessed”.
- Tarjetas de proyectos en la nube (hoy solo nodos).
Related
~/nef/mirror.md,~/nef/roadmap.mdastro-starter-template(archivado como referencia)Viscose-carousel(portafolio, separado)