2.2 KiB
2.2 KiB
JUPYTER HABILITADO EN ESTE ANALISIS
Reglas OBLIGATORIAS para Claude
1. CODIGO INMUTABLE — NUNCA MODIFICAR CELDAS EXISTENTES
- PROHIBIDO usar NotebookEdit para reemplazar celdas existentes
- SIEMPRE anadir celdas NUEVAS al final del notebook
- Si hay un error en una celda, crear celda nueva con la correccion
- El historial de trabajo debe quedar intacto para trazabilidad
2. PROGRAMACION FUNCIONAL OBLIGATORIA
- Funciones puras: sin efectos secundarios, mismo input -> mismo output
- Inmutabilidad: nunca mutar datos, crear copias transformadas
- Composicion: funciones pequenas que se combinan
- Preferir:
map,filter,reduce, list comprehensions - Evitar: loops con mutacion,
global, modificar argumentos in-place
3. SIEMPRE usar MCP jupyter para ejecutar codigo Python
- Las ejecuciones se ven en tiempo real en Jupyter Lab del usuario
- Compartimos variables y estado del kernel
- NUNCA usar bash para ejecutar Python en este analisis
4. Verificar Jupyter activo ANTES de ejecutar
- Si no esta activo: pedir al usuario que ejecute
./run-jupyter-lab.sh
5. Gestion de notebooks
- Notebooks en la carpeta
notebooks/o subcarpetas - Si un notebook tiene >50 celdas, crear uno nuevo
- Nombrar descriptivamente:
01_exploracion.ipynb,02_limpieza.ipynb
6. Gestion de Python
- SIEMPRE usar
uvpara gestionar dependencias - Anadir paquetes con
uv add nombre_paquete
7. Acceso al fn_registry
FN_REGISTRY_ROOTapunta a la raiz del registry- Para importar funciones Python:
sys.path.insert(0, os.path.join(os.environ["FN_REGISTRY_ROOT"], "python", "functions")) - Para consultar registry.db:
sqlite3oimport sqlite3con la ruta$FN_REGISTRY_ROOT/registry.db
Contexto del analysis
Este analysis explora bases de datos de grafos con dos objetivos:
- Benchmark tecnico: comparar backends de grafos embebidos (Kuzu, NetworkX, SQLite+CTEs, RDFLib, igraph) en insercion, queries de traversal, persistencia
- LLM retrieval: evaluar como
claude -ppuede formular queries y recuperar datos de cada backend, midiendo correctitud y complejidad
El grafo de prueba es el propio fn_registry: funciones como nodos, dependencias (uses_functions/uses_types) como aristas.