---
name: swl:skill-search
description: Busca habilidades (skills) SWL disponibles por nombre o descripción. Genera o reutiliza el índice auto-descubierto de habilidades/*/SKILL.md. Cargar cuando el usuario quiera explorar skills disponibles, verificar si existe una habilidad concreta, o repasar el catálogo completo.
allowed_tools: ["Bash", "Read"]
---

# /swl:skill-search — Explorar habilidades SWL

Muestra el catálogo de habilidades disponibles en el sistema SWL.
El índice se genera automáticamente leyendo `habilidades/*/SKILL.md`.

## Uso

```
/swl:skill-search                  — Lista todas las habilidades
/swl:skill-search <query>          — Filtra por nombre o descripción
/swl:skill-search --intent <desc>  — Busca por intención (qué quiero hacer)
/swl:skill-search --dominio <dom>  — Filtra por dominio (backend, frontend, etc.)
/swl:skill-search --rebuild        — Regenera el índice desde disco
```

## Paso 1 — Verificar disponibilidad del script

```bash
ls scripts/lib/skill-discovery.js 2>/dev/null && echo "OK" || echo "FALTA"
```

Si falta, indicar al usuario que actualice SWL con `/swl:actualizar`.

## Paso 2 — Ejecutar búsqueda o listar todo

### Sin query (catálogo completo)

```bash
npx -y @saulwade/swl-ses@latest skill-discovery
```

### Con query (búsqueda filtrada)

```bash
npx -y @saulwade/swl-ses@latest skill-discovery "<query>"
```

Ejemplo: `npx -y @saulwade/swl-ses@latest skill-discovery "typescript"` muestra skills de TypeScript.

### Búsqueda por intent (--intent)

Cuando el usuario describe lo que quiere hacer en lugar de buscar por nombre técnico,
usar la siguiente tabla de sinónimos para mapear intención → skills relevantes:

| Intención del usuario | Keywords a buscar | Skills probables |
|----------------------|-------------------|------------------|
| "quiero hacer tests" | test, tdd, qa, cobertura | tdd-workflow, testing-* |
| "necesito autenticación" | auth, login, jwt, oauth, sesión | auth-patrones |
| "optimizar rendimiento" | performance, lento, caché, índice | performance-baseline |
| "crear API" | api, rest, endpoint, graphql | api-rest-diseno, fastapi-experto |
| "base de datos" | sql, query, migración, orm | postgresql-experto |
| "desplegar" | deploy, ci, cd, docker, pipeline | ci-cd-pipelines |
| "documentar" | docs, readme, changelog, adr | documentacion-tecnica |
| "seguridad" | owasp, xss, inyección, csrf, secretos | seguridad-skills-ia |
| "frontend" | componente, ui, css, react, angular | angular-moderno, frontend-* |
| "errores" | error, debug, excepción, stack trace | manejo-errores |

Si `--intent` está presente, buscar en la descripción de cada skill por coincidencia
semántica con la intención expresada, no solo por string matching exacto.

### Filtrar por dominio (--dominio)

Dominios soportados: `backend`, `frontend`, `mobile`, `datos`, `infra`, `seguridad`,
`ux`, `calidad`, `proceso`, `docs`.

Filtra usando el prefijo de dominio del nombre del skill (ej: `backend-*`, `frontend-*`)
o por las keywords del dominio en la descripción.

### Reconstruir índice

```bash
npx -y @saulwade/swl-ses@latest skill-discovery --rebuild
```

## Paso 3 — Presentar resultados

Mostrar la tabla generada por el script, que tiene el formato:

```
Habilidades SWL disponibles (N)
──────────────────────────────────────────────────────────────────────
  nombre-de-habilidad                       v1.0.0  Descripción breve
  ...
──────────────────────────────────────────────────────────────────────
Generado: YYYY-MM-DD  |  Índice: .planning/skill-index.json
```

## Paso 4 — Cómo usar una habilidad

Indicar al usuario la sintaxis para cargar la habilidad seleccionada:

```
Skill("nombre-de-habilidad")
```

Por ejemplo, si encontró `typescript-avanzado`:

```
Skill("typescript-avanzado")
```

## Notas

- El índice persiste en `.planning/skill-index.json` entre sesiones.
- Si una habilidad no tiene frontmatter YAML válido, aparece con su nombre de directorio.
- Para ver detalles de una habilidad específica: `Read("habilidades/<nombre>/SKILL.md")`.
- La descripción del índice viene del campo `description` en el frontmatter YAML del SKILL.md.
