---
name: skill-master
description: Descubre patrones de código y genera automáticamente archivos SKILL para .claude/skills/. Úsalo al analizar un proyecto en busca de skills faltantes, crear nuevas skills a partir de patrones del código, o sincronizar skills con la estructura del proyecto.
version: 1.0.0
---
# Skill Master
## Resumen
Analiza el código para descubrir patrones y generar/actualizar archivos SKILL en `.claude/skills/`. Soporta proyectos multiplataforma con detección de patrones específicos por stack.
**Capacidades:**
- Escanear el código en busca de patrones arquitectónicos (ViewModel, Repository, Room, etc.)
- Comparar patrones detectados con skills existentes
- Auto-generar archivos SKILL con ejemplos de código reales
- Seguimiento de versiones y actualizaciones inteligentes
## Cómo la IA descubre y usa esta skill
Esta skill se activa cuando el usuario:
- Pide analizar el proyecto en busca de skills faltantes
- Solicita generación de skills a partir de patrones del código
- Quiere sincronizar o actualizar skills existentes
- Menciona "descubrimiento de skills", "generar skills" o "skill-sync"
**Señales de detección:**
- Presencia del directorio `.claude/skills/`
- Estructura del proyecto que coincide con patrones conocidos
- Archivos de build/config que indican la plataforma (ver referencias)
## Modos
### Modo Descubrimiento
Analiza el código y reporta skills faltantes.
**Pasos:**
1. Detectar plataforma mediante archivos de build/config (ver referencias)
2. Escanear raíces de código en busca de indicadores de patrones
3. Comparar patrones detectados con `.claude/skills/` existente
4. Generar informe de análisis de brechas
**Formato de salida:**
```
Patrones Detectados: {count}
| Patrón | Archivos Encontrados | Ubicación de Ejemplo |
|--------|----------------------|----------------------|
| {name} | {count} | {path} |
Skills Existentes: {count}
Skills Faltantes: {count}
- {skill-name}: {pattern}, {file-count} archivos encontrados
```
### Modo Generación
Crea archivos SKILL a partir de patrones detectados.
**Pasos:**
1. Ejecutar descubrimiento para identificar skills faltantes
2. Para cada skill faltante:
- Encontrar 2-3 archivos fuente representativos
- Extraer: imports, anotaciones, estructura de clases, convenciones
- Extraer reglas de `.ruler/*.md` si están presentes
3. Generar SKILL.md usando la estructura de plantilla
4. Agregar versión y marcador de fuente
**Estructura de SKILL generado:**
```yaml
---
name: {pattern-name}
description: {Descripción generada con palabras clave de activación}
version: 1.0.0
---
# {Título}
## Resumen
{Breve descripción del análisis de patrones}
## Estructura de Archivos
{Extraída del código}
## Patrón de Implementación
{Ejemplos de código reales - anonimizados}
## Reglas
### Hacer
{De .ruler/*.md + convenciones del código}
### No Hacer
{Anti-patrones encontrados}
## Ubicación de Archivos
{Rutas reales del código}
```
## Estrategia de Creación
Cuando el archivo SKILL objetivo no existe:
1. Generar nuevo archivo usando la plantilla
2. Establecer `version: 1.0.0` en frontmatter
3. Incluir todas las secciones obligatorias
4. Agregar marcador de fuente al final (ver Formato de Marcador)
## Estrategia de Actualización
**Verificación de marcador:** Buscar `<!-- Generated by skill-master command` al final del archivo.
**Si el marcador está presente (ejecución posterior):**
- Fusión inteligente: preservar contenido personalizado, agregar secciones faltantes
- Incrementar versión: mayor (ruptura) / menor (característica) / parche (corrección)
- Actualizar lista de fuentes en el marcador
**Si el marcador está ausente (primera ejecución en archivo existente):**
- Respaldo: `SKILL.md` → `SKILL.md.bak`
- Usar respaldo como fuente, extraer contenido relevante
- Generar archivo nuevo con marcador
- Establecer `version: 1.0.0`
## Formato de Marcador
Colocar al FINAL del SKILL.md generado:
```html
<!-- Generated by skill-master command
Version: {version}
Sources:
- path/to/source1.kt
- path/to/source2.md
- .ruler/rule-file.md
Last updated: {YYYY-MM-DD}
-->
```
## Referencias de Plataforma
Leer referencia relevante cuando se detecte la plataforma:
| Plataforma | Archivos de Detección | Referencia |
|------------|----------------------|------------|
| Android/Gradle | `build.gradle`, `settings.gradle` | `references/android.md` |
| iOS/Xcode | `*.xcodeproj`, `Package.swift` | `references/ios.md` |
| React (web) | `package.json` + react | `references/react-web.md` |
| React Native | `package.json` + react-native | `references/react-native.md` |
| Flutter/Dart | `pubspec.yaml` | `references/flutter.md` |
| Node.js | `package.json` | `references/node.md` |
| Python | `pyproject.toml`, `requirements.txt` | `references/python.md` |
| Java/JVM | `pom.xml`, `build.gradle` | `references/java.md` |
| .NET/C# | `*.csproj`, `*.sln` | `references/dotnet.md` |
| Go | `go.mod` | `references/go.md` |
| Rust | `Cargo.toml` | `references/rust.md` |
| PHP | `composer.json` | `references/php.md` |
| Ruby | `Gemfile` | `references/ruby.md` |
| Elixir | `mix.exs` | `references/elixir.md` |
| C/C++ | `CMakeLists.txt`, `Makefile` | `references/cpp.md` |
| Desconocida | - | `references/generic.md` |
Si se detectan múltiples plataformas, leer múltiples referencias.
## Reglas
### Hacer
- Solo extraer patrones verificados en el código
- Usar ejemplos de código reales (anonimizar lógica de negocio)
- Incluir palabras clave de activación en la descripción
- Mantener SKILL.md por debajo de 500 líneas
- Referenciar archivos externos para contenido detallado
- Preservar secciones personalizadas durante actualizaciones
- Siempre respaldar antes de la primera modificación
### No Hacer
- Incluir secretos, tokens o credenciales
- Incluir detalles de lógica específica de negocio
- Generar marcadores de posición sin contenido real
- Sobrescribir personalizaciones del usuario sin respaldo
- Crear cadenas de referencia profundas (máximo 1 nivel)
- Escribir fuera de `.claude/skills/`
## Reglas de Extracción de Contenido
**Del código:**
- Extraer: estructuras de clases, anotaciones, patrones de import, ubicaciones de archivos, convenciones de nomenclatura
- Nunca: valores hardcodeados, secretos, claves API, PII
**De .ruler/*.md (si está presente):**
- Extraer: reglas de Hacer/No Hacer, restricciones de arquitectura, reglas de dependencias
## Informe de Salida
Después de la generación, imprimir:
```
INFORME DE GENERACIÓN DE SKILLS
Skills Generadas: {count}
{skill-name} [CREADA | ACTUALIZADA | RESPALDADA+CREADA]
├── Analizados: {file-count} archivos fuente
├── Fuentes: {lista de archivos fuente}
├── Reglas de: {archivos .ruler si los hay}
└── Salida: .claude/skills/{skill-name}/SKILL.md ({line-count} líneas)
Validación:
✓ Frontmatter YAML válido
✓ Descripción incluye palabras clave de activación
✓ Contenido por debajo de 500 líneas
✓ Tiene secciones obligatorias
```
## Restricciones de Seguridad
- Nunca escribir fuera de `.claude/skills/`
- Nunca eliminar contenido sin respaldo
- Siempre respaldar antes de la primera modificación
- Preservar personalizaciones del usuario
- Determinista: misma entrada → misma salida
Discusión
0 comentarios