Skip to content

Consultar y listar habilidades disponibles ​

Lo que podrás hacer después de completar esta lección ​

  • Utilizar la herramienta get_available_skills para listar todas las habilidades disponibles
  • Filtrar habilidades específicas mediante consultas de búsqueda
  • Usar espacios de nombres (como project:skill-name) para localizar habilidades con precisión
  • Identificar el origen de habilidades y la lista de scripts ejecutables

Tu situación actual ​

Deseas usar una habilidad, pero no recuerdas su nombre exacto. Quizás sabes que es una habilidad del proyecto, pero no sabes en qué ruta de descubrimiento se encuentra. O simplemente quieres explorar rápidamente qué habilidades tiene disponible el proyecto actual.

Cuándo usar esta técnica ​

  • Explorar nuevos proyectos: Al unirte a un nuevo proyecto, conocer rápidamente qué habilidades están disponibles
  • Nombre de habilidad incierto: Solo recuerdas parte del nombre o descripción de la habilidad, necesitando coincidencia aproximada
  • Conflictos de múltiples espacios de nombres: Existen habilidades con el mismo nombre a nivel de proyecto y de usuario, necesitas especificar explícitamente cuál usar
  • Buscar scripts: Quieres saber qué scripts de automatización hay disponibles en el directorio de habilidades

Idea central ​

La herramienta get_available_skills te ayuda a ver todas las habilidades disponibles en la sesión actual. El complemento escanea automáticamente habilidades desde 6 rutas de descubrimiento:

Prioridad de descubrimiento de habilidades

  1. .opencode/skills/ (OpenCode a nivel de proyecto)
  2. .claude/skills/ (Claude a nivel de proyecto)
  3. ~/.config/opencode/skills/ (OpenCode a nivel de usuario)
  4. ~/.claude/skills/ (Claude a nivel de usuario)
  5. ~/.claude/plugins/cache/ (caché de complementos)
  6. ~/.claude/plugins/marketplaces/ (complementos instalados)

Las habilidades con el mismo nombre solo conservan la primera según la prioridad, las posteriores son ignoradas.

La información devuelta por la herramienta incluye:

  • Nombre de habilidad
  • Etiqueta de origen (project, user, claude-project, etc.)
  • Descripción
  • Lista de scripts ejecutables (si los hay)

Sintaxis de espacios de nombres

Puedes especificar explícitamente el origen usando el formato namespace:skill-name:

  • project:my-skill - Usar habilidad de OpenCode a nivel de proyecto (.opencode/skills/)
  • claude-project:my-skill - Usar habilidad de Claude a nivel de proyecto (.claude/skills/)
  • user:my-skill - Usar habilidad de OpenCode a nivel de usuario (~/.config/opencode/skills/)
  • claude-user:my-skill - Usar habilidad de Claude a nivel de usuario (~/.claude/skills/)
  • claude-plugins:my-skill - Usar habilidad de complementos de Claude

Sígueme ​

Paso 1: Listar todas las habilidades disponibles ​

En OpenCode, pide directamente a la IA que liste las habilidades:

Entrada del usuario:
Listar todas las habilidades disponibles

Respuesta del sistema:
skill-helper (project)
  Asistente de operaciones Git y gestión de ramas [scripts: tools/branch.sh, tools/commit.sh]

test-helper (user)
  Herramienta de pruebas unitarias y análisis de cobertura

docker-helper (project)
  Guía de contenedorización y despliegue con Docker [scripts: build.sh, deploy.sh]

claude-code-superpowers (claude-plugins)
  Flujo de trabajo completo de desarrollo de software

Lo que deberías ver: Una lista de habilidades, mostrando para cada una el nombre, etiqueta de origen, descripción y lista de scripts.

Paso 2: Usar consultas de búsqueda para filtrar ​

Si solo recuerdas parte del nombre de la habilidad:

Entrada del usuario:
Buscar habilidades que contengan "docker"

Respuesta del sistema:
docker-helper (project)
  Guía de contenedorización y despliegue con Docker [scripts: build.sh, deploy.sh]

La búsqueda coincide con palabras clave en el nombre y descripción de la habilidad, soporta el comodín *:

Entrada del usuario:
Buscar habilidades que comiencen con "test"

Respuesta del sistema:
test-helper (user)
  Herramienta de pruebas unitarias y análisis de cobertura

Lo que deberías ver: Solo se muestran las habilidades que coinciden con la consulta.

Paso 3: Experimentar con sugerencias de coincidencia aproximada ​

Si ingresas un nombre de habilidad incorrecto:

Entrada del usuario:
Quiero usar docker-asistant

Respuesta del sistema:
No se encontraron habilidades que coincidan con "docker-asistant". ¿Quisiste decir "docker-helper"?

El complemento calcula la similitud basándose en la distancia de Levenshtein y sugiere automáticamente el nombre de habilidad más cercano.

Lo que deberías ver: Mensaje de error y sugerencia de la habilidad correcta.

Paso 4: Usar espacios de nombres para localizar con precisión ​

Supongamos que tanto a nivel de proyecto como de usuario existe una habilidad llamada build-helper:

Entrada del usuario:
Listar información detallada de build-helper

Respuesta del sistema:
build-helper (project)
  Configuración de construcción específica del proyecto y optimización de compilación [scripts: build.sh, optimize.sh]

Si el usuario quiere la habilidad a nivel de usuario:

Entrada del usuario:
Usar user:build-helper

Respuesta del sistema:
build-helper (user)
  Cadena de herramientas de construcción general y configuración de integración continua [scripts: ci.sh, test.sh]

Lo que deberías ver: Mediante el prefijo de espacio de nombres puedes acceder a habilidades con el mismo nombre de diferentes orígenes.

Paso 5: Verificar scripts ejecutables ​

Ver qué scripts hay en el directorio de habilidades:

Entrada del usuario:
¿Qué scripts tiene docker-helper?

Respuesta del sistema:
docker-helper (project)
  Guía de contenedorización y despliegue con Docker [scripts: build.sh, deploy.sh]

Los scripts se muestran entre corchetes en la información de habilidad, separados por comas. Puedes ejecutar estos scripts usando la herramienta run_skill_script.

Lo que deberías ver: Después del nombre de habilidad aparece una lista en formato [scripts: ruta-de-script1, ruta-de-script2, ...].

Punto de control ✅ ​

  • [ ] ¿Puedes listar todas las habilidades disponibles?
  • [ ] ¿Puedes filtrar habilidades específicas mediante consultas de búsqueda?
  • [ ] ¿Puedes comprender el significado de las etiquetas de origen de habilidades (project, user, claude-project, etc.)?
  • [ ] ¿Puedes explicar la función y la sintaxis de los espacios de nombres de habilidades?
  • [ ] ¿Puedes identificar la lista de scripts ejecutables desde la información de habilidad?

Advertencias sobre trampas ​

Trampa 1: Sobrescritura de habilidades con el mismo nombre ​

Si a nivel de proyecto y de usuario existen habilidades con el mismo nombre, podrías confundirte sobre por qué no se carga la habilidad que esperabas.

Causa: Las habilidades se descubren por prioridad, el nivel de proyecto tiene prioridad sobre el nivel de usuario, con el mismo nombre solo se conserva la primera.

Solución: Especifica explícitamente usando espacios de nombres, como user:my-skill en lugar de my-skill.

Trampa 2: Búsqueda sensible a mayúsculas y minúsculas ​

Las consultas de búsqueda usan expresiones regulares, pero están configuradas con el flag i, por lo que no distinguen mayúsculas y minúsculas.

bash
# Estas búsquedas son equivalentes
get_available_skills(query="docker")
get_available_skills(query="DOCKER")
get_available_skills(query="Docker")

Trampa 3: Escapar comodines ​

El * en la búsqueda se convierte automáticamente a la expresión regular .*, no necesitas escaparlo manualmente:

bash
# Buscar habilidades que comiencen con "test"
get_available_skills(query="test*")

# Equivalente a la expresión regular /test.*/i

Resumen de esta lección ​

get_available_skills es una herramienta para explorar el ecosistema de habilidades, soporta:

  • Listar todas las habilidades: Llamar sin parámetros
  • Filtrado de búsqueda: Coincidir nombres y descripciones mediante el parámetro query
  • Espacios de nombres: Localizar con precisión usando namespace:skill-name
  • Sugerencias de coincidencia aproximada: Sugerir automáticamente el nombre correcto al cometer errores de escritura
  • Lista de scripts: Mostrar scripts de automatización ejecutables

El complemento inyecta automáticamente la lista de habilidades al inicio de la sesión, por lo que generalmente no necesitas llamar manualmente a esta herramienta. Pero es útil en los siguientes escenarios:

  • Quieres explorar rápidamente las habilidades disponibles
  • No recuerdas el nombre exacto de la habilidad
  • Necesitas distinguir diferentes orígenes de habilidades con el mismo nombre
  • Quieres ver la lista de scripts de una habilidad específica

Próxima lección ​

En la próxima lección aprenderemos Cargar habilidades en el contexto de la sesión.

Aprenderás:

  • Usar la herramienta use_skill para cargar habilidades a la sesión actual
  • Comprender cómo el contenido de las habilidades se inyecta en el contexto en formato XML
  • Dominar el mecanismo de Synthetic Message Injection (inyección de mensajes sintéticos)
  • Entender cómo las habilidades permanecen disponibles después de la compresión de la sesión

Apéndice: Referencia de código fuente ​

Haz clic para expandir y ver la ubicación del código fuente

Fecha de actualización: 2026-01-24

FuncionalidadRuta del archivoLínea
Definición de la herramienta GetAvailableSkillssrc/tools.ts29-72
Función discoverAllSkillssrc/skills.ts240-263
Función resolveSkillsrc/skills.ts269-283
Función findClosestMatchsrc/utils.ts88-125

Tipos clave:

  • SkillLabel = "project" | "user" | "claude-project" | "claude-user" | "claude-plugins": Enumeración de etiquetas de origen de habilidades

Constantes clave:

  • Umbral de coincidencia aproximada: 0.4 (utils.ts:124) - Similaridad inferior a este valor no devuelve sugerencias

Funciones clave:

  • GetAvailableSkills(): Devuelve la lista de habilidades formateada, soporta filtrado por consulta y sugerencias de coincidencia aproximada
  • resolveSkill(skillName: string, skillsByName: Map<string, Skill>): Soporta análisis de habilidades en formato namespace:skill-name
  • findClosestMatch(input: string, candidates: string[]): Calcula la mejor coincidencia basándose en múltiples estrategias de coincidencia (prefijo, contiene, distancia de edición)

Reglas de negocio:

  • Las habilidades con el mismo nombre se deduplican según el orden de descubrimiento, solo se conserva la primera (skills.ts:258)
  • Las consultas de búsqueda soportan el comodín *, convertido automáticamente a expresión regular (tools.ts:43)
  • Las sugerencias de coincidencia aproximada solo se activan cuando hay un parámetro de consulta y no hay resultados (tools.ts:49-57)