I5 — Plataforma wiki Supercontexto + fix tools MCP (sesión 27)
Cierre de la iniciativa I5 del plan post-audit (sesiones 26-27, 2026-04-25). Con esta iniciativa queda completo el plan post-audit I1–I5 de CreaRack Pro. Cubre cuatro sub-bloques funcionales: ampliación de la UI wiki, re-tagging masivo de product, fix de rendimiento en bib_doc_coverage y fix funcional en bib_list_endpoints.
Sub-bloques completados
I5-1 · UI wiki [...slug].astro
Ampliaciones al renderer de páginas wiki del workspace Astro:
| Componente | Detalle |
|---|---|
| TOC flotante | h2/h3 extraídos del body; visible en desktop ≥1400px, oculto en mobile. |
| Backlinks | Lista de pages cuyo campo related[] incluye el slug actual. Cross-corpus. |
| Metadata badges | Header muestra type, status, last_verified, tags clicables. |
| Next / Prev | Navegación por mismo product + category, ordenada por order y slug. |
Mobile: TOC colapsado, navegación apilada.
I5-2 · Re-tagging masivo de product (90 pages)
- Causa: 94 pages carecían del campo
product, haciéndolas invisibles a los menús.astroy al Help Widget de CreaRack-Pro (que filtra porproduct). - Proceso: subagente Opus generó
I5-product-retagging-plan.jsoncon 91 propuestas (94 detectadas − 3 meta-pages sin etiquetar). Script Python idempotente aplicó 90 actualizaciones (1 ya tenía product), 0 errores. - Distribución:
crearack-tech42 ·supercontext40 ·workspace4 ·crearack3 ·workspace-tech2. - Plan archivado en
public/supercontext/audit-2026-04-25/I5-product-retagging-plan.json.
I5-3 · Fix bib_doc_coverage — N+1 → single JOIN
Problema: el handler ejecutaba 1 query por nodo (3839 nodos × 1 query D1 = subrequest budget overflow CF Workers), causando HTTP 429.
Solución implementada en functions/api/mcp/handlers/biblioteca.ts:
SELECT
n.id, n.qualified_name, n.node_type, n.app, n.display_name,
MAX(CASE WHEN e.edge_type = 'documents' THEN 1 ELSE 0 END) AS has_doc
FROM bib_nodes n
LEFT JOIN bib_edges e ON (e.source_id = n.id OR e.target_id = n.id)
WHERE n.node_type != 'doc'
GROUP BY n.id
Una sola query reemplaza el loop. El campo has_doc (0/1) separa documentados de no-documentados en memoria.
I5-4 · Fix bib_list_endpoints — lee de bib_nodes
Problema: la tabla bib_endpoints estaba vacía (nunca repoblada tras un cambio del indexer). La tool siempre devolvía [].
Solución: refactor para leer directamente de bib_nodes WHERE node_type='endpoint' y parsear method, path y operationId desde el campo metadata JSON. Verificado: 496 endpoints accesibles.
// Antes
SELECT ep.*, n.qualified_name, n.app FROM bib_endpoints ep JOIN bib_nodes n ...
// Ahora
SELECT id, qualified_name, display_name, app, metadata
FROM bib_nodes WHERE node_type = 'endpoint'
La decisión arquitectónica de abandonar bib_endpoints como fuente primaria está documentada en [[decision—20260425—bib-endpoints-leer-bib-nodes]].
Sub-bloque diferido (I5-5)
Edges documents para 496 endpoints — diferido a Fase 8 (Enrichment Agent del blueprint).
Motivos:
- El fix de I5-4 ya resuelve el problema operativo (endpoints listables).
- Generación automática de edges requiere parser de menciones path con validación de false positives — trabajo no trivial.
- Encaja mejor en el blueprint del Enrichment Agent que en una sesión de cierre.
Deuda registrada explícitamente en public/supercontext/STATE.md.
Pendientes operativos post-I5
- 5
concept--general--*con tagarchived-from-query— candidatas awiki_delete_page(decisión de @Esquembri). - Posible duplicado:
feature--supercontext--fase-6-metricas-utility-scorevsfeature--supercontext--fase-6-metricas-utility(fusionar/borrar — decisión de supervisor). - 5 ADRs draft de I3 pendientes de revisión y promote a
activepor @Esquembri. - Toggle
BIBLIOTECARIO_PAUSADO=truepuede desactivarse para volver a modo operativo.
Véase también
- [[decision—20260425—bib-endpoints-leer-bib-nodes]]
- [[feature—supercontext—plan-post-audit-i4-onboarding-help-widget]]
- [[concept—supercontext—biblioteca-mcp-tools]]
- [[entity—supercontext—handler—biblioteca-mcp]]
- [[concept—supercontext—grafo-conocimiento]]