--- 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