Files

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 uv para gestionar dependencias
  • Anadir paquetes con uv add nombre_paquete

7. Acceso al fn_registry

  • FN_REGISTRY_ROOT apunta 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: sqlite3 o import sqlite3 con la ruta $FN_REGISTRY_ROOT/registry.db

Contexto del analysis

Este analysis explora bases de datos de grafos con dos objetivos:

  1. Benchmark tecnico: comparar backends de grafos embebidos (Kuzu, NetworkX, SQLite+CTEs, RDFLib, igraph) en insercion, queries de traversal, persistencia
  2. LLM retrieval: evaluar como claude -p puede 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.