Skip to content

Lab 3.3 : Automatisation des Workflows

Module : 3.3 - Commandes Slash Personnalisées | ← SlidesDurée : 30 minutes Projet d'exemple : hackathon-starter

Objectifs d'Apprentissage

À la fin de ce lab, vous serez capable de :

  • Créer des commandes slash personnalisées pour votre projet
  • Utiliser le frontmatter YAML pour configurer les commandes
  • Passer des arguments aux commandes avec $ARGUMENTS et $1, $2, $3
  • Partager des commandes avec votre équipe via .claude/commands/

Prérequis

  • Labs des jours 1-2 complétés
  • Compréhension des bases de Claude Code
  • Familiarité avec le projet hackathon-starter

Pourquoi des Commandes Personnalisées ?

Votre équipe a des workflows répétitifs :

  • « Documenter ce fichier et générer des tests »
  • « Vérifier ce code pour les problèmes de sécurité »
  • « Créer un nouvel endpoint API avec des tests »

Les commandes slash personnalisées encapsulent ces workflows pour que tout le monde puisse les exécuter.

Configuration

bash
# Naviguer vers le projet d'exemple
cd sample-projects/hackathon-starter

# Créer le répertoire des commandes
mkdir -p .claude/commands

# Démarrer Claude Code
claude

Tâche 1 : Créer Votre Première Commande

Durée : 10 minutes

Créez une commande simple qui documente un fichier.

Créer le fichier : .claude/commands/document.md

markdown
---
description: Generate documentation for a file
argument-hint: <filename>
---

Analyze the file $ARGUMENTS and generate:
1. A brief description of what it does
2. JSDoc comments for all exported functions
3. A usage example

Be concise and practical.

Testez :

/document controllers/user.js

Critères de réussite :

  • [ ] Fichier de commande créé
  • [ ] La commande apparaît dans /help
  • [ ] La commande génère de la documentation lorsqu'elle est exécutée

Tâche 2 : Ajouter des Restrictions d'Outils

Durée : 10 minutes

Créez une commande plus sécurisée qui ne peut que lire des fichiers.

Créer : .claude/commands/explain.md

markdown
---
description: Explain code without making changes
argument-hint: <filename>
allowed-tools: Read, Glob, Grep
---

Explain what the file $ARGUMENTS does.

Include:
1. High-level purpose
2. Key functions and their roles
3. Dependencies and relationships
4. One potential improvement

Do NOT modify any files.

Testez :

/explain models/User.js

Vérifiez : Claude ne devrait que lire, pas modifier.

Critères de réussite :

  • [ ] Commande restreinte aux outils en lecture seule
  • [ ] Explication générée sans modifications

Tâche 3 : Commande Multi-Arguments

Durée : 10 minutes

Créez une commande qui prend plusieurs arguments.

Créer : .claude/commands/compare.md

markdown
---
description: Compare two files and explain differences
argument-hint: <file1> <file2>
allowed-tools: Read, Glob, Grep
---

Compare these two files:
- File 1: $1
- File 2: $2

Analyze:
1. Structural differences
2. Functional differences
3. Which approach is better and why

Testez :

/compare controllers/user.js controllers/api.js

Critères de réussite :

  • [ ] Les deux arguments sont passés correctement
  • [ ] Une comparaison pertinente est générée

Emplacements des Commandes

EmplacementPortéeCas d'utilisation
.claude/commands/ProjetWorkflows d'équipe, partagés via git
~/.claude/commands/PersonnelVos raccourcis personnels

Note

Les commandes de projet écrasent les commandes personnelles ayant le même nom.


Options du Frontmatter

yaml
---
description: Affiché dans /help
argument-hint: Affiché dans l'autocomplétion
allowed-tools: Restreindre les outils que Claude peut utiliser
model: Remplacer le modèle (ex : claude-sonnet-4-20250514)
---

Conseils pour Réussir

  1. Commencez simple - Une tâche par commande
  2. Utilisez les restrictions d'outils - Évitez les modifications non intentionnelles
  3. Documentez bien - De bonnes descriptions aident vos coéquipiers
  4. Testez minutieusement - Essayez les cas limites avant de partager

Dépannage

La commande n'apparaît pas :

  • Vérifiez que l'extension du fichier est .md
  • Vérifiez la syntaxe du frontmatter (pas de tabulations, délimiteurs --- corrects)
  • Redémarrez Claude Code

Les arguments ne fonctionnent pas :

  • Utilisez $ARGUMENTS pour tous les args en une seule chaîne
  • Utilisez $1, $2, $3 pour les arguments positionnels

Les restrictions d'outils sont ignorées :

  • Vérifiez l'orthographe de allowed-tools
  • Assurez-vous que les outils sont séparés par des virgules

Objectifs Avancés

Si vous terminez en avance :

  1. Créez une commande /new-feature qui génère le squelette d'une nouvelle fonctionnalité avec des tests
  2. Créez une commande /security-check qui audite un fichier pour les vulnérabilités
  3. Créez une commande /pr-summary qui génère des descriptions de PR

Livrables

À la fin de ce lab, vous devriez avoir :

  1. Au moins 2 commandes personnalisées dans .claude/commands/
  2. Une compréhension de la configuration du frontmatter
  3. De l'expérience avec le passage d'arguments
  4. Des idées pour l'automatisation des workflows d'équipe

Prochaines Étapes

Après avoir terminé ce lab, passez au Lab 3.4 : Intégration MCP.

Claude for Coders Training Course