# ποΈ MΓ³dulo Eliminar Skills - Celebrimbor
## MisiΓ³n
Eliminar skills instaladas de forma segura con confirmaciΓ³n del usuario.
---
## π― Flujo de EliminaciΓ³n
### Paso 1: Listar Skills Instaladas
**Usar mΓ³dulo 09-module-list.md** para mostrar skills disponibles:
```
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ποΈ Eliminar Skill
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Skills instaladas actualmente:
π Global (2 skills):
1. php-pro
2. typescript-utils
π Local (1 skill):
3. php-symfony
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
```
---
### Paso 2: Seleccionar Skill a Eliminar
**Solicitar al usuario**:
```
ΒΏQuΓ© skill deseas eliminar?
Introduce el nΓΊmero [1-3] o el nombre: _
```
**Validar**:
- Si nΓΊmero: verificar rango
- Si nombre: verificar que existe
**Capturar**:
```yaml
skill_to_remove:
name: "php-pro"
location: "global" # o "local"
path: "~/.claude/skills/php-pro"
```
---
### Paso 3: ConfirmaciΓ³n CrΓtica
**β οΈ IMPORTANTE**: Siempre pedir confirmaciΓ³n antes de eliminar.
**Mostrar detalles**:
```
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β οΈ Confirmar EliminaciΓ³n
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Skill a eliminar: php-pro
UbicaciΓ³n: Global (~/.claude/skills/)
Archivo: ~/.claude/skills/php-pro
Link real: ~/.agents/skills/php-pro/SKILL.md
β οΈ Esta acciΓ³n NO se puede deshacer.
La skill dejarΓ‘ de estar disponible en TODOS tus proyectos
(es global).
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
```
Mostrar con `AskUserQuestion`:
```json
{
"questions": [{
"header": "Confirmar EliminaciΓ³n",
"question": "ΒΏEstΓ‘s seguro de eliminar \"[nombre]\"? Esta acciΓ³n NO se puede deshacer.",
"multiSelect": false,
"options": [
{
"label": "ποΈ SΓ, eliminar",
"description": "La skill dejarΓ‘ de estar disponible en Claude Code"
},
{
"label": "π« Cancelar",
"description": "Volver sin hacer cambios"
}
]
}]
}
```
**Si elige Cancelar**: volver al menΓΊ sin ejecutar nada.
---
### Paso 4: Ejecutar EliminaciΓ³n
**OpciΓ³n A: Usar npx skills remove** (Recomendado)
```bash
# Con Node.js >=18 y skills CLI
npx skills remove <skill-name>
```
**Ejemplo**:
```bash
source ~/.nvm/nvm.sh && nvm use 20 > /dev/null 2>&1
npx skills remove php-pro
```
**Output esperado**:
```
β Removed skill: php-pro
β Symlink removed: ~/.claude/skills/php-pro
β Source removed: ~/.agents/skills/php-pro/
```
---
**OpciΓ³n B: EliminaciΓ³n Manual** (Fallback)
Si `npx skills remove` no existe o falla:
```bash
# Eliminar symlink
rm ~/.claude/skills/php-pro
# Eliminar directorio real (si existe)
rm -rf ~/.agents/skills/php-pro/
```
**Para skills locales**:
```bash
# Local
rm ./.claude/rules/php-symfony.md
```
---
### Paso 5: Verificar EliminaciΓ³n
**Verificar que el archivo ya NO existe**:
```bash
if [ ! -f ~/.claude/skills/php-pro ]; then
echo "β
Skill eliminada correctamente"
else
echo "β Error: Archivo aΓΊn existe"
fi
```
---
### Paso 6: ConfirmaciΓ³n al Usuario
**Mostrar resultado**:
```
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
Skill Eliminada Exitosamente
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Skill: php-pro
UbicaciΓ³n: Global
Archivo eliminado: ~/.claude/skills/php-pro
La skill ya NO estarΓ‘ disponible en Claude Code.
Recarga la ventana o inicia nueva sesiΓ³n para aplicar cambios.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
```
---
### Paso 7: Acciones Posteriores
Mostrar con `AskUserQuestion`:
```json
{
"questions": [{
"header": "Tras la eliminaciΓ³n",
"question": "ΒΏQuΓ© deseas hacer ahora?",
"multiSelect": false,
"options": [
{
"label": "ποΈ Eliminar otra skill",
"description": ""
},
{
"label": "π Ver skills instaladas",
"description": ""
},
{
"label": "π Volver al menΓΊ principal",
"description": ""
}
]
}]
}
```
---
## π¨ Manejo de Errores
### Error 1: Skill No Encontrada
**Usuario intenta eliminar skill que no existe**:
```
β Skill No Encontrada
La skill "non-existent" no estΓ‘ instalada.
Skills disponibles para eliminar:
β’ php-pro (global)
β’ typescript-utils (global)
```
Mostrar con `AskUserQuestion`: ΒΏDeseas elegir otra skill? (SΓ / Volver al menΓΊ)
### Error 2: Sin Permisos
**Falla al eliminar archivo**:
```bash
rm ~/.claude/skills/php-pro
# Error: Permission denied
```
**Mostrar**:
```
β Error de Permisos
No se pudo eliminar el archivo ~/.claude/skills/php-pro
SoluciΓ³n:
sudo rm ~/.claude/skills/php-pro
O verificar permisos:
ls -la ~/.claude/skills/
ΒΏDeseas reintentar con sudo? [s/N]: _
```
### Error 3: npx skills remove No Disponible
**Comando no existe**:
```bash
npx skills remove php-pro
# Error: Unknown command 'remove'
```
**AcciΓ³n automΓ‘tica**:
```
β οΈ npx skills remove no disponible
Usando eliminaciΓ³n manual...
β Eliminando symlink ~/.claude/skills/php-pro
β Eliminando directorio ~/.agents/skills/php-pro/
β
Skill eliminada manualmente
```
---
## π§ CaracterΓsticas Adicionales
### EliminaciΓ³n en Batch (Futuro)
**Eliminar mΓΊltiples skills**:
```
ποΈ Eliminar MΓΊltiples Skills
Selecciona skills a eliminar (separa con comas):
1. php-pro
2. typescript-utils
3. php-symfony
Skills a eliminar: 1,3
Confirmar eliminaciΓ³n de:
β’ php-pro (global)
β’ php-symfony (local)
ΒΏContinuar? [s/N]: _
```
### Backup Antes de Eliminar (Futuro)
**Opcional: Crear backup antes de eliminar**:
```
πΎ Backup de Seguridad
ΒΏCrear backup de "php-pro" antes de eliminar?
UbicaciΓ³n del backup: ~/.celebrimbor/backups/
Archivo: php-pro_2026-02-16.md
Backup te permite restaurar la skill mΓ‘s tarde.
ΒΏCrear backup? [S/n]: _
```
---
## π IntegraciΓ³n con Otros MΓ³dulos
### Con MΓ³dulo de Listar (09)
```python
# Obtener skills instaladas
installed_skills = list_module.get_installed_skills()
# Mostrar opciones para eliminar
display_skills_to_remove(installed_skills)
```
### Con Backend CLI (04)
```python
# Usar backend para eliminaciΓ³n
backend = selector.get_backend()
result = backend.remove(skill_name, location)
```
### Con MΓ³dulo de BΓΊsqueda (07)
```python
# DespuΓ©s de eliminar
if user_chooses("Buscar nuevas skills"):
search_module.run()
```
---
## π― Reglas de EjecuciΓ³n
1. **SIEMPRE pedir confirmaciΓ³n** antes de eliminar
2. **Mostrar detalles** de lo que se va a eliminar
3. **Verificar eliminaciΓ³n** despuΓ©s de ejecutar
4. **Informar claramente** el resultado (Γ©xito o error)
5. **Ofrecer acciones posteriores** (eliminar otra, buscar, listar)
6. **Manejo robusto de errores** (permisos, comando no existe)
7. **Preferir npx skills remove** cuando estΓ© disponible
8. **Fallback a eliminaciΓ³n manual** si npx falla
---
## π Ejemplo Completo de EjecuciΓ³n
```
Usuario: "5. Eliminar Skill"
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ποΈ Eliminar Skill
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Skills instaladas:
π Global (1 skill):
1. php-pro
ΒΏQuΓ© skill eliminar?: 1
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β οΈ Confirmar EliminaciΓ³n
Skill: php-pro
UbicaciΓ³n: Global (~/.claude/skills/php-pro)
Real: ~/.agents/skills/php-pro/
β οΈ NO se puede deshacer
ΒΏEliminar "php-pro"? [s/N]: s
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ποΈ Eliminando "php-pro"...
β Ejecutando: npx skills remove php-pro
β Symlink eliminado: ~/.claude/skills/php-pro
β Directorio eliminado: ~/.agents/skills/php-pro/
β Verificando eliminaciΓ³n
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
Skill Eliminada Exitosamente
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Skill: php-pro
UbicaciΓ³n: Global
La skill ya NO estΓ‘ disponible.
Recarga Claude Code para aplicar cambios.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ΒΏQuΓ© hacer ahora?
1. Eliminar otra skill
2. Ver skills instaladas
3. Volver al menΓΊ
Elige [1-3]: _
```
---
**MΓ³dulo anterior**: 09-module-list.md
**Integra con**: 09-module-list.md, 04-backend-cli.md
**Usa**: npx skills remove (preferido) o rm manual (fallback)
**Tarea**: #5 - MΓ³dulo Eliminar