feat: skills de ejemplo y README del sistema

Agregar 4 skills de ejemplo funcionales y README del sistema:

Skills de ejemplo:
- devops/deploy-service: deploy completo con rollback
- analysis/log-analyzer: analisis de logs con metricas
- communication/daily-report: reportes diarios automaticos
- system/health-check: verificacion de salud multi-servicio

Cada skill incluye:
- SKILL.md con frontmatter YAML + instrucciones markdown
- Descripcion de parametros y proceso paso a paso
- Ejemplos de uso y consideraciones de seguridad

skills/README.md documenta:
- Diferencia entre tools (atomicas) y skills (flujos multi-paso)
- Formato de SKILL.md y carga progresiva (3 niveles)
- Categorias disponibles y uso desde agentes

Las skills son contenido declarativo, no codigo Go.
This commit is contained in:
2026-03-08 22:13:41 +00:00
parent b68ced5c23
commit 55c907a3ac
5 changed files with 567 additions and 284 deletions
+69 -35
View File
@@ -1,62 +1,96 @@
# Skills
# Sistema de Skills
Sistema de skills reutilizables para agentes. Las skills son paquetes de instrucciones, scripts y recursos que guian al agente para completar tareas complejas multi-paso.
Sistema de skills reutilizables para agentes Matrix. Las skills son paquetes de instrucciones, scripts y recursos que amplian las capacidades de un agente mas alla de las tools de function calling.
## Diferencia entre Tools y Skills
| | Tools | Skills |
|---|---|---|
| **Nivel** | Funcion atomica | Flujo multi-paso |
| **Invocacion** | Function calling del LLM | El agente busca y carga bajo demanda |
| **Ejemplo** | `ssh_command`, `http_get` | "deploy-service", "log-analyzer" |
| **Ubicacion** | `tools/<nombre>/` | `skills/<categoria>/<nombre>/` |
- **Tools** (`tools/`) — funciones atomicas que el LLM invoca via function calling (ssh_command, http_get, clock, etc.)
- **Skills** (`skills/`) — flujos completos de trabajo multi-paso que combinan tools, logica condicional y conocimiento de dominio
Ejemplo:
- Tool: `ssh_command` — ejecuta un comando SSH
- Skill: `deploy-service` — usa ssh_command, http_get y logica para hacer un deploy completo
## Estructura de una skill
```
skills/<categoria>/<nombre>/
├── SKILL.md ← obligatorio (frontmatter YAML + instrucciones)
├── scripts/ ← opcional, codigo ejecutable
skills/<categoria>/<skill-name>/
├── SKILL.md ← obligatorio (frontmatter YAML + instrucciones markdown)
├── LICENSE.txt ← opcional
├── scripts/ ← opcional, codigo ejecutable (bash, python, etc.)
├── references/ ← opcional, docs de referencia
├── templates/ ← opcional, plantillas
└── assets/ ← opcional, archivos estaticos
├── templates/ ← opcional, plantillas/assets
└── assets/ ← opcional, fuentes, iconos, etc.
```
## SKILL.md — formato
### SKILL.md — formato
```yaml
---
name: nombre-skill
name: skill-name
description: >
Descripcion de que hace y cuando activarse.
Descripcion clara de que hace la skill y cuando debe activarse.
Esta descripcion es el mecanismo principal de triggering.
---
# Instrucciones
Cuerpo markdown con instrucciones completas (< 500 lineas idealmente).
Cuerpo markdown con las instrucciones completas.
Idealmente < 500 lineas.
```
## Carga progresiva
## Carga progresiva (3 niveles)
1. **Metadata** (name + description) — siempre en contexto del agente
2. **Instrucciones** (cuerpo SKILL.md) — cuando la skill se activa
3. **Recursos** (scripts/, references/, etc.) — bajo demanda
El sistema carga skills de forma progresiva para optimizar el uso del contexto del LLM:
## Categorias
1. **Metadata** (name + description) — siempre en contexto (~100 palabras). El agente la lee para decidir si activar la skill.
2. **Cuerpo del SKILL.md** — se carga cuando la skill se activa. Instrucciones principales.
3. **Recursos bundled** (scripts/, references/, etc.) — se cargan bajo demanda. El SKILL.md indica cuando leer cada archivo.
| Categoria | Descripcion |
|-----------|-------------|
| `devops/` | Operaciones, deploy, infraestructura |
| `analysis/` | Analisis de datos, logs, metricas |
| `communication/` | Notificaciones, reportes, mensajeria |
| `coding/` | Desarrollo, code review, refactoring |
| `system/` | Administracion de sistemas, monitoreo |
## Carpetas opcionales
## Crear una nueva skill
| Carpeta | Proposito |
|---------|-----------|
| `scripts/` | Codigo ejecutable que el agente corre (bash, python). Puede ejecutarlos sin cargarlos en contexto. |
| `references/` | Documentacion extensa, leida solo cuando es relevante. Si > 300 lineas, agregar TOC al inicio. |
| `templates/` | Plantillas que la skill usa como base para generar outputs. |
| `assets/` | Archivos estaticos (fuentes, iconos, imagenes). |
1. Crear directorio: `skills/<categoria>/<nombre>/`
2. Crear `SKILL.md` con frontmatter YAML (name + description) y cuerpo markdown
3. Opcionalmente agregar scripts/, references/, templates/, assets/
4. La skill estara disponible automaticamente para agentes con `skills.enabled: true`
## Categorias de skills
Ver regla completa en `.claude/rules/create_skill.md` (pendiente).
- **`devops/`** — operaciones y deploy
- **`analysis/`** — analisis de datos/logs
- **`communication/`** — comunicacion y notificaciones
- **`coding/`** — desarrollo y code review
- **`system/`** — administracion del sistema
## Uso desde agentes
Los agentes pueden interactuar con skills via function calling:
1. **`skill_search`** — busca skills relevantes por query
2. **`skill_load`** — carga instrucciones completas de una skill
3. **`skill_read_resource`** — lee un recurso especifico (script, reference, template)
4. **`skill_run_script`** — ejecuta un script de la skill con argumentos
## Configuracion
Las skills se configuran por agente en el YAML de configuracion:
```yaml
skills:
enabled: true
path: "skills/"
categories: ["devops", "system"] # filtro opcional
```
## Seguridad
- Los scripts de skills tienen las mismas restricciones que ssh_command
- Allowlist de interpreters permitidos (bash, python3, sh)
- Timeout obligatorio en ejecucion
- Sin acceso directo a secretos
## Crear nuevas skills
Ver `.claude/rules/create_skill.md` para la guia completa de creacion de skills.