write-a-skill
Write a Skill
Create a new skill for the foundation-skills repository following all repo conventions.
Workflow
Step 1: Gather requirements
Ask the user:
- What task or domain does the skill cover?
- What specific use cases should it handle?
- What triggers should activate it? (keywords, phrases, file types)
- Any reference materials to include?
Step 2: Choose a skill name
- Use lowercase kebab-case (e.g.,
my-new-skill) - Keep it short and descriptive
- Verify the name is not already taken in
skills/
Step 3: Create skills/<name>/SKILL.md
Start from skills/_TEMPLATE/SKILL.md but apply these mandatory conventions:
Frontmatter (YAML):
---
name: <skill-name>
description: <what it does>. Use when <triggers>.
version: 1.0.0
---
name,description,versionare required and at root level (not nested undermetadata)descriptionmax 1024 characters. First sentence: what it does. Second sentence: "Use when [triggers]."versionstarts at1.0.0for new skills- SKILL.md is written in English
Body rules:
- Keep SKILL.md under 100 lines — concise, actionable instructions only
- Use progressive disclosure: put detailed content in
reference/files - Include concrete examples
- No time-sensitive information
- If the skill requires external CLI tools (e.g.,
gh,glab,jq,playwright), add a## Prerequisitessection listing each tool with its install command. If the tool is not already handled byskills/setup/reference/setup.sh, add it there and bumpsetup's version (the setup script is maintained manually).
Step 4: Create reference files (if needed)
If content exceeds 100 lines or has distinct domains, split into:
skills/<name>/
├── SKILL.md
└── reference/
├── detailed-guide.md
└── examples.md
Reference from SKILL.md: See [detailed guide](reference/detailed-guide.md)
Step 5: Create docs/<name>.md
Create the matching documentation file in French. It must include:
- Title (skill name)
- Description section
- Cas d'usage (use cases)
- Declenchement (triggers)
- Fonctionnement (how it works)
- Exemples (examples in both English and French)
- Version number
See existing files in docs/ for style reference.
Step 6: Review checklist
-
skills/<name>/SKILL.mdexists with valid frontmatter (name,description,versionat root) - Description includes triggers ("Use when...")
- Description under 1024 characters
- SKILL.md under 100 lines
- SKILL.md written in English
-
docs/<name>.mdexists, written in French - No time-sensitive info, consistent terminology
- Concrete examples included
- Reference files only one level deep
- If external CLI tools are required, a
## Prerequisitessection is present with install commands - If the skill requires a new CLI tool not already handled by
setup.sh, add it toskills/setup/reference/setup.shand bumpsetup's version
Versioning rules
When modifying an existing skill, bump its version field:
- patch (1.0.0 -> 1.0.1): typo fixes, wording improvements, minor clarifications
- minor (1.0.0 -> 1.1.0): new features, new sections, meaningful behavior changes
- major (1.0.0 -> 2.0.0): breaking changes (renamed skill, removed features, restructured workflow)
Important Notes
- Every skill lives in
skills/<name>/SKILL.md; documentation indocs/<name>.md(in French) - The
descriptionfield is the only thing the agent sees when choosing which skill to load — make it count - Scripts are discouraged; prefer Markdown instructions. Add scripts only for deterministic operations
More from dedalus-erp-pas/hexagone-foundation-skills
vue-best-practices
Guide des bonnes pratiques Vue.js 3 couvrant la Composition API, la conception de composants, les patrons de réactivité, le styling utility-first avec Tailwind CSS, l'intégration native de la bibliothèque de composants PrimeVue et l'organisation du code. À utiliser lors de l'écriture, la revue ou le refactoring de code Vue.js pour garantir des patrons idiomatiques et un code maintenable.
23ubiquitous-language
Extrait un glossaire de langage ubiquitaire style DDD de la conversation en cours, signale les ambiguïtés et propose des termes canoniques. Sauvegarde dans UBIQUITOUS_LANGUAGE.md. À utiliser quand l'utilisateur veut définir des termes métier, construire un glossaire, durcir la terminologie, créer un langage ubiquitaire ou mentionne « domain model », « DDD », « glossaire » ou « langage ubiquitaire ».
23grill-me
Interroge l'utilisateur sans relâche sur un plan ou un design jusqu'à atteindre une compréhension partagée, en résolvant chaque branche de l'arbre de décision. À utiliser quand l'utilisateur veut stress-tester un plan, se faire challenger sur son design, ou mentionne « grill me » / « interroge-moi » / « challenge-moi » / « questionne-moi ».
22meeting
Lance une réunion simulée avec plusieurs personas experts pour analyser un sujet sous des perspectives diverses, prendre une décision et proposer une solution avant implémentation. Peut optionnellement publier l'analyse de la réunion sur une issue GitLab ou GitHub liée.
22changelog-generator
Crée automatiquement des changelogs orientés utilisateur à partir des commits git en analysant l'historique, catégorisant les changements et transformant les commits techniques en notes de version claires et compréhensibles. Transforme des heures de rédaction manuelle en minutes de génération automatisée.
22github-issues
Crée, récupère, met à jour et gère les issues GitHub avec collecte complète du contexte. À utiliser quand l'utilisateur veut créer une nouvelle issue, voir les détails d'une issue, mettre à jour des issues existantes, lister les issues du projet, ajouter des commentaires ou gérer les workflows d'issues dans GitHub.
22