CreaRack-SL

Hardening del Bibliotecario · PR4 — Enriquecimiento automático de backlinks (wiki_enrich_related)

Descripción ejecutiva

Cuarto y último PR del hardening del Bibliotecario-Ingest: introducción del enrichment agent wiki_enrich_related, que automáticamente propone y aplica backlinks (related[]) para páginas wiki con ese campo vacío. Cierra la trilogía de automatismos: Ingest (creación) → Lint (validación) → Enrich (enriquecimiento de grafo).

Variante cron-sin-Queues: similar al lint nocturno, sin dependencia en CF Queues ni Batch API — paginación secuencial desde OPS.

Contexto

En Supercontexto, la wiki es el corazón del grafo de conocimiento. Pero muchas pages nuevas se crean sin backlinks iniciales (related: []), lo que:

  • Las deja aisladas en Obsidian (no se navegan)
  • Reduce la utilidad del grafo para devs
  • Requiere trabajo manual para conectarlas retroactivamente

El Bibliotecario-Ingest ya crea pages (PR1), el Lint ya las valida (PR2/PR3). El paso siguiente es enriquecerlas automáticamente.

Solución

Flujo de PR4

  1. Definición del tool MCP wiki_enrich_related en functions/api/mcp/handlers/wiki.ts (~160 LOC)
  2. Registro en tools catalog functions/api/mcp/tools.ts (description + input schema)
  3. Seguridad por defecto: dry_run=true — aunque se mergee, no escribe NADA hasta explícitamente validado
  4. Primer dry-run: Edu revisa las sugerencias, confirma calidad
  5. Activación gradual: habilitar dry_run=false en OPS, monitorear, iterar

Algoritmo del enrichment

Para cada página status:active con related vacío:

  1. Búsqueda de candidatos:

    • Si tiene tags: busca otras pages con tags compartidas
    • Si no: busca por mismo type (entity, concept, feature, etc.)
    • Límite: 25 candidatos
  2. LLM (Haiku):

    • Prompt: titulo página + lista candidatos
    • Respuesta: 2-4 backlinks genuinamente relacionados (JSON)
    • Grounding: valida que los slugs existan en candidatos (no inventa)
  3. Escritura:

    • Reemplaza SOLO la línea related: en el front-matter (quirúrgico)
    • Actualiza sección `

Véase también

  • [[entity—biblioteca—tool—wiki-enrich-related]]
  • [[feature—supercontext—bibliotecario-lint-fase-5]]
  • [[concept—workspace—supercontexto-02-bibliotecario]]
  • [[decision—20260422—lint-two-tier]]
  • [[feature—supercontext—reconcile-d1-repo]]