Saltar al contenido

El ecosistema

Estructura del ecosistema

Todos los Purutos conviven en ~/purutos/. Cada carpeta es un repo git independiente:

~/purutos/
├── puruto-data/ ← bóveda privada de datos (OBLIGATORIO)
├── puruto-telegram/ ← conector móvil (opcional)
├── puruto-cron/ ← scheduler local (opcional)
├── puruto-gateway/ ← API REST local (opcional)
├── puruto-finanzas/ ← tu app de finanzas
├── puruto-salud/ ← tu app de salud
└── puruto-notas/ ← tu app de notas

puruto-data — la bóveda de datos

puruto-data es el repo central de almacenamiento del ecosistema. Ningún Puruto escribe directamente en la carpeta de otro — todos pasan por puruto-data.

~/purutos/puruto-data/
├── CLAUDE.md ← reglas de acceso y gestión
├── puruto-finanzas/ ← datos propiedad de puruto-finanzas
├── puruto-salud/ ← datos propiedad de puruto-salud
├── puruto-notas/ ← datos propiedad de puruto-notas
└── shared/ ← datos cross-dominio (acceso controlado)

Cada Puruto lo encuentra en ../puruto-data/ por defecto, o mediante PURUTO_DATA_PATH en su .env.

puruto-telegram — el conector móvil

puruto-telegram es un bot de Telegram que actúa como router determinista hacia todos tus Purutos. El enrutamiento no usa IA — se basa en un “canal activo” por usuario:

/finanzas → activa puruto-finanzas como canal activo
/salud → activa puruto-salud como canal activo
"gasté 50€" → se envía a puruto-finanzas (canal activo)
"fui al gym" → se envía a puruto-salud (canal activo)

El teclado persistente de Telegram muestra siempre el canal activo y permite cambiar rápido.

puruto-cron — el scheduler local

puruto-cron gestiona jobs asíncronos del ecosistema. Usa SQLite para persistencia y soporta:

  • Programación de jobs con cron expressions
  • Lease/lock para evitar ejecuciones duplicadas
  • Retries por job con backoff
  • Notificaciones JSONL locales + replicación opcional al inbox de puruto-telegram

puruto-gateway — la API REST

puruto-gateway expone los comandos base (init, help, list, status) de todos los Purutos activos a través de una API REST local. Útil para integrar Purutos con herramientas externas o scripts.

/workspace — el punto de entrada único

La skill /workspace (del framework) te permite orquestar todos tus Purutos desde un único punto de entrada. Sin tener que cargar cada repo por separado:

/workspace → lista todos los Purutos en ~/purutos/
/workspace puruto-finanzas → activa y habla con puruto-finanzas
/workspace status → muestra el estado de todo el ecosistema

Generación de repos especiales

Ventana de terminal
# Repos especiales del ecosistema
python3 .claude/skills/puruto-generator/scripts/generate.py --name puruto-data
python3 .claude/skills/puruto-generator/scripts/generate.py --name puruto-telegram
python3 .claude/skills/puruto-generator/scripts/generate.py --name puruto-cron
python3 .claude/skills/puruto-generator/scripts/generate.py --name puruto-gateway

O simplemente ejecuta /init que los genera todos de una vez.