docs: regla delete_agent.md y cierre de issue 0048

Nueva regla .claude/rules/delete_agent.md con instrucciones completas
para eliminar agentes (manual y automatizado). Actualiza index.md,
CLAUDE.md y cierra issue 0048.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-10 23:44:42 +00:00
parent 50013b0ecb
commit 98da4f7521
5 changed files with 279 additions and 1 deletions
+137
View File
@@ -0,0 +1,137 @@
# Policy: Eliminar un agente o robot
Guia ejecutable para Claude. Seguir paso a paso sin desviarse.
## Pipeline de eliminacion (7 pasos)
Revierte todo lo que `create-full.sh` genera:
```
1. VALIDATE → verificar que el agente existe
2. STOP → detener el proceso si esta corriendo
3. DEACTIVATE → desactivar usuario Matrix (Synapse admin API)
4. REMOVE IMPORT → eliminar blank import del launcher
5. REMOVE ENV VARS → eliminar las 4 env vars del .env
6. DELETE FILES → borrar directorio del agente + runtime files
7. REBUILD → recompilar el launcher
```
## Ruta rapida — script automatizado
```bash
# Con confirmacion interactiva
./dev-scripts/agent/delete-full.sh <agent-id>
# Sin confirmacion (automatizacion)
./dev-scripts/agent/delete-full.sh <agent-id> --force
# Preservar usuario Matrix (soft delete, puede recrearse)
./dev-scripts/agent/delete-full.sh <agent-id> --keep-matrix
```
El script ejecuta los 7 pasos en orden. Si algun paso falla de forma no-fatal, continua con los siguientes.
## Inputs — preguntar al usuario si no los da
| Input | Requerido | Default | Ejemplo |
|-------|-----------|---------|---------|
| `agent-id` | si | — | `wikipedia-bot` |
| `--force` | no | false | sin confirmacion |
| `--keep-matrix` | no | false | preserva usuario Matrix |
## Scripts atomicos disponibles
Cada paso es un script independiente reutilizable:
| Script | Que hace |
|--------|----------|
| `dev-scripts/agent/deactivate-matrix.sh <id>` | Desactiva usuario Matrix via Synapse admin API |
| `dev-scripts/agent/remove-launcher-import.sh <id>` | Elimina blank import de cmd/launcher/main.go |
| `dev-scripts/agent/remove-env-vars.sh <id>` | Elimina las 4 env vars del .env |
## Que se elimina
| Artefacto | Creado por | Eliminado por |
|-----------|-----------|---------------|
| `agents/<id>/` (agent.go, config.yaml, prompts/, data/) | `new-agent.sh` | delete-full.sh paso 6 |
| Blank import en `cmd/launcher/main.go` | `new-agent.sh` | `remove-launcher-import.sh` |
| `MATRIX_TOKEN_<NORM>` en .env | `register.sh` | `remove-env-vars.sh` |
| `MATRIX_PASSWORD_<NORM>` en .env | `register.sh` | `remove-env-vars.sh` |
| `PICKLE_KEY_<NORM>` en .env | `register.sh` | `remove-env-vars.sh` |
| `SSSS_RECOVERY_KEY_<NORM>` en .env | `verify.sh` | `remove-env-vars.sh` |
| Usuario Matrix `@<id>:<server>` | `register.sh` | `deactivate-matrix.sh` |
| Cross-signing keys + crypto store | `verify.sh` | Eliminados con `data/crypto/` |
| Avatar y display name | `auto-avatar` | Se eliminan al desactivar usuario Matrix |
| PID file, log files | Runtime | delete-full.sh paso 6 |
## Eliminacion manual (sin script)
Si el script no esta disponible o falla, estos son los pasos manuales:
### 1. Detener el agente
```bash
# Buscar PIDs
pgrep -f "launcher.*agents/<id>/config.yaml"
# Matar procesos
kill <PID>
```
### 2. Desactivar usuario Matrix
```bash
curl -X POST "${MATRIX_HOMESERVER}/_synapse/admin/v1/deactivate/@<id>:${MATRIX_SERVER_NAME}" \
-H "Authorization: Bearer ${MATRIX_ADMIN_TOKEN}" \
-H "Content-Type: application/json" \
-d '{"erase": false}'
```
### 3. Eliminar import del launcher
Editar `cmd/launcher/main.go` y borrar la linea:
```go
_ "github.com/enmanuel/agents/agents/<id>"
```
### 4. Eliminar env vars
Borrar de `.env`:
```
MATRIX_TOKEN_<NORM>=...
MATRIX_PASSWORD_<NORM>=...
PICKLE_KEY_<NORM>=...
SSSS_RECOVERY_KEY_<NORM>=...
```
### 5. Eliminar archivos
```bash
rm -rf agents/<id>/
rm -f run/<id>.pid run/<id>.log
rm -rf logs/<id>/
```
### 6. Recompilar
```bash
go build -tags goolm ./...
```
## Disable vs Delete
- **`remove.sh`** (disable): marca `enabled: false` en config.yaml. El agente no arranca pero todos los archivos, datos y usuario Matrix se preservan. Reversible.
- **`delete-full.sh`** (delete): elimina todo. Irreversible (excepto con `--keep-matrix`).
Usar `remove.sh` cuando se quiere desactivar temporalmente. Usar `delete-full.sh` cuando se quiere eliminar permanentemente.
## Proteccion contra agentes del sistema
Los directorios con prefijo `_` en `agents/` son del sistema (`_template`, `_template_robot`, `_specials`). El script permite eliminar agentes dentro de `_specials/` (como `father-bot`) pero **no** elimina los templates.
## Reglas
- **Siempre confirmar** antes de eliminar (a menos que se use `--force`)
- **Rebuild obligatorio** tras eliminar el import — si no, el launcher no compila
- **No eliminar agentes que no existen** — validar primero
- **Desactivar Matrix es no-fatal** — si falla, los demas pasos continuan
- **Nunca eliminar templates** (`_template`, `_template_robot`)
+2
View File
@@ -10,6 +10,7 @@ Guias operativas para LLMs que trabajan en este codebase. Cada regla describe co
| **Crear herramienta** | [create_tool.md](create_tool.md) | Al añadir una nueva tool para LLM function calling |
| **Crear comando** | [create_command.md](create_command.md) | Al añadir un comando directo (!xxx) a un agente |
| **Crear skill** | [create_skill.md](create_skill.md) | Al crear una nueva skill (flujo multi-paso declarativo) |
| **Eliminar agente** | [delete_agent.md](delete_agent.md) | Al eliminar completamente un bot/agente/robot |
| **Crear issue** | [create_issue.md](create_issue.md) | Al crear un nuevo issue/feature request en `dev/issues/` |
| **Arreglar issue** | [fix_issue.md](fix_issue.md) | Al implementar/arreglar un issue existente de `dev/issues/` |
@@ -19,6 +20,7 @@ Guias operativas para LLMs que trabajan en este codebase. Cada regla describe co
- **Crear herramienta**: cuando el usuario pida añadir una nueva herramienta/tool al sistema. Incluye el patron Def (puro) + Exec (impuro), registro en runtime.go y habilitacion en config.
- **Crear comando**: cuando el usuario pida añadir un comando directo (!xxx) a un agente. Los comandos se resuelven sin pasar por reglas ni LLM.
- **Crear skill**: cuando el usuario pida añadir una skill (flujo multi-paso declarativo). Las skills combinan tools, logica condicional y conocimiento de dominio en un SKILL.md con recursos opcionales.
- **Eliminar agente**: cuando el usuario pida eliminar, borrar o destruir un bot/agente/robot. Incluye parar proceso, desactivar usuario Matrix, limpiar launcher, env vars y archivos. Script: `delete-full.sh`.
- **Crear issue**: cuando el usuario pida crear un nuevo issue, feature request o task. Usa el template en `.claude/templates/issue.md`.
- **Arreglar issue**: cuando el usuario pida implementar, arreglar o trabajar en un issue existente. Incluye crear rama (`/git-branch`), implementar las tareas con tests, cerrar el issue, e integrar a master (`/git-push`).