Files
repo_Claude/.claude/skills/create-skill/SKILL.md
T
egutierrez 2f83d0b746 refactor: mover templates dentro de sus skills
Mueve templates a las carpetas de skills que los usan:

- templates/issue.md → skills/create-issue/issue.md
- templates/skill.md → skills/create-skill/skill.md

Actualiza install.sh: solo enlaza skills y agents.

Estructura final de .claude/:
- CLAUDE.md
- settings.local.json
- agents/
- skills/
2026-03-21 20:43:15 +01:00

144 lines
3.2 KiB
Markdown

---
name: create-skill
description: Crea un nuevo skill en .claude/skills/ siguiendo la estructura oficial de Claude Code
argument-hint: [nombre]
disable-model-invocation: true
user-invocable: true
allowed-tools: Bash, Read, Write, Edit
---
# create-skill
Crea un nuevo skill en `.claude/skills/` con archivo `SKILL.md` obligatorio.
## Sintaxis
```bash
/create-skill [nombre]
/create-skill code-review
/create-skill deploy
```
## Precondiciones
- [ ] Carpeta `.claude/skills/` existe
- [ ] No existe skill con el mismo nombre
- [ ] Nombre cumple convenciones (minúsculas, guiones)
## Flujo
### 1. Validar nombre
- Solo minúsculas, números y guiones
- No nombres reservados (help, clear, exit)
- Máximo 64 caracteres
```bash
ls -d .claude/skills/*/ 2>/dev/null | xargs -n1 basename | grep -E "^${nombre}$"
```
Si existe, STOP.
### 2. Solicitar inputs
- `nombre`: minúsculas y guiones
- `descripcion`: qué hace y cuándo usarlo (1-2 frases)
- `tipo_invocacion`:
- `ambos` (default): usuario y Claude pueden invocar
- `solo_usuario`: solo `/nombre` (`disable-model-invocation: true`)
- `solo_claude`: solo Claude (`user-invocable: false`)
- `argument_hint` (opcional): ej: `[archivo] [formato]`
- `allowed_tools` (opcional): herramientas sin confirmación
- `instrucciones`: contenido del skill
### 3. Crear carpeta
```bash
mkdir -p .claude/skills/${nombre}
```
### 4. Determinar frontmatter
| Tipo | disable-model-invocation | user-invocable |
|------|--------------------------|----------------|
| ambos | (omitir) | (omitir) |
| solo_usuario | true | (omitir) |
| solo_claude | (omitir) | false |
### 5. Generar SKILL.md
Usar template en `${CLAUDE_SKILL_DIR}/skill.md` como referencia:
```markdown
---
name: ${nombre}
description: ${descripcion}
argument-hint: ${argument_hint}
disable-model-invocation: true # solo si tipo = solo_usuario
allowed-tools: ${allowed_tools}
---
# ${nombre}
${instrucciones}
```
### 6. Mostrar y confirmar
```
Skill creado: ${nombre}
Ubicación: .claude/skills/${nombre}/SKILL.md
¿Te parece bien?
- Si correcto: commit y push automáticamente
- Si ajustes: edita manualmente antes
```
### 7. Ejecutar /git-push
Si confirma, crear rama `quick/create-skill-${nombre}` e integrar.
### 8. Verificar disponibilidad
```
Skill /${nombre} creado e integrado
Para usar:
/${nombre} [argumentos]
Tipo: ${tipo_invocacion}
```
## Campos del frontmatter
| Campo | Descripción |
|-------|-------------|
| name | Nombre del skill |
| description | Qué hace y cuándo usarlo |
| argument-hint | Pista de argumentos |
| disable-model-invocation | true = solo usuario invoca |
| user-invocable | false = solo Claude invoca |
| allowed-tools | Tools sin pedir permiso |
| context | fork = ejecutar en subagente |
| agent | Tipo subagente: Explore, Plan |
## Variables dinámicas
| Variable | Descripción |
|----------|-------------|
| $ARGUMENTS | Todos los argumentos |
| $0, $1, $2 | Argumentos posicionales |
| ${CLAUDE_SKILL_DIR} | Ruta del skill |
## Convenciones
- Nombres descriptivos con guiones
- Descripciones claras para invocación automática
- Un skill por tarea
## Reglas
- Validar nombre antes de crear
- SKILL.md es obligatorio
- Confirmación antes de integrar