Skillz-Writing-Skills — Méta-skill création de skills
Tu es en train de créer ou modifier un skill dans core/skills/. Suis ce guide pour rester cohérent avec les 34 skills existants.
Quand utiliser
- L'utilisateur dit "crée un skill X", "ajoute un skill", "fais un skill qui…"
- Tu vas modifier un
SKILL.md existant (refactor, amélioration de la description, fix de comportement)
- Tu observes qu'un workflow récurrent mériterait d'être un skill réutilisable
Quand NE PAS utiliser
- Pour créer une commande slash (
core/commands/*.md) → c'est une autre couche d'abstraction, écris directement la commande
- Pour modifier
CLAUDE.md → c'est de la doc projet, pas un skill
- Pour ajouter un fichier de knowledge (
core/knowledge/) → pas de structure SKILL.md à respecter
Process
1. Comprendre le besoin (1 min)
Avant d'écrire :
- Quel est le trigger ? Quand ce skill doit s'activer ?
- Quel est l'output attendu ? (un document, du code, une décision, une question à l'utilisateur)
- Existe-t-il déjà un skill qui couvre ce besoin ? (
ls core/skills/ | grep <mot-clé>)
- Qui est l'utilisateur cible ? (toi en mode autonome, l'orchestrateur principal, un subagent ?)
Si un skill existant couvre déjà 70%+ du besoin → modifier plutôt que créer.
2. Choisir l'emplacement et le nom
- Emplacement :
core/skills/<nom-du-skill>/SKILL.md
- Nom : kebab-case, descriptif, sans préfixe "skill-"
- Exemples bons :
code-implementer, pm-prd, figma-implement-design
- Exemples mauvais :
helper, utility, skill-coder (préfixe redondant)
3. Écrire le frontmatter (le plus important)
---
name: <nom-du-skill> # kebab-case, identique au nom de dossier
description: <1-3 phrases> # voir règles ci-dessous
---
Règles pour description (c'est ce que Claude lit pour décider si activer le skill) :
- Commence par un verbe d'action : "Conçoit…", "Implémente…", "Audit…", "Génère…"
- Inclut explicitement les triggers : "Utiliser quand l'utilisateur dit X, ou quand Y se produit, ou quand le contexte est Z"
- Inclut la sortie : "Produit un document/code/rapport en…"
- 50-200 caractères pour description courte, jusqu'à 500 si triggers complexes
Mauvais : description: helper for testing
Bon : description: Écrit et exécute les tests pour valider l'implémentation. Priorités P0-P3, risk-based. Utilisé comme agent worker depuis /dev ou en standalone.
4. Structure du SKILL.md
Sections recommandées (dans cet ordre, omet ce qui n'apporte rien) :
---
name: ...
description: ...
---
# Titre du skill
## Quand utiliser
- Triggers explicites, scénarios concrets
## Quand NE PAS utiliser
- Cas d'usage adjacents qui devraient utiliser un autre skill/commande
## Process
### 1. Étape 1 (titre actionnable)
### 2. Étape 2
### 3. Étape 3
## Output attendu
- Format précis (chemin de fichier, structure, contenu type)
## Exemples
[1-3 exemples concrets, pas d'abstrait]
## Anti-patterns
- À éviter, et pourquoi
5. Vocabulaire et conventions
- Langue : FR par défaut (cohérence projet). EN OK si le skill est purement technique sans contexte projet.
- Workflow vocabulary : D-EPCT+R, Discovery, /dev, /quick-fix — utiliser ce vocabulaire quand pertinent
- Phases : Explore → Plan → Implement → Review → Ship (référencer les phases si applicable)
- Pas de jargon LLM : éviter "I will analyze", "let me think", "as an AI". Écrire en mode procédural.
- Pas d'over-engineering : KISS. Un skill = un objectif clair. Si tu décris 5 sous-skills, c'est 5 skills séparés.
- Agent-readable : description concise, commandes claires, sections scannables. Si un skill devient long, déplacer les détails en
references/ plutôt que tout charger par défaut; ne pas appliquer de seuil mécanique sans juger le contexte.
6. Tester le skill
Avant de considérer le skill comme prêt :
- Self-review : relire le frontmatter — est-ce qu'un Claude qui voit cette description saura quand l'utiliser ?
- Test session : démarrer une session test, énoncer un trigger naturel, voir si Claude active le skill
- Cohérence : vérifier qu'aucun autre skill ne se déclenche aussi (sinon clarifier la frontière dans les descriptions)
7. Documenter
- Mentionner le nouveau skill dans
CLAUDE.md si c'est un workflow majeur (sinon non, la liste des skills est déjà longue)
- Si le skill est appelé par une commande slash, lier les deux explicitement dans la commande
Output attendu
Un fichier core/skills/<nom>/SKILL.md :
- Frontmatter
name + description riche en triggers
- Sections claires, FR, vocabulaire D-EPCT+R
- < 200 lignes typiquement (sinon découper en plusieurs skills)
- Au moins 1 exemple concret
- Pas de copie de texte d'autres skills (DRY)
Exemples de bons skills (modèles)
code-implementer/SKILL.md — workflow worker depuis /dev, scope clair
pm-prd/SKILL.md — output bien défini, triggers explicites
dev-workflow/SKILL.md — exécution séquentielle runtime-agnostic, exemple de doc soigné
Anti-patterns
| Symptôme |
Pourquoi c'est mauvais |
Fix |
| Description vague ("helper for X") |
Claude n'activera jamais le skill |
Reformuler avec triggers concrets + verbe d'action |
| Skill > 500 lignes |
Trop de scopes mélangés |
Découper en 2-3 skills orthogonaux |
| Description en EN, contenu en FR (ou inverse) |
Incohérence avec le projet |
Aligner sur la langue du projet (FR par défaut) |
| Importer du texte d'un skill upstream sans réécrire |
Risque licence + incohérence vocabulaire |
Réécrire avec nos termes D-EPCT+R |
| Pas d'exemple concret |
Skill abstrait, peu utilisable |
Ajouter au moins 1 exemple end-to-end |
| Pas de "Quand NE PAS utiliser" |
Skill sur-déclenché |
Lister explicitement les cas adjacents avec leur skill correct |
| Skill massif sans progressive disclosure |
Les agents chargent trop de contexte inutile |
Garder le workflow coeur dans SKILL.md, mettre les matrices/exemples en references/ |
Référence
Inspiré de la philosophie superpowers/writing-skills (obra/superpowers), réécrit pour le vocabulaire D-EPCT+R + multi-agent + FR de Skillz-Claude. Pas de dépendance runtime, pas de copie de contenu.
1---2name: skillz-writing-skills3description: Guide la création ou la modification d'un skill Skillz-Claude. Utiliser quand l'utilisateur demande "crée un skill", "ajoute un skill", "améliore ce skill", ou quand on doit ajouter/refactorer un fichier dans core/skills/. Garantit cohérence avec le vocabulaire D-EPCT+R et les conventions FR du projet. Inspiré de superpowers/writing-skills mais réécrit pour notre stack.4---56# Skillz-Writing-Skills — Méta-skill création de skills78Tu es en train de créer ou modifier un skill dans `core/skills/`. Suis ce guide pour rester cohérent avec les 34 skills existants.910## Quand utiliser1112- L'utilisateur dit "crée un skill X", "ajoute un skill", "fais un skill qui…"13- Tu vas modifier un `SKILL.md` existant (refactor, amélioration de la description, fix de comportement)14- Tu observes qu'un workflow récurrent mériterait d'être un skill réutilisable1516## Quand NE PAS utiliser1718- Pour créer une **commande slash** (`core/commands/*.md`) → c'est une autre couche d'abstraction, écris directement la commande19- Pour modifier `CLAUDE.md` → c'est de la doc projet, pas un skill20- Pour ajouter un fichier de **knowledge** (`core/knowledge/`) → pas de structure SKILL.md à respecter2122## Process2324### 1. Comprendre le besoin (1 min)2526Avant d'écrire :2728- Quel est le **trigger** ? Quand ce skill doit s'activer ?29- Quel est l'**output** attendu ? (un document, du code, une décision, une question à l'utilisateur)30- Existe-t-il déjà un skill qui couvre ce besoin ? (`ls core/skills/ | grep <mot-clé>`)31- Qui est l'utilisateur cible ? (toi en mode autonome, l'orchestrateur principal, un subagent ?)3233Si un skill existant couvre déjà 70%+ du besoin → **modifier** plutôt que créer.3435### 2. Choisir l'emplacement et le nom3637- Emplacement : `core/skills/<nom-du-skill>/SKILL.md`38- Nom : kebab-case, descriptif, sans préfixe "skill-"39- Exemples bons : `code-implementer`, `pm-prd`, `figma-implement-design`40- Exemples mauvais : `helper`, `utility`, `skill-coder` (préfixe redondant)4142### 3. Écrire le frontmatter (le plus important)4344```yaml45---46name: <nom-du-skill> # kebab-case, identique au nom de dossier47description: <1-3 phrases> # voir règles ci-dessous48---49```5051**Règles pour `description`** (c'est ce que Claude lit pour décider si activer le skill) :5253- Commence par un verbe d'action : "Conçoit…", "Implémente…", "Audit…", "Génère…"54- Inclut **explicitement les triggers** : "Utiliser quand l'utilisateur dit X, ou quand Y se produit, ou quand le contexte est Z"55- Inclut **la sortie** : "Produit un document/code/rapport en…"56- 50-200 caractères pour description courte, jusqu'à 500 si triggers complexes5758Mauvais : `description: helper for testing`59Bon : `description: Écrit et exécute les tests pour valider l'implémentation. Priorités P0-P3, risk-based. Utilisé comme agent worker depuis /dev ou en standalone.`6061### 4. Structure du SKILL.md6263Sections recommandées (dans cet ordre, omet ce qui n'apporte rien) :6465```markdown66---67name: ...68description: ...69---7071# Titre du skill7273## Quand utiliser74- Triggers explicites, scénarios concrets7576## Quand NE PAS utiliser77- Cas d'usage adjacents qui devraient utiliser un autre skill/commande7879## Process80### 1. Étape 1 (titre actionnable)81### 2. Étape 282### 3. Étape 38384## Output attendu85- Format précis (chemin de fichier, structure, contenu type)8687## Exemples88[1-3 exemples concrets, pas d'abstrait]8990## Anti-patterns91- À éviter, et pourquoi92```9394### 5. Vocabulaire et conventions9596- **Langue** : FR par défaut (cohérence projet). EN OK si le skill est purement technique sans contexte projet.97- **Workflow vocabulary** : D-EPCT+R, Discovery, /dev, /quick-fix — utiliser ce vocabulaire quand pertinent98- **Phases** : Explore → Plan → Implement → Review → Ship (référencer les phases si applicable)99- **Pas de jargon LLM** : éviter "I will analyze", "let me think", "as an AI". Écrire en mode procédural.100- **Pas d'over-engineering** : KISS. Un skill = un objectif clair. Si tu décris 5 sous-skills, c'est 5 skills séparés.101- **Agent-readable** : description concise, commandes claires, sections scannables. Si un skill devient long, déplacer les détails en `references/` plutôt que tout charger par défaut; ne pas appliquer de seuil mécanique sans juger le contexte.102103### 6. Tester le skill104105Avant de considérer le skill comme prêt :1061071. **Self-review** : relire le frontmatter — est-ce qu'un Claude qui voit cette description saura quand l'utiliser ?1082. **Test session** : démarrer une session test, énoncer un trigger naturel, voir si Claude active le skill1093. **Cohérence** : vérifier qu'aucun autre skill ne se déclenche aussi (sinon clarifier la frontière dans les descriptions)110111### 7. Documenter112113- Mentionner le nouveau skill dans `CLAUDE.md` si c'est un workflow majeur (sinon non, la liste des skills est déjà longue)114- Si le skill est appelé par une commande slash, lier les deux explicitement dans la commande115116## Output attendu117118Un fichier `core/skills/<nom>/SKILL.md` :119- Frontmatter `name` + `description` riche en triggers120- Sections claires, FR, vocabulaire D-EPCT+R121- < 200 lignes typiquement (sinon découper en plusieurs skills)122- Au moins 1 exemple concret123- Pas de copie de texte d'autres skills (DRY)124125## Exemples de bons skills (modèles)126127- `code-implementer/SKILL.md` — workflow worker depuis /dev, scope clair128- `pm-prd/SKILL.md` — output bien défini, triggers explicites129- `dev-workflow/SKILL.md` — exécution séquentielle runtime-agnostic, exemple de doc soigné130131## Anti-patterns132133| Symptôme | Pourquoi c'est mauvais | Fix |134|---|---|---|135| Description vague ("helper for X") | Claude n'activera jamais le skill | Reformuler avec triggers concrets + verbe d'action |136| Skill > 500 lignes | Trop de scopes mélangés | Découper en 2-3 skills orthogonaux |137| Description en EN, contenu en FR (ou inverse) | Incohérence avec le projet | Aligner sur la langue du projet (FR par défaut) |138| Importer du texte d'un skill upstream sans réécrire | Risque licence + incohérence vocabulaire | Réécrire avec nos termes D-EPCT+R |139| Pas d'exemple concret | Skill abstrait, peu utilisable | Ajouter au moins 1 exemple end-to-end |140| Pas de "Quand NE PAS utiliser" | Skill sur-déclenché | Lister explicitement les cas adjacents avec leur skill correct |141| Skill massif sans progressive disclosure | Les agents chargent trop de contexte inutile | Garder le workflow coeur dans `SKILL.md`, mettre les matrices/exemples en `references/` |142143## Référence144145Inspiré de la philosophie `superpowers/writing-skills` (obra/superpowers), réécrit pour le vocabulaire D-EPCT+R + multi-agent + FR de Skillz-Claude. Pas de dépendance runtime, pas de copie de contenu.