diff --git a/.claude/CLAUDE.md b/.claude/CLAUDE.md index b185fc4..34b58a0 100644 --- a/.claude/CLAUDE.md +++ b/.claude/CLAUDE.md @@ -42,6 +42,12 @@ master ← siempre deployable **Feature flags** (solo para features multi-issue): codigo completo y testeado, mergeado pero desactivado. Flag != WIP. Archivo: `dev/feature_flags.json`. +## Pipeline de creacion de agentes (12 pasos) + +Todo agente/robot debe pasar por: scaffold → build → register → verify E2EE → [convert robot] → auto-avatar → display name → personalize → rebuild → start → health check → self-introduce. Los pasos 1-7 los ejecuta `create-full.sh`. Detalle completo en `.claude/rules/create_agent.md`. + +Env var clave: `DEVELOPER_MATRIX_USERS` — el propio bot envia DM de bienvenida a estos usuarios. + ## Estructura ``` diff --git a/.claude/skills/create-agent/SKILL.md b/.claude/skills/create-agent/SKILL.md index 05714e6..0944004 100644 --- a/.claude/skills/create-agent/SKILL.md +++ b/.claude/skills/create-agent/SKILL.md @@ -47,16 +47,21 @@ Para **robots** (command-only, sin LLM): ./dev-scripts/agent/create-full.sh "" --type robot ``` -El script ejecuta automaticamente: +El script ejecuta automaticamente los pasos 1-7 del pipeline formalizado: 1. **Scaffold**: copia `_template/`, personaliza archivos, actualiza launcher 2. **Build**: compila con `go build -tags goolm ./...` 3. **Register**: crea usuario Matrix, genera token + password + pickle key 4. **Verify E2EE**: genera cross-signing keys, recovery key 5. **(robots)** **Convert**: convierte a robot (config minimo, sin prompts, `command_prefix: ""`) -6. **Notify**: envia DM a los developers (`DEVELOPER_MATRIX_USERS` en `.env`) presentandose +6. **Auto-avatar**: genera y aplica foto de perfil +7. **Display name**: configura nombre visible en Matrix +8. **Notify**: el propio bot envia DM de bienvenida a los devs (`DEVELOPER_MATRIX_USERS`) Si alguna etapa falla, revisar el error y corregir antes de continuar. +**Pasos 8-12 (post-script)**: personalizar archivos, recompilar, arrancar, health check, self-introduce. +Ver `.claude/rules/create_agent.md` para el pipeline completo de 12 pasos. + ### Paso 3: Personalizar agent.go Reemplazar el contenido de `agents//agent.go` segun el tipo: @@ -134,24 +139,42 @@ go build -tags goolm ./... Si falla, corregir el error y reintentar. -### Paso 7: Checklist final +### Paso 7: Rebuild + arranque (pasos 9-10) + +```bash +go build -tags goolm ./... +./dev-scripts/server/start.sh # o restart.sh si ya esta corriendo +``` + +### Paso 8: Health check + self-introduce (pasos 11-12) + +```bash +./dev-scripts/agent/health-check.sh +./dev-scripts/agent/notify-developer.sh "" +``` + +El health check verifica que el bot arranco (busca `"runner started"` en logs). +El notify hace que el propio bot envie DM de bienvenida a los devs. + +### Paso 9: Checklist final Verificar y reportar al usuario: - [ ] `go build -tags goolm ./...` compila sin errores - [ ] `agents//agent.go` exporta `Rules()` y es puro (sin I/O) - [ ] `agents//config.yaml` tiene `agent.id` coincidiendo con el directorio -- [ ] `cmd/launcher/main.go` tiene import + rulesRegistry con el mismo ID +- [ ] `cmd/launcher/main.go` tiene blank import del paquete del agente - [ ] `.env` contiene las 4 env vars: `MATRIX_TOKEN_`, `MATRIX_PASSWORD_`, `PICKLE_KEY_`, `SSSS_RECOVERY_KEY_` - [ ] `prompts/system.md` tiene contenido real y seccion de seguridad - [ ] Si `tool_use.enabled: true`, el prompt menciona las tools +- [ ] Health check pasa +- [ ] Bot envio bienvenida a los devs (o `DEVELOPER_MATRIX_USERS` no configurado) Informar al usuario: ``` -Agente creado. Para arrancar: - ./dev-scripts/server/start.sh +Agente creado y activo. -Archivos a revisar: +Archivos: agents//agent.go — reglas agents//config.yaml — configuracion agents//prompts/system.md — system prompt diff --git a/.claude/skills/create-bot/SKILL.md b/.claude/skills/create-bot/SKILL.md index 4adc2fe..904ac26 100644 --- a/.claude/skills/create-bot/SKILL.md +++ b/.claude/skills/create-bot/SKILL.md @@ -40,15 +40,18 @@ Si `$ARGUMENTS` contiene el bot-id, usarlo directamente: `$0` = bot-id, `$1` = d ./dev-scripts/agent/create-full.sh "" --type robot ``` -Este script ejecuta 6 etapas automaticamente: +Este script ejecuta los pasos 1-7 del pipeline formalizado: 1. **Scaffold**: crea agent.go, config.yaml, prompts/ desde template 2. **Build**: verifica compilacion con `-tags goolm` 3. **Register**: registra usuario Matrix, genera token + password + pickle key 4. **Verify E2EE**: genera cross-signing keys + recovery key 5. **Convert**: convierte a robot (config minimo, sin prompts, sin LLM, `command_prefix: ""`) -6. **Notify**: envia DM a los developers (DEVELOPER_MATRIX_USERS) presentandose +6. **Auto-avatar**: genera y aplica foto de perfil +7. **Display name**: configura nombre visible en Matrix +8. **Notify**: el propio bot envia DM de bienvenida a los devs Si alguna etapa falla, revisar el error y corregir antes de continuar. +Pipeline completo (12 pasos): ver `.claude/rules/create_agent.md`. ### Paso 3: Personalizar config @@ -113,7 +116,16 @@ go build -tags goolm ./... Si falla, corregir y reintentar. -### Paso 6: Checklist final +### Paso 6: Arrancar + health check + self-introduce (pasos 9-12) + +```bash +go build -tags goolm ./... +./dev-scripts/server/start.sh # o restart.sh +./dev-scripts/agent/health-check.sh +./dev-scripts/agent/notify-developer.sh robot "" +``` + +### Paso 7: Checklist final Verificar y reportar al usuario: @@ -121,20 +133,20 @@ Verificar y reportar al usuario: - [ ] `agents//agent.go` exporta `Rules()` que retorna `nil` - [ ] `agents//config.yaml` tiene `agent.type: robot` y `agent.id` coincide con directorio - [ ] `cmd/launcher/main.go` tiene import del paquete del bot -- [ ] `.env` contiene las 4 env vars: `MATRIX_TOKEN_`, `MATRIX_PASSWORD_`, `PICKLE_KEY_`, `SSSS_RECOVERY_KEY_` +- [ ] `.env` contiene las 4 env vars - [ ] No existe `agents//prompts/` (robots no necesitan system prompt) - [ ] Si tiene comandos custom, estan registrados en el launcher +- [ ] Health check pasa +- [ ] Bot envio bienvenida a los devs Informar al usuario: ``` -Robot creado. Para arrancar: - ./dev-scripts/server/start.sh +Robot creado y activo. Comandos built-in: help, ping, status, info, version Comandos custom: -(Sin prefijo ! — el robot acepta comandos directamente) -Archivos a revisar: +Archivos: agents//config.yaml — configuracion agents//commands.go — comandos custom (si aplica) ```