Skill Creator

Créer vos Propres Compétences IA

Formation IA Système Modulaire Méta-Skill

Au programme

  1. Qu'est-ce qu'un skill ?
  2. Le skill skill-creator
  3. Workflow en 6 étapes
  4. Structure d'un skill
  5. Scripts disponibles
  6. Progressive disclosure
  7. Bonnes pratiques
  8. Exemples concrets

Qu'est-ce qu'un skill ?

Un skill est un package modulaire qui étend les capacités de Claude

  • Guides d'onboarding pour domaines spécifiques
  • Transforme Claude en agent spécialisé
  • Contient connaissances procédurales
  • Modulaire et réutilisable

4 types de ressources

1. Workflows

Procédures multi-étapes pour domaines spécifiques

2. Outils

Instructions pour formats de fichiers ou APIs

3. Expertise

Connaissances spécifiques, schémas, logique métier

4. Ressources

Scripts, références, assets pour tâches complexes

Anatomie d'un skill

skill-name/ ├── SKILL.md (requis) │ ├── YAML frontmatter (requis) │ │ ├── name: (requis) │ │ └── description: (requis) │ └── Instructions Markdown (requis) └── Bundled Resources (optionnel) ├── scripts/ - Code exécutable ├── references/ - Documentation └── assets/ - Fichiers de sortie

SKILL.md est le seul fichier obligatoire

Le skill skill-creator

Un méta-skill pour créer d'autres skills

  • Guide pour créer des skills efficaces
  • Documentation complète du processus
  • Scripts d'initialisation et packaging
  • Templates prêts à l'emploi

Progressive Disclosure

Système de chargement en 3 niveaux pour gérer efficacement le contexte :

1
Métadonnées (name + description) → ~100 mots → Toujours en contexte
2
SKILL.md → <5k mots → Quand skill se déclenche
3
Bundled resources → Illimité* → Au besoin par Claude

*Illimité car les scripts peuvent être exécutés sans lecture dans la fenêtre de contexte

Workflow en 6 étapes

1
Comprendre avec exemples concrets
2
Planifier les ressources réutilisables
3
Initialiser avec init_skill.py
4
Éditer le skill (scripts, references, assets, SKILL.md)
5
Packager avec package_skill.py
6
Itérer et améliorer

Étape 1 : Comprendre

Objectif : Comprendre clairement comment le skill sera utilisé

  • Collecter des exemples concrets d'utilisation
  • Identifier les fonctionnalités attendues
  • Comprendre les déclencheurs du skill

Exemple : Skill image-editor

  • "Quelle fonctionnalité ? Édition, rotation, autre ?"
  • "Exemples d'usage : 'Enlever les yeux rouges', 'Pivoter l'image' ?"
  • "Qu'est-ce qui devrait déclencher ce skill ?"

Étape 2 : Planifier

Objectif : Identifier les ressources réutilisables

Pour chaque exemple, se demander :

  • Quel code est réécrit à chaque fois ? → scripts/
  • Quelle documentation est consultée ? → references/
  • Quels fichiers sont réutilisés ? → assets/

pdf-editor

Rotation PDF → scripts/rotate_pdf.py

frontend-webapp

Boilerplate HTML → assets/hello-world/

Étape 3 : Initialiser

Utiliser le script init_skill.py

python scripts/init_skill.py my-skill --path ./skills

Le script génère :

  • SKILL.md avec frontmatter et placeholders TODO
  • Répertoires scripts/, references/, assets/
  • Fichiers exemples personnalisables

Sauter cette étape uniquement si le skill existe déjà

Étape 4 : Éditer

Développer le contenu du skill

Ordre recommandé :

1
Créer scripts/, references/, assets/
2
Supprimer fichiers exemples non nécessaires
3
Mettre à jour SKILL.md avec style impératif/infinitif

Style d'écriture : "To accomplish X, do Y" (pas "You should")

Étape 5 : Packager

Créer un fichier .zip distributable

python scripts/package_skill.py ./skills/my-skill

Le script :

  • Valide automatiquement le skill
  • Package en .zip si validation OK
  • Rapporte les erreurs si problème

Sortie : my-skill.zip

Étape 6 : Itérer

Améliorer le skill après tests réels

  • Utiliser le skill sur tâches réelles
  • Noter difficultés et inefficacités
  • Identifier améliorations possibles
  • Mettre à jour SKILL.md
  • Ajuster bundled resources
  • Tester à nouveau

L'amélioration continue fait la qualité d'un skill !

Structure d'un skill

skill-name/ ├── SKILL.md # Fichier principal (requis) │ ├── Frontmatter YAML │ │ ├── name: skill-name │ │ └── description: ... │ └── Instructions markdown ├── scripts/ # Code exécutable (optionnel) │ ├── example.py │ └── helper.sh ├── references/ # Documentation (optionnel) │ ├── api_reference.md │ └── workflow_guide.md └── assets/ # Fichiers de sortie (optionnel) ├── template.html └── logo.png

SKILL.md

Fichier principal obligatoire

---
name: my-skill
description: This skill should be used when users want to...
---

# My Skill

## Overview
[Description du skill]

## Usage
[Instructions d'utilisation]

Métadonnées de qualité = déclenchement précis

scripts/

Code exécutable (Python/Bash/etc.)

Quand inclure ?

  • Code réécrit répétitivement
  • Fiabilité déterministe requise
  • Opérations complexes

Avantages :

  • Token-efficient
  • Déterministe
  • Exécutable sans lecture

Exemple : scripts/rotate_pdf.py pour rotation PDF

references/

Documentation chargée au besoin dans le contexte

Quand inclure ?

  • Documentation détaillée
  • Schémas de données
  • Guides de workflow
  • Spécifications API

Avantages :

  • SKILL.md reste léger
  • Chargé uniquement si besoin
  • Information découvrable

Éviter duplication : info dans SKILL.md OU references/, pas les deux

assets/

Fichiers utilisés dans la sortie (non chargés en contexte)

Quand inclure ?

  • Templates de documents
  • Images et icônes
  • Code boilerplate
  • Polices de caractères

Exemples :

  • logo.png
  • template.pptx
  • hello-world/
  • font.ttf

Usage : Copiés ou modifiés dans la sortie finale

Scripts disponibles

init_skill.py

Initialiser un nouveau skill

init_skill.py my-skill \
  --path ./skills
  • Crée la structure complète
  • Génère SKILL.md avec TODOs
  • Ajoute fichiers exemples

package_skill.py

Packager en .zip

package_skill.py \
  ./skills/my-skill
  • Valide automatiquement
  • Crée fichier .zip
  • Rapporte erreurs

validate_skill.py

Valider la structure (appelé par package_skill.py)

  • Vérifier frontmatter YAML
  • Vérifier conventions de nommage
  • Vérifier structure de fichiers

Progressive Disclosure

Principe de chargement progressif pour optimiser le contexte

  • Évite de surcharger la fenêtre de contexte
  • Charge uniquement ce qui est nécessaire
  • Permet skills avec ressources illimitées

Niveau 1 : Métadonnées

1
name + description (~100 mots)

Toujours en contexte

---
name: pdf-editor
description: This skill should be used when users want to
  manipulate PDF files (merge, split, rotate, extract text).
---

Ces métadonnées déterminent quand le skill se déclenche

Niveau 2 : SKILL.md

2
Contenu markdown (<5k mots)

Chargé quand le skill se déclenche

  • Vue d'ensemble du skill
  • Instructions principales
  • Références aux bundled resources
  • Exemples d'utilisation

Garder <5k mots pour ne pas surcharger le contexte

Niveau 3 : Bundled Resources

3
scripts/, references/, assets/ (illimité*)

Chargé uniquement au besoin par Claude

  • scripts/ : Exécutables sans lecture (token-efficient)
  • references/ : Lus si Claude en a besoin
  • assets/ : Utilisés dans sortie (jamais chargés)

*Illimité car scripts exécutables sans consommer de tokens

Bonnes pratiques

À faire

  • Style impératif/infinitif
  • Métadonnées précises
  • SKILL.md < 5k mots
  • Éviter duplication
  • Tester avant packaging

À éviter

  • Style "You should"
  • Description vague
  • SKILL.md trop long
  • Info dupliquée
  • Packaging sans test

Style d'écriture

Utiliser forme impérative/infinitive

BON

To rotate a PDF, use the
rotate_pdf.py script.

When working with images,
consider the output format.

MAUVAIS

You should use the
rotate_pdf.py script to
rotate PDFs.

If you need to work with
images, you should consider
the format.

Métadonnées de qualité

Description = Déclenchement du skill

BON

description: This skill should be used when users want to
  create reveal.js presentations with progressive fragments,
  2D navigation, and MathJax integration for educational content.

MAUVAIS

description: Create presentations

Être spécifique sur quand utiliser le skill

Éviter la duplication

Information dans SKILL.md OU references/, pas les deux

BON

SKILL.md :

For detailed API docs,
see references/api.md

references/api.md :

[Documentation complète]

MAUVAIS

SKILL.md :

[Documentation complète]

references/api.md :

[Même documentation]

SKILL.md = vue d'ensemble, references/ = détails

Exemples concrets de skills

Le système compte déjà 15+ skills créés avec skill-creator

  • beamer-presentation
  • bfcours-latex
  • educational-app-builder
  • reveals-presentation
  • programmes-officiels
  • pdf
  • docx
  • pptx

Exemple : beamer-presentation

Skill pour créer des présentations LaTeX Beamer

beamer-presentation/ ├── SKILL.md ├── scripts/ │ └── compile_beamer.sh ├── references/ │ ├── beamer_guide.md │ └── themes.md └── assets/ └── template_beamer.tex
  • Scripts : Compilation automatique
  • References : Guide Beamer détaillé
  • Assets : Template de base

Exemple : reveals-presentation

Skill pour créer des présentations reveal.js

reveals-presentation/ ├── SKILL.md ├── references/ │ ├── fragments-reveals.md │ ├── navigation-2d.md │ ├── animations-transitions.md │ └── mathjax-integration.md └── assets/ └── templates/ ├── template-lycee.html └── template-college.html
  • References : Guides complets pour fragments, navigation 2D, MathJax
  • Assets : Templates par niveau scolaire

Exemple : educational-app-builder

Skill pour créer des applications pédagogiques

educational-app-builder/ ├── SKILL.md ├── scripts/ │ ├── init_app.py │ └── build_app.sh ├── references/ │ ├── app_structure.md │ └── deployment_guide.md └── assets/ ├── html_boilerplate/ ├── css/ └── js/
  • Scripts : Initialisation et build automatique
  • References : Architecture et déploiement
  • Assets : Boilerplate HTML/CSS/JS

Créer un agent associé (optionnel)

Un agent peut utiliser un skill de manière autonome

Skill

  • Package de compétences
  • Workflows et ressources
  • Utilisable par tout agent

Agent

  • Instance Claude spécialisée
  • Charge un ou plusieurs skills
  • Personnalité et contexte

Exemple : Agent "latex-expert" charge les skills beamer-presentation, bfcours-latex, tex-compiling-skill

Avantages du système

Réutilisabilité

Skills partagés entre projets et agents

Modularité

Combiner plusieurs skills selon besoin

Contexte optimisé

Progressive disclosure évite surcharge

Token-efficient

Scripts exécutables sans lecture

Qualité garantie

Validation automatique avant packaging

Apprentissage

Amélioration continue par itération

Cas d'usage typiques

Automatisation

  • Génération de documents
  • Manipulation de fichiers
  • Build et compilation

Intégrations

  • APIs spécifiques
  • Bases de données
  • Services cloud

Expertise

  • Guides métier
  • Standards entreprise
  • Politiques et règles

Pédagogie

  • Création de cours
  • Exercices interactifs
  • Ressources éducatives

Exemple complet : Créer un skill

Scénario : Créer un skill "markdown-converter" pour convertir Markdown en HTML/PDF

1. Comprendre les besoins

Questions à poser :

  • "Quels formats de sortie ? HTML, PDF, DOCX ?"
  • "Exemple d'utilisation : 'Convertir notes.md en PDF' ?"
  • "Quels styles de rendu ? Minimaliste, académique ?"
  • "Déclencheurs : 'convert markdown', 'md to pdf' ?"

Comprendre = base d'un skill efficace

2. Planifier les ressources

scripts/

  • md_to_html.py
  • md_to_pdf.py
  • apply_styles.py

references/

  • markdown_syntax.md
  • styling_guide.md

assets/

  • templates/minimal.html
  • templates/academic.html
  • styles/print.css

3. Initialiser

python scripts/init_skill.py markdown-converter \
  --path .claude/skills

Structure créée avec fichiers exemples

4. Éditer

1
Créer les scripts Python de conversion
2
Ajouter références (syntaxe Markdown, guide de styles)
3
Créer templates HTML et styles CSS
4
Mettre à jour SKILL.md avec instructions

5. Packager

python scripts/package_skill.py \
  .claude/skills/markdown-converter

Validation réussie

Fichier créé : markdown-converter.zip

6. Itérer

Après tests :

  • Ajouter support pour tableaux complexes
  • Améliorer rendu des formules mathématiques
  • Ajouter template "présentation"
  • Optimiser vitesse de conversion

Ré-éditer → Re-packager → Tester

Méta-réflexivité

Le skill skill-creator a été créé... avec skill-creator !

Récursivité

  • Skill pour créer des skills
  • Auto-amélioration possible
  • Bootstrap du système

Système complet

  • 15+ skills créés
  • Agents spécialisés
  • Écosystème évolutif

Un skill qui génère tous les autres skills = fondation du système

En résumé

Points clés

  • Skills = packages modulaires pour Claude
  • SKILL.md obligatoire, ressources optionnelles
  • Workflow en 6 étapes guidées
  • Progressive disclosure optimise contexte
  • Scripts d'automatisation fournis
  • Validation automatique

Bénéfices

  • Réutilisabilité maximale
  • Modularité et flexibilité
  • Token-efficient
  • Qualité garantie
  • Amélioration continue
  • Écosystème évolutif

Créez vos propres skills pour étendre Claude à l'infini !

Ressources

Documentation

  • .claude/skills/skill-creator/SKILL.md
  • scripts/init_skill.py
  • scripts/package_skill.py
  • scripts/validate_skill.py

Exemples

  • .claude/skills/beamer-presentation/
  • .claude/skills/reveals-presentation/
  • .claude/skills/educational-app-builder/
  • .claude/skills/bfcours-latex/

Questions ?