Choisir des outils depuis les étoiles GitHub et les catalogues officiels de compétences
Objectif : lorsqu'une tâche nécessite un outil, une bibliothèque, un CLI, un serveur MCP ou une compétence d'agent, privilégier ce que l'utilisateur connaît déjà (ses étoiles GitHub) et les catalogues officiels des fournisseurs plutôt que des résultats Web aléatoires, tout en vérifiant la qualité.
Tous les chemins ci-dessous sont relatifs au dossier de cette compétence (le répertoire contenant ce SKILL.md).
1. Clarifier le besoin
Écrire en une ligne ce que l'outil doit faire, ainsi que les contraintes impératives (langage/environnement d'exécution, système d'exploitation, matériel tel que GPU/VRAM, licence, hors ligne/local, budget). Utiliser ce que vous savez déjà de l'environnement de l'utilisateur.
2. Rechercher dans les étoiles GitHub de l'utilisateur
Trouver l'identifiant GitHub de l'utilisateur (demander une fois si inconnu, ou utiliser gh api user --jq .login lorsque gh est connecté en son nom). Ensuite, utiliser la première source disponible :
- Copie locale (optionnelle). Si
references/stars.csvoureferences/stars_by_list.mdexiste dans le dossier de cette compétence (ou si l'utilisateur indique une copie, par exemple dans un dépôt privé séparé), la consulter en premier ; elle fonctionne hors ligne.stars.csvcolonnes :lists(noms des listes d'étoiles GitHub, séparés par|;(unlisted)si aucune),full_name,url,description,description_ja,language,stars,pushed_at,archived,license,topics,starred_at.stars_by_list.md: les mêmes dépôts regroupés par liste d'étoiles, une ligne chacun, avec la date de l'instantané (Snapshot:) en haut. Les noms de listes sont de bonnes indications de catégorie.- L'instantané peut être obsolète ; lorsqu'on est en ligne et que la fraîcheur est importante, effectuer également la vérification en direct ci-dessous.
- En direct, en lecture seule (par défaut si aucun instantané n'existe) :
gh api --paginate "users/<login>/starred?per_page=100" --jq '.[] | [.full_name,.html_url,.description,.language,(.topics|join(" ")),.stargazers_count,.pushed_at,.archived] | @tsv'(ou l'API REST non authentifiéehttps://api.github.com/users/<login>/starredsighn'est pas disponible). Si l'utilisateur organise ses étoiles en listes GitHub, utiliser les noms de listes comme indications de catégorie.
Rechercher des correspondances dans la description, les sujets, le nom et le langage à l'aide de plusieurs synonymes (y compris d'autres langues dans lesquelles l'utilisateur écrit), par exemple rg -i "video|動画|ffmpeg" references/stars.csv. Parcourir rapidement le README des résultats plausibles avant de recommander.
3. Rechercher dans les catalogues officiels de compétences / plugins (lorsqu'une compétence d'agent ou un plugin serait utile)
- Exécuter
npx -y skills find "<requête>", éventuellement limité avec--owner <éditeur>aux éditeurs officiels, par exemple anthropics, openai, cursor, github, google, google-gemini, microsoft, vercel-labs, cloudflare, huggingface, awslabs. Cela nécessite un accès Internet ; ignorer cette étape et le mentionner si l'environnement est hors ligne. - Considérer également les dépôts officiels des fournisseurs directement (par exemple anthropics/skills, anthropics/claude-plugins-official, openai/skills, openai/plugins, cursor/plugins, github/awesome-copilot, google/skills, vercel-labs/agent-skills, huggingface/skills, microsoft/skills, cloudflare/skills). Vérifier qu'un dépôt appartient à l'organisation du fournisseur avant de le qualifier d'officiel.
4. Filtre de qualité (à appliquer à chaque candidat)
- Utiliser
stars,pushed_at,archivedetlicensede l'instantané, et les rafraîchir avecgh api repos/<propriétaire>/<dépôt>lorsqu'on est en ligne. - Privilégier les projets bien connus et activement maintenus. Ignorer les dépôts archivés, ceux sans activité significative depuis environ 1 an et ceux avec très peu d'étoiles, sauf si rien de mieux n'existe (dans ce cas, le mentionner).
- Les étoiles peuvent inclure d'anciens dépôts ou des projets humoristiques : le fait d'être marqué d'une étoile est un signal d'intérêt, pas de qualité.
- Si rien dans les étoiles ou les catalogues officiels ne correspond, le dire et recourir à une recherche normale de l'outil standard établi. Ne jamais forcer un dépôt marqué d'une étoile.
5. Recommander
- Donner 1 meilleur choix ainsi que jusqu'à 2-3 alternatives. Pour chacun : nom avec lien, une ligne sur ce qu'il fait, pourquoi il correspond à cette tâche et à ces contraintes, nombre d'étoiles et date de dernière mise à jour (indiquer si cela provient de l'instantané ou d'une vérification en direct), et s'il provient des étoiles de l'utilisateur, d'un catalogue officiel ou d'une recherche générale.
- Ne pas inventer d'étoiles, de dates ou de fonctionnalités ; ne rapporter que ce qui a été vérifié.
- L'installation, l'ajout d'une étoile ou toute modification nécessite l'accord préalable de l'utilisateur ; cette compétence est en lecture seule par défaut.
Créer ou mettre à jour un instantané (optionnel)
python3 scripts/refresh_stars.py <login> écrit references/stars.csv et references/stars_by_list.md (lecture seule ; nécessite que gh soit connecté ; les noms de listes d'étoiles ne sont renseignés que si gh est connecté en tant que <login>, sinon chaque dépôt est marqué (unlisted)). Les valeurs existantes de description_ja sont conservées. Les données sont personnelles : les garder hors des dépôts publics (voir .gitignore) ou les stocker dans un dépôt privé séparé.