Je voulais ajouter une fonctionnalité à OpenClaw qui n’existait pas : un digest de Hacker News qui résume les meilleures histoires chaque matin et les publie sur mon Slack. Rien de tel n’existait en tant que compétence. Alors, j’en ai construit une.
La première fois, cela a pris quatre heures, dont deux heures à lire mal la spécification de la compétence. La deuxième compétence que j’ai construite a pris 45 minutes. À la cinquième, je pouvais en réaliser une en 30 minutes. Voici le processus, débarrassé de toutes les erreurs que j’ai faites en cours de route.
Ce qu’est réellement une compétence
Une compétence est un dossier avec des instructions et des scripts optionnels. Au minimum, elle contient un fichier SKILL.md — un document en markdown qui indique à OpenClaw ce que fait la compétence, quand l’activer et comment l’utiliser.
C’est vraiment tout. Pas de compilation. Pas de registre de paquets. Pas de système de construction. Une compétence est un document qu’OpenClaw lit lorsqu’il doit effectuer une tâche spécifique.
La compétence la plus simple possible :
Un dossier appelé daily-hn-digest contenant un seul fichier, SKILL.md, avec des instructions comme : « Lorsque l’utilisateur demande un digest de Hacker News, utilisez l’outil web_search pour trouver les actualités les plus importantes sur Hacker News, résumez chacune en 2-3 phrases et formatez le résultat sous forme de liste à puces. »
Cela fonctionne. L’agent lit les instructions, les suit et produit un digest de Hacker News. Aucun code nécessaire.
Ajouter de la complexité quand vous en avez besoin
La compétence de base gère des cas simples. Pour des flux de travail plus complexes, vous ajoutez :
Fichiers de référence. Ma compétence de Hacker News inclut un dossier refs/ avec des exemples de sorties — montrant à l’agent à quoi ressemble un bon digest. Cela améliore considérablement la cohérence. Au lieu de « résumer les histoires », l’agent voit « voici à quoi ressemble un bon résumé — respectez ce format. »
Scripts. Certaines compétences incluent des scripts shell ou des scripts Python pour des tâches que l’IA ne peut pas faire directement. Ma compétence de digest inclut un script qui récupère l’API de Hacker News (plus rapide et plus fiable que le scraping web). Les instructions de la compétence disent à l’agent d’exécuter le script et de traiter sa sortie.
Configuration. Les compétences peuvent lire à partir de fichiers de configuration. Ma compétence de digest a un config.yaml qui spécifie combien d’histoires inclure (par défaut : 10), quelles catégories prioriser et le format de sortie (Slack, email ou texte brut).
La structure qui fonctionne
Après avoir construit une douzaine de compétences, voici la structure de dossier sur laquelle je me suis arrêté :
my-skill/
├── SKILL.md — Instructions principales (obligatoire)
├── refs/ — Exemples d’entrées et de sorties (optionnel)
├── scripts/ — Scripts d’assistance (optionnel)
└── config.yaml — Configuration (optionnel)
SKILL.md est le fichier le plus important. Il doit inclure :
1. Une description claire de ce que fait la compétence
2. Quand la compétence doit s’activer (conditions de déclenchement)
3. Instructions étape par étape pour le flux de travail
4. Guide de gestion des erreurs
5. Exemples de bonne sortie
La qualité de votre SKILL.md détermine directement la qualité de la compétence. Un SKILL.md vague produit des résultats incohérents. Un SKILL.md précis produit des résultats fiables.
Écrire de bonnes instructions
La plus grande leçon que j’ai apprise : écrivez SKILL.md comme si vous formiez un nouvel employé, pas comme si vous écriviez de la documentation.
Mauvais : « Récupérez les histoires de Hacker News et résumez-les. »
Bon : « Récupérez les 10 meilleures histoires de l’API Hacker News en utilisant le script à scripts/fetch-hn.sh. Pour chaque histoire, écrivez un résumé de 2-3 phrases qui couvre : ce qui s’est passé, pourquoi c’est important et la réaction de la communauté (si notable). Formatez comme une liste numérotée avec le titre de l’histoire comme lien. »
La bonne version élimine l’ambiguïté. L’agent sait exactement quoi faire, quel format utiliser et quelles informations inclure. Pas de place pour une interprétation créative là où vous ne le souhaitez pas.
Inclure des modes de défaillance. « Si l’API de Hacker News est injoignable, utilisez web_search en tant que solution de secours. Si moins de 5 histoires sont disponibles, notez cela dans la sortie et poursuivez avec ce qui est disponible. Ne fabriquez pas d’histoires. »
Inclure des limites. « Ne pas faire de commentaires. Ne pas ajouter d’opinions sur les histoires. Ne pas sauter d’histoires parce qu’elles semblent peu importantes. Présentez toutes les principales histoires de manière neutre. »
Tester votre compétence
Le processus de test est simple : installez la compétence, déclenchez-la, et vérifiez la sortie.
Pour ma compétence de Hacker News :
1. Copiez le dossier dans le répertoire des compétences
2. Redémarrez OpenClaw (ou attendez qu’il détecte la nouvelle compétence)
3. Tapez « Donnez-moi un digest de Hacker News »
4. Vérifiez la sortie par rapport aux attentes
5. Ajustez SKILL.md en fonction de ce qui n’a pas fonctionné
Je passe généralement par 3-4 cycles de révisions avant d’être satisfait. Problèmes courants : l’agent saute des étapes (ajouter des instructions plus explicites), mise en forme incohérente (ajouter un exemple de sortie), ou inclure des informations que vous ne vouliez pas (ajouter des limites explicites).
Publication et partage
Une fois que votre compétence fonctionne, vous pouvez la partager via ClawHub — le marché communautaire des compétences. Téléchargez votre dossier de compétence, ajoutez une description, et d’autres utilisateurs peuvent l’installer avec une seule commande.
Avant de publier, nettoyez votre compétence : supprimez toute configuration personnelle, ajoutez un README avec des instructions de configuration, et testez-la sur une installation fraîche d’OpenClaw pour vous assurer qu’elle ne dépend pas de votre environnement local.
Les meilleures compétences communautaires sont ciblées (elles font bien une chose), bien documentées (SKILL.md clair), et solides (elles gèrent les échecs avec calme). Les pires sont vagues (« utilisez l’IA pour faire des choses »), mal documentées, ou fragiles.
Mes compétences personnalisées préférées
Au-delà du digest de Hacker News, voici les compétences personnalisées que j’utilise quotidiennement :
Préparation de réunion. Avant une réunion, je dis « préparez ma réunion à 14h avec [client]. » La compétence récupère les emails récents, les mises à jour de projet et les problèmes en cours liés à ce client et compile un briefing d’une page.
Assistant de révision de code. Lorsque je pousse du code, la compétence le passe en revue selon les normes de codage de notre équipe (documentées dans un fichier de référence) et publie des commentaires dans notre canal d’équipe.
Générateur de rétro hebdomadaire. Chaque vendredi, la compétence compile ce que j’ai accompli cette semaine (à partir des commits GitHub, des messages Slack et des tâches complétées) et rédige un résumé hebdomadaire.
Chacune de ces compétences a pris environ une heure à construire. Chacune fait économiser 15 à 30 minutes par utilisation. Le retour sur investissement est évident.
🕒 Published: