CreaRack-SL

I5 — Plataforma wiki Supercontexto + fix tools MCP (sesión 27)

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:

ComponenteDetalle
TOC flotanteh2/h3 extraídos del body; visible en desktop ≥1400px, oculto en mobile.
BacklinksLista de pages cuyo campo related[] incluye el slug actual. Cross-corpus.
Metadata badgesHeader muestra type, status, last_verified, tags clicables.
Next / PrevNavegació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 .astro y al Help Widget de CreaRack-Pro (que filtra por product).
  • Proceso: subagente Opus generó I5-product-retagging-plan.json con 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-tech 42 · supercontext 40 · workspace 4 · crearack 3 · workspace-tech 2.
  • 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:

  1. El fix de I5-4 ya resuelve el problema operativo (endpoints listables).
  2. Generación automática de edges requiere parser de menciones path con validación de false positives — trabajo no trivial.
  3. 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 tag archived-from-query — candidatas a wiki_delete_page (decisión de @Esquembri).
  • Posible duplicado: feature--supercontext--fase-6-metricas-utility-score vs feature--supercontext--fase-6-metricas-utility (fusionar/borrar — decisión de supervisor).
  • 5 ADRs draft de I3 pendientes de revisión y promote a active por @Esquembri.
  • Toggle BIBLIOTECARIO_PAUSADO=true puede 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]]