---
name: init-jupyter
description: Inicializa entorno Jupyter para exploración de datos con MCP compartido. Autodetecta puerto y configura repo.
argument-hint: [ruta-proyecto]
disable-model-invocation: true
user-invocable: true
allowed-tools: Bash, Read
---

# Inicializar Entorno Jupyter para Data Science

Skill para preparar cualquier repo para exploración de datos con Jupyter + Claude colaborando en kernel compartido.

## Instrucciones para el agente

**Todo el trabajo está automatizado en `setup-jupyter.sh`.** Solo ejecuta el script y comunica el resultado.

### Paso único: Ejecutar el script

```bash
# Obtener ruta del script (está junto a este SKILL.md)
# Resolver via symlink a la ubicación real del skill (portable entre máquinas)
SKILL_DIR="$(dirname "$(readlink -f "$HOME/.claude/skills/init-jupyter/SKILL.md")")"

# Ejecutar con la ruta del proyecto (argumento del skill o directorio actual)
bash "$SKILL_DIR/setup-jupyter.sh" "${1:-.}"
```

### Interpretar el resultado

El script imprime una línea `STATUS:` al final:

| STATUS | Significado | Qué decir al usuario |
|--------|-------------|---------------------|
| `READY` | Todo configurado y Jupyter corriendo | "Jupyter ya está listo. Puedes empezar a trabajar con notebooks via MCP." |
| `CONFIGURED_NOT_RUNNING` | Configurado pero Jupyter no corre | "Todo configurado. Ejecuta `./run-jupyter-lab.sh` en otra terminal para iniciar Jupyter." |
| `CONFIGURED` | Recién configurado | Mostrar los pasos siguientes que imprime el script |

### Si hay errores

- Si el script falla, leer el error y ayudar al usuario
- Problemas comunes:
  - `jq` no instalado → el merge de `.mcp.json` puede fallar
  - `uv` no disponible → usa pip como fallback
  - Puerto ocupado → el script autodetecta otro

## Archivos que crea el script

| Archivo | Propósito |
|---------|-----------|
| `run-jupyter-lab.sh` | Lanzador de Jupyter con autodetección de puerto |
| `.mcp.json` | Config MCP con ruta absoluta al ejecutable local |
| `.claude/CLAUDE.md` | Reglas para que Claude use MCP en lugar de bash |
| `.jupyter-port` | Puerto actual (creado al ejecutar Jupyter) |

## Regla crítica: MCP siempre local

El script instala `jupyter-mcp-server` en `.venv/bin/` del proyecto, NUNCA globalmente.
Si detecta instalación global, la elimina automáticamente.
