CreaRack-SL

Biblioteca — Hypercontexto

Conceptoactiveverificado 2026-04-15

Biblioteca — Hypercontexto

Concepto

La Biblioteca es un grafo de conocimiento que mapea codigo a documentacion. Permite al agente IA consultar contexto de forma precisa sin cargar toda la documentacion en la ventana de contexto.

Problema que resuelve: En proyectos grandes (500+ endpoints), la documentacion supera la ventana de contexto. La Biblioteca permite consultar solo lo relevante, bajo demanda.

Arquitectura

Codigo fuente
    ↓ (indexacion)
Knowledge Graph (nodos + edges)
    ↓ (busqueda)
MCP Tools (bib_*)
    ↓ (respuesta)
Claude Code (contexto bajo demanda)

Nodos

TipoEjemploFuente
endpointGET /api/users/OpenAPI
modelUserCode + AST
serviceAuthServiceCode
schemaUserOutOpenAPI
templatedashboard.htmlCode
js_moduleApiService.jsCode
docAUTHENTICATION.mdDoc indexer
moduleracks.modelsAST (archivo .py)
classRackServiceAST (clase no-modelo)
methodDevice.get_power_usageAST (metodo)
functionrack_listAST (funcion standalone)

Edges (relaciones)

RelacionEjemploConfidence
documentsdoc → endpointEXTRACTED
uses_modelendpoint → modelEXTRACTED
calls_serviceendpoint → serviceEXTRACTED
callsfunction → function (AST call graph)EXTRACTED
importsmodule → module (Python imports)EXTRACTED
inheritsclass → base classEXTRACTED
containsmodule → class, class → methodEXTRACTED
defines_schemaschema → endpointEXTRACTED
semantically_similar_toconcept → concept (futuro)INFERRED

Confianza en edges

Cada relacion tiene un nivel de confianza:

  • EXTRACTED (score 1.0) — determinista, del AST o indexacion directa
  • INFERRED (score 0.5) — inferido por LLM (futuro)
  • AMBIGUOUS (score 0.2) — requiere revision humana

El BFS de bib_impact_query soporta filtro min_confidence para excluir edges poco fiables.

Stack recomendado

ComponenteRolAlternativas
Cloudflare D1Almacenamiento del grafoSQLite, PostgreSQL
Workers AI (bge-m3)Embeddings para busqueda semanticaOpenAI embeddings
Cloudflare Pages FunctionsMCP serverExpress, FastAPI
Gemini FlashSintesis de respuestas (ask)Claude Haiku

MCP Tools

Consulta

ToolProposito
bib_context_queryBriefing de un modulo (modelos, endpoints, docs)
bib_impact_queryQue docs afecta un cambio de archivo
bib_search_nodesBuscar nodos por nombre/tipo/app
bib_get_nodeDetalle de un nodo con relaciones
bib_app_summaryResumen de una app
bib_doc_coverageQue tiene y que falta documentacion
bib_stale_reportNodos desactualizados
bib_statsEstado general del grafo

Busqueda semantica (Archivo Maestro)

ToolProposito
bib_search_semanticBusqueda vectorial por embeddings
bib_askPregunta en lenguaje natural → respuesta sintetizada
bib_index_chunksIndexar documentos con embeddings

Graphify (AST + Comunidades)

ToolProposito
bib_index_astIndexar estructura de codigo Python (clases, funciones, calls, imports)
bib_call_graphTrazar callers/callees de una funcion
bib_compute_communitiesDetectar clusters via Label Propagation
bib_get_communityDetalle de una comunidad o comunidad de un nodo
bib_coupling_reportDetectar acoplamiento entre comunidades

Mantenimiento

ToolProposito
bib_register_nodeRegistrar nuevo nodo
bib_create_edgeCrear relacion (con confidence)
bib_report_changeMarcar docs para revision tras commit
bib_index_codeIndexar modelos/servicios en batch

Flujo obligatorio en cada commit

PasoCuandoTool
1. ContextoAntes de editarbib_context_query(topic="<app>")
2. ImpactoAntes de commitbib_impact_query(file_path="<ruta>")
3. ReporteAntes de commit (Fase 2 Supercontexto — Abril 2026)bib_report_change(file_path="<ruta>", change_type="modified")

Cambio 2026-04-20: el Paso 3 pasa de “despues de commit” a “antes de commit”. El hook scripts/harness/bib_report_check.py (instalado vía claude-method/harness/install_hooks.sh) bloquea el commit si un archivo de codigo MODIFIED no tiene bib_report_change en los ultimos 10 minutos. Bypass puntual: BIB_SKIP=1 git commit (el bypass queda registrado en /biblioteca/pulse).

Robustez del handler bib_report_change (fix 2026-04-20)

Dos bugs descubiertos durante el rodaje de Fase 2 y corregidos en el commit f34983e:

  1. Chunking D1 bind limit: bfsImpact ahora trocea las queries con IN (...) en batches de 90. Archivos con muchos nodos (ej. core/models.py con 26+ modelos) dejaron de disparar D1_ERROR: too many SQL variables.

  2. Registro sin nodos indexados: si el archivo no tiene nodos todavia (archivo nuevo, reindex pendiente), el handler crea igualmente una entrada centinela en bib_index_runs + bib_change_log (node_id NULL, new_value=file_path). /api/biblioteca/recent-reports usa LEFT JOIN + COALESCE para verlos. Consecuencia: el hook pre-commit no bloquea archivos nuevos-y-luego-modificados aunque el reindex aun no los haya recogido.

Endpoints de soporte (añadidos Abril 2026)

EndpointAuthProposito
GET /biblioteca/hot + /api/biblioteca/hotCF Access / BearerHot cache del proyecto (actividad, alertas, tareas, grafo, commits, drift, bypasses)
GET /api/biblioteca/recent-reports?since=NBearerPaths con bib_report_change en los ultimos N segundos. Consumido por bib_report_check.py
GET /biblioteca/drift + /api/biblioteca/driftCF Access / BearerSnapshot de docs desactualizados
POST /api/biblioteca/drift-run?dry_run=0|1BearerEjecuta drift + persiste alert rolling. Invocado por cron diario
POST /api/biblioteca/skip-logBearerRegistra bypasses de BIB_SKIP en activity_log

Resultados reales

En CreaRack Pro (Abril 2026):

  • ~3100 nodos indexados (496 endpoints, 198 schemas, 79 modelos, 168 docs, 256 modulos, 308 clases, 588 metodos, 981 funciones)
  • ~7500 edges (3339 calls, 1956 contains, 641 imports, 1577 anteriores)
  • 1489 chunks con embeddings
  • Busqueda semantica sobre 58 paginas de wiki
  • Comunidades auto-detectadas via Label Propagation
  • Confianza EXTRACTED/INFERRED/AMBIGUOUS en cada edge

Origen: Graphify

Ideas adaptadas de safishamsi/graphify:

  1. AST profundo con ast builtin (en vez de tree-sitter) — zero deps, Python-only
  2. Confianza en edges — score 0.0-1.0 por relacion
  3. Deteccion de comunidades — Label Propagation en TypeScript (in-worker, <100ms)

Véase también

  • [[crearack-tech—backend—biblioteca]]
  • [[concept—workspace—supercontexto-02-bibliotecario]]
  • [[crearack-tech—guides—biblioteca-guide]]