Volver a la wiki

Reconciliación D1 ← repo del Bibliotecario-Ingest

User value

Cualquier edición directa a src/content/wiki/*.md (sea manual de Edu/Dani, de un subagente, de un script) queda automáticamente reflejada en la base de datos D1 sin necesidad de pasar por Sonnet. Antes de este fix, ediciones masivas del repo (típicamente en commits supercontext: o docs:) provocaban drift D1↔repo: el lint reportaba orphans y stale fantasma mientras el repo estaba correcto. La reconciliación cierra ese gap de forma determinista, gratuita y sin tocar el LLM.

Problema observado (sesión 18, 2026-04-23)

Durante el enriquecimiento de 18 pages hub (commit c4eaaff) para cerrar las 15 orphans detectadas por wiki_lint_bulk, el Ingest hizo skip pre-LLM (correctamente: el commit era supercontext:). Resultado: el repo tenía related enriquecido con backlinks a las 15 orphans, pero bib_wiki_pages.related en D1 seguía con el valor antiguo. El lint siguió reportando las mismas 15 orphans aunque el Obsidian graph view sí las mostraba conectadas.

Causa raíz: los dos únicos caminos que actualizan D1 son (a) Sonnet procesando el commit vía MCP wiki_update_page, (b) skills/curator invocando tools MCP explícitamente. Ninguno se dispara en un skip pre-LLM o Haiku, aunque el commit haya tocado páginas wiki.

Diseño

Nuevo branch en bib_ingest.py que se ejecuta tras cualquier skip y propaga campos metadata del front-matter del repo a D1 vía MCP:

Integración

Llamada en los dos puntos de skip del pipeline 3-tier:

El summary del skip se enriquece con | reconcile: N D1 pages synced cuando N > 0, visible en el Pulse en tiempo real.

Validación end-to-end (sesión 18)

Tres commits de test progresivos sobre el workspace:

En total, 15 pages pasaron de “orphan en D1” a conectadas sin un solo token LLM gastado en el propio reconcile.

Decisiones

Limitaciones conocidas

Véase también

Subir