MCP Tool: wiki_utility_recompute
Qué hace
Recalcula el campo utility_score de todas las páginas wiki con status IN ('active', 'draft') agregando los eventos registrados en la tabla bib_wiki_utility dentro de una ventana temporal configurable (since_days, default 30 días).
Las páginas sin eventos recientes quedan con score = 0, lo que actúa como penalización natural para contenido poco consultado. El score es un entero que representa la suma de weight de todos los eventos del período.
Parámetros
| Parámetro | Tipo | Default | Descripción |
|---|---|---|---|
since_days | number | 30 | Ventana de tiempo en días para agregar eventos |
dry_run | boolean | false | Si true, calcula sin aplicar cambios en D1 |
Tipos de evento (bib_wiki_utility)
event | Cuándo se registra |
|---|---|
query_hit | La página aparece como fuente en una respuesta de bib_ask (registrado en handlers/archivo.ts) |
ingest_reference | El Bibliotecario-Ingest referencia la página en un sources[] |
manual_link | Enlace manual explícito desde otra página |
lint_verify | El Lint verifica la página con last_verified actualizado |
Respuesta
{
"since_days": 30,
"pages_checked": 65,
"updates": 12,
"dry_run": false,
"top": [
{ "slug": "feature--supercontext--fase-4-query-con-cierre", "score": 8, "events": 5 },
...
]
}
Implementación
- Handler:
functions/api/mcp/handlers/wiki.ts→ funciónwikiUtilityRecompute() - Registro MCP:
functions/api/mcp/index.ts→LOGGED_TOOLS['wiki_utility_recompute'] - Definición tool:
functions/api/mcp/tools.ts - D1 read:
bib_wiki_utility(GROUP BY page_slug, SUM weight) +bib_wiki_pages(status active/draft) - D1 write:
UPDATE bib_wiki_pages SET utility_score = ?en batches de 50 statements
Disparo automático
El workflow .github/workflows/wiki-utility.yml ejecuta este tool vía MCP HTTP diariamente a las 06:00 UTC, tras los jobs de Lint (04:30) y Curator (05:00). También es invocable manualmente vía workflow_dispatch.
04:30 UTC wiki-lint.yml → genera eventos lint_verify
05:00 UTC wiki-curator.yml → genera eventos curate
06:00 UTC wiki-utility.yml → agrega todo y actualiza utility_score
Health check
/api/health incluye una fila “Wiki Supercontexto” (añadida en Fase 6) que muestra utility_score del top-1 en el campo insight cuando el sistema está en verde. Color RED si hay contradicciones abiertas, AMBER si stale > 10% o draft > 20%.
Notas
- El log de operación se inserta en
bib_wiki_logconactor = 'agent-utility'yoperation = 'curate'. - Con
dry_run = trueel log no se inserta (preview limpio). - El batch de updates se chunka en 50 statements para respetar el límite razonable de D1.
Véase también
- [[feature—supercontext—fase-6-metricas-utility-score]] — fase del Supercontexto que introdujo esta tool y el
utility_score - [[feature—supercontext—fase-6-metricas-utility]] — notas complementarias de la fase 6
- [[entity—mcp—tool—wiki-lint-bulk]] — tool hermana que corre antes (04:30) y genera eventos
lint_verify - [[entity—mcp—tool—wiki-lint-contradictions]] — otra tool del set Bibliotecario-Lint
- [[concept—biblioteca—supercontexto]] — arquitectura global del sistema de bibliotecarios latentes