4a23468c14
Documentar sistema de skills en .claude/: CLAUDE.md: - Agregar pkg/skills/, shell/skills/, tools/skilltools/ y skills/ a estructura - skills/ como contenido declarativo (SKILL.md + recursos) .claude/rules/create_skill.md: - Guia completa para crear nuevas skills - Template de SKILL.md con frontmatter - Proceso paso a paso (categoria → estructura → SKILL.md → recursos → tests) - Reglas criticas: skills != tools, < 500 lineas, idempotencia - Ejemplos y anti-patrones .claude/rules/index.md: - Agregar regla "Crear skill" al indice - Explicar cuando usar skills vs tools La regla create_skill.md es la guia oficial para añadir skills.
4.4 KiB
4.4 KiB
Regla: Crear nueva skill
Guia para crear una nueva skill en skills/.
Prerequisitos
- Entender la diferencia entre tools (funciones atomicas) y skills (flujos multi-paso)
- Las skills son contenido declarativo (markdown + recursos), no codigo Go
- Una skill combina tools existentes, logica condicional y conocimiento de dominio
Proceso
1. Determinar categoria
Elegir la categoria adecuada:
devops/— operaciones y deployanalysis/— analisis de datos/logscommunication/— comunicacion y notificacionescoding/— desarrollo y code reviewsystem/— administracion del sistema
Si ninguna aplica, crear nueva categoria.
2. Crear estructura de directorios
mkdir -p skills/<categoria>/<skill-name>/{scripts,references,templates,assets}
Solo crear las subcarpetas que vayas a usar.
3. Escribir SKILL.md
Template:
---
name: skill-name
description: >
Descripcion clara de que hace la skill y cuando debe activarse.
Esta descripcion es el mecanismo principal de triggering.
Idealmente < 100 palabras.
---
# <Nombre Descriptivo>
Breve introduccion de la skill (1-2 parrafos).
## Casos de uso
- Caso 1
- Caso 2
- Caso 3
## Proceso de ejecucion
### 1. Paso inicial
Descripcion del paso, que tools usar, ejemplos de codigo.
```bash
# ejemplo de comando
ssh_command host="prod-01" command="systemctl status myapp"
2. Paso siguiente
Continuar con los pasos...
Parametros requeridos
Lista de parametros que el usuario debe proporcionar:
param1: descripcionparam2: descripcion
Parametros opcionales:
opt1: descripcion (default: valor)
Ejemplo de uso
Usuario: "Haz X"
Agente:
- skill_search("X")
- skill_load("")
- Ejecutar pasos...
- Reportar resultado
Seguridad
Consideraciones de seguridad especificas para esta skill.
### 4. Anadir recursos (opcional)
#### Scripts (`scripts/`)
Scripts ejecutables que la skill puede invocar:
```bash
#!/bin/bash
# scripts/deploy.sh
# Descripcion del script
set -euo pipefail
# Validar argumentos
if [ $# -lt 1 ]; then
echo "Usage: $0 <service-name>"
exit 1
fi
# Implementacion...
Importante:
- Usar shebang correcto (
#!/bin/bash,#!/usr/bin/env python3, etc.) - Validar argumentos
- Usar
set -euo pipefailen bash - Exit codes claros (0 = exito, != 0 = error)
Referencias (references/)
Documentacion extensa que el agente puede consultar bajo demanda:
# API Reference
Documentacion detallada...
Si > 300 lineas, agregar TOC al inicio.
Templates (templates/)
Plantillas que la skill usa como base:
# template-report.md
# Report: {{title}}
Generated: {{timestamp}}
## Summary
{{summary}}
...
5. Probar la skill
- Habilitar skills en el config de un agente de prueba:
skills:
enabled: true
path: "skills/"
categories: ["<categoria>"]
tools:
skills:
allowed_interpreters: ["bash", "sh"]
- Reiniciar el agente
- Probar buscando la skill:
skill_search("<query>") - Cargar la skill:
skill_load("<skill-name>") - Ejecutar el flujo completo siguiendo las instrucciones
6. Documentar
Actualizar skills/README.md si:
- Creas una nueva categoria
- La skill introduce un patron nuevo
- Hay consideraciones de seguridad especiales
Reglas criticas
- Skills != Tools: Las skills usan tools, no son tools
- SKILL.md < 500 lineas: Si es mas largo, dividir en multiple skills o mover contenido a
references/ - Description precisa: La description en el frontmatter es critica para el matching
- Idempotencia: Las skills deben ser seguras de ejecutar multiples veces si es posible
- Error handling: Las instrucciones deben incluir que hacer en caso de error
- Rollback: Si la skill hace cambios destructivos, incluir instrucciones de rollback
Ejemplos de skills validas
Ver las skills existentes en skills/:
skills/devops/deploy-service/— deploy completo con rollbackskills/analysis/log-analyzer/— analisis de logs con metricasskills/system/health-check/— verificacion de salud multi-servicioskills/communication/daily-report/— generacion de reportes
Anti-patrones
- Skill que solo ejecuta un comando SSH → usar tool
ssh_commanddirectamente - Skill con logica de negocio compleja → crear tool Go con tests
- Skill que repite instrucciones del system prompt → innecesario
- Scripts que requieren interaccion humana → las skills son automaticas