Découverte de Compétences

VérifiéSûr

Cette compétence liste toutes les compétences installées, avec leurs descriptions et catégories. Elle permet de découvrir les compétences disponibles ou d'en rechercher une spécifique par mot-clé.

Spar Skills Guide Bot
ProductiviteDébutant
02/06/2026
Claude Code
#skills-discovery#skill-management#claude-code#tool-discovery

Recommandé pour

Synthèse automatique

Liste les compétences installées dans Claude Code avec leurs descriptions et permet de les rechercher par mot-clé.

Points forts

  • Affiche rapidement toutes les compétences disponibles avec leur catégorie et leur nombre de workflows
  • Permet de filtrer par mot-clé grâce à l’option --search
  • Prend en charge les compétences nommées (ex. golem-powers/) et les fichiers SKILL.md
  • Extrait automatiquement la description depuis le frontmatter YAML ou le premier blocquote

Limites

  • Ne fonctionne que dans le contexte de Claude Code et les répertoires locaux configurés
  • Ne liste que les compétences installées localement, pas les compétences en ligne ou distantes
  • La recherche est textuelle et ne supporte pas les requêtes avancées (AND/OR)
Quand l'utiliser

Utilisez cette compétence lorsque vous voulez découvrir ou retrouver une compétence installée, ou vérifier les capacités disponibles dans votre environnement.

Quand l'éviter

Ne l’utilisez pas si vous avez déjà identifié la compétence dont vous avez besoin – invoquez-la directement (par exemple /commit) pour gagner du temps.

Analyse de sécurité

Sûr
Score qualité88/100

The script only reads local skill definition files under $HOME/.claude/commands and formats their descriptions. No network, file modification, or external command execution beyond standard directory scanning and string parsing. No obfuscation or dangerous operations.

Aucun point d'attention détecté

Comment cette analyse est faite

Exemples

List all skills
/skills
Search for git-related skills
/skills --search git
Find skills related to browser
/skills --search browser

name: skills description: Use when wanting to see what skills are available. Lists installed skills with descriptions. Covers list skills, search skills, discover skills, what skills. NOT for: using a specific skill (invoke that skill directly).

Skills Discovery

List and search your installed Claude Code skills.

Usage

When invoked via /skills, scan and display all available skills. If the user provides arguments like --search <keyword>, filter accordingly.

Instructions

Step 1: Scan Skills Directory

Run this to discover all skills:

#!/bin/bash
SKILLS_DIR="$HOME/.claude/commands"

echo "# Installed Skills"
echo ""

# Arrays to hold skills by category
declare -a domain_skills
declare -a infra_skills
declare -a custom_skills

# Function to extract description from a file
extract_desc() {
    local file="$1"
    # First try YAML frontmatter description
    if head -1 "$file" | grep -q '^---$'; then
        desc=$(awk '/^---$/{p++} p==1 && /^description:/{gsub(/^description: */, ""); print; exit}' "$file")
        if [[ -n "$desc" ]]; then
            echo "$desc"
            return
        fi
    fi
    # Fall back to first # header blockquote
    desc=$(awk '/^#/{found=1} found && /^>/{gsub(/^> */, ""); print; exit}' "$file")
    if [[ -n "$desc" ]]; then
        echo "$desc"
        return
    fi
    # Final fallback: first non-empty line after header
    awk '/^#/{found=1; next} found && NF{print; exit}' "$file"
}

# Function to count workflows in a directory
count_workflows() {
    local dir="$1"
    if [[ -d "$dir/workflows" ]]; then
        find "$dir/workflows" -name "*.md" 2>/dev/null | wc -l | tr -d ' '
    else
        echo "0"
    fi
}

# Function to determine source of a skill
get_source() {
    local path="$1"
    local resolved=$(readlink -f "$path" 2>/dev/null || echo "$path")

    if [[ "$resolved" == *"/golem-powers/"* ]] || [[ "$resolved" == *"/golems/skills/"* ]]; then
        echo "golem-powers"
    elif [[ "$resolved" == *"/superpowers/"* ]]; then
        echo "superpowers"
    elif [[ "$resolved" == *"/golems/"* ]] || [[ "$resolved" == *"/.config/golems/"* ]]; then
        echo "golem-powers"
    else
        echo "custom"
    fi
}

# Function to categorize skill
categorize_skill() {
    local name="$1"
    local desc="$2"

    # Infrastructure skills
    if echo "$name $desc" | grep -qiE 'git|github|commit|push|pr|1password|secret|vault|credential'; then
        echo "infra"
    # Domain skills (browser, PRD, etc)
    elif echo "$name $desc" | grep -qiE 'brave|browser|prd|product|archive|critique'; then
        echo "domain"
    else
        echo "custom"
    fi
}

# Scan for skills (handles namespaced skills like golem-powers/)
scan_skill_dir() {
    local dir="$1"
    local namespace="$2"

    for item in "$dir"/*; do
        [[ ! -e "$item" ]] && continue
        local name=$(basename "$item" .md)

        # Skip meta items
        [[ "$name" == "skills" ]] && continue

        if [[ -d "$item" ]]; then
            # Check if this is a skill directory (has SKILL.md)
            if [[ -f "$item/SKILL.md" ]]; then
                local full_name="${namespace}${name}"
                local desc=$(extract_desc "$item/SKILL.md")
                local workflows=$(count_workflows "$item")
                local source=$(get_source "$item")
                local category=$(categorize_skill "$name" "$desc")
                local entry="$full_name|$desc|$source|$workflows"

                case $category in
                    infra) infra_skills+=("$entry") ;;
                    domain) domain_skills+=("$entry") ;;
                    *) custom_skills+=("$entry") ;;
                esac
            else
                # This is a namespace directory (like golem-powers/), recurse
                scan_skill_dir "$item" "${name}:"
            fi
        elif [[ -f "$item" && "$item" == *.md ]]; then
            # Single-file skill
            local full_name="${namespace}${name}"
            local desc=$(extract_desc "$item")
            local source=$(get_source "$item")
            local category=$(categorize_skill "$name" "$desc")
            local entry="$full_name|$desc|$source|0"

            case $category in
                infra) infra_skills+=("$entry") ;;
                domain) domain_skills+=("$entry") ;;
                *) custom_skills+=("$entry") ;;
            esac
        fi
    done
}

# Start scanning from the root commands directory
scan_skill_dir "$SKILLS_DIR" ""

# Print function
print_skills() {
    local title="$1"
    shift
    local skills=("$@")

    if [[ ${#skills[@]} -gt 0 ]]; then
        echo "## $title"
        echo ""
        echo "| Skill | Description | Source | Workflows |"
        echo "|-------|-------------|--------|-----------|"
        for skill in "${skills[@]}"; do
            IFS='|' read -r name desc source workflows <<< "$skill"
            if [[ "$workflows" -gt 0 ]]; then
                echo "| **$name** | $desc | $source | $workflows |"
            else
                echo "| **$name** | $desc | $source | - |"
            fi
        done
        echo ""
    fi
}

# Output grouped by category
print_skills "Infrastructure" "${infra_skills[@]}"
print_skills "Domain" "${domain_skills[@]}"
print_skills "Custom" "${custom_skills[@]}"

echo "---"
echo "*Use \`/skills --search <keyword>\` to filter skills*"

Step 2: Handle Search Filter

If the user invoked /skills --search <keyword>, modify the output to filter:

SEARCH="$1"  # e.g., "git" or "browser"

# In the scan loop, add filtering:
if [[ -n "$SEARCH" ]]; then
    if ! echo "$name $desc" | grep -qi "$SEARCH"; then
        continue  # Skip non-matching skills
    fi
fi

Step 3: Present Results

After running the discovery script, present the results in a clean markdown table grouped by category:

  1. Infrastructure - git, github, secrets, credentials
  2. Domain - browser, PRD, specific tools
  3. Custom - user-created skills

For each skill, show:

  • Name: The skill command (e.g., /github)
  • Description: From frontmatter or first paragraph
  • Source: Where it comes from (golem-powers, superpowers, custom)
  • Workflows: Count of sub-workflows for progressive disclosure skills

Example Output

# Installed Skills

## Infrastructure

| Skill | Description | Source | Workflows |
|-------|-------------|--------|-----------|
| **github** | Git and GitHub CLI operations | golem-powers | 4 |
| **1password** | Secret management with 1Password | golem-powers | 5 |

## Domain

| Skill | Description | Source | Workflows |
|-------|-------------|--------|-----------|
| **brave** | Browser automation via brave-manager | golem-powers | - |
| **prd** | Generate Product Requirements Documents | golem-powers | - |
| **archive** | Archive completed PRD stories | golem-powers | - |

---
*Use `/skills --search <keyword>` to filter skills*

Quick Reference

  • /skills - List all installed skills
  • /skills --search git - Find skills related to git
  • /skills --search secret - Find skills for secrets management

Du fichier au premier essai

Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.

Consulter la source et ses fichiers annexes

Ce téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.

1. Télécharger le fichier

Télécharger SKILL.md

Depuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/skills-discovery-mmlj2p38/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.

Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.

mkdir -p '.skill-downloads/skills-discovery-mmlj2p38' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/skills-discovery-mmlj2p38/download' --output '.skill-downloads/skills-discovery-mmlj2p38/SKILL.md.part' && mv '.skill-downloads/skills-discovery-mmlj2p38/SKILL.md.part' '.skill-downloads/skills-discovery-mmlj2p38/SKILL.md'

2. Vérifier les prérequis

Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.

Extrait original : Quick Reference
  • /skills - List all installed skills
  • /skills --search git - Find skills related to git
  • /skills --search secret - Find skills for secrets management

Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.

3. Charger la skill

Le fichier ne fournit pas un en-tête name/description exploitable pour cette procédure native. Le téléchargement reste disponible pour lecture ; utilisez le mode manuel ci-dessous.

Mode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.

4. Faire un premier essai

Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :

Lis .skill-downloads/skills-discovery-mmlj2p38/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.

Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.

Skills similaires