feat: migrar commands a skills
Migra todos los comandos de .claude/commands/ a .claude/skills/ siguiendo la estructura oficial de Claude Code. Skills migrados (21 total): - Configuración: init, init-jupyter, nochanges, create-skill - Git: git-branch, git-push, git-recovery - Workspace: sync-repos, list-repos, cleanup-worktrees, import-repo, create-repo - Issues: create-issue, fix-issue, auto-fix, auto-create, quick-issue, issues-status, parallel-issues, execute-parallel, sort-issues Cada skill tiene: - Carpeta propia en .claude/skills/<nombre>/ - Archivo SKILL.md con frontmatter avanzado - disable-model-invocation: true (solo usuario invoca) Incluye README.md con documentación completa de todos los skills.
This commit is contained in:
@@ -0,0 +1,141 @@
|
||||
---
|
||||
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
|
||||
|
||||
```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
|
||||
Reference in New Issue
Block a user