Initial commit

This commit is contained in:
Zhongwei Li
2025-11-29 17:58:42 +08:00
commit dfbcbf029b
8 changed files with 582 additions and 0 deletions

103
commands/alias/add.md Normal file
View File

@@ -0,0 +1,103 @@
---
allowed-tools:
- SlashCommand
- Write
- Read
- Glob
description: Crée un alias de commande qui délègue à une autre slash command
argument-hint: <alias> <commande>
model: claude-sonnet-4-5-20250929
---
# Générateur d'Alias de Slash Commands
Créer un alias de slash command qui délègue l'exécution à une autre commande existante via l'outil SlashCommand.
## Purpose
Permettre de créer des raccourcis (alias) vers des commandes existantes pour simplifier l'utilisation et éviter la duplication de code.
## Variables
- ALIAS: Nom de l'alias (format slash-command, ex: `/mon-alias`)
- TARGET_COMMAND: Commande cible à exécuter (format slash-command, ex: `/git:status`)
## Relevant Files
- `commands/` - Répertoire des commandes existantes
- `README.md` - Documentation du projet pour mise à jour
## Workflow
### Étape 1: Validation des Arguments
- Vérifier que 2 arguments ont été fournis (alias et commande cible)
- Valider le format de l'alias (doit commencer par `/`, format kebab-case)
- Valider le format de la commande cible (doit commencer par `/`)
- Vérifier que l'alias n'existe pas déjà (chercher dans `commands/`)
- Vérifier que la commande cible existe
### Étape 2: Création du Fichier d'Alias
- Créer le répertoire `commands/alias/` s'il n'existe pas
- Générer le fichier avec la structure suivante :
```markdown
---
allowed-tools:
- SlashCommand
description: Alias vers [TARGET_COMMAND]
argument-hint: [arguments de la commande cible]
model: claude-haiku-4-5-20251001
---
# [ALIAS]
Alias vers `[TARGET_COMMAND]`.
## Usage
Cette commande délègue directement à `[TARGET_COMMAND]`.
## Workflow
- Exécuter la commande cible via SlashCommand
```
### Étape 3: Exécution de la Commande Cible
- Utiliser l'outil SlashCommand pour exécuter TARGET_COMMAND
- Transmettre tous les arguments supplémentaires à la commande cible
### Étape 4: Mise à Jour de la Documentation
- Ajouter l'alias dans la section "Commandes personnalisées" du README.md
- Inclure :
- Nom de l'alias
- Description
- Commande cible
- Usage
### Étape 5: Rapport Final
- Confirmer la création de l'alias
- Afficher le chemin du fichier créé
- Rappeler la commande cible
- Calculer et afficher la durée totale
## Report
```
✅ Alias créé avec succès
📁 Fichier : commands/alias/[nom-alias].md
🎯 Cible : [TARGET_COMMAND]
📝 Usage : /[alias] [arguments]
```
## Examples
### Créer un alias pour git:status
```bash
/alias:add status /git:status
```
### Créer un alias pour doc:update
```bash
/alias:add doc /doc:update
```
## Best Practices
- Noms d'alias courts et mémorisables
- Éviter les conflits avec les commandes existantes
- Documenter clairement la commande cible
- Utiliser Haiku pour les alias (simple délégation)
- Transmettre tous les arguments à la commande cible

104
commands/challenge.md Normal file
View File

@@ -0,0 +1,104 @@
---
model: claude-haiku-4-5-20251001
allowed-tools: [Read]
description: Évalue ma dernière réponse, donne une note sur 10 et propose des améliorations
argument-hint: ""
---
# Challenge - Auto-évaluation des réponses Claude
Analyse critique de ma dernière réponse fournie et proposition d'une version améliorée.
## Purpose
Permettre à Claude d'évaluer objectivement la qualité de sa dernière réponse et d'identifier les axes d'amélioration concrets.
## Variables
- LAST_RESPONSE: Ma dernière réponse dans la conversation
- ORIGINAL_QUESTION: La question ou demande initiale de l'utilisateur
- EVALUATION_CRITERIA: Critères d'évaluation (clarté, pertinence, complétude, précision, format)
## Relevant Files
- Historique de conversation (contexte automatique)
## Workflow
### 1. Identification du contexte
- Identifie la dernière question/demande de l'utilisateur
- Récupère ma dernière réponse complète
- Note les objectifs explicites et implicites de la demande
### 2. Évaluation structurée
Évalue ma réponse selon ces critères (note /10 pour chaque) :
**Pertinence** (/10)
- La réponse répond-elle directement à la question ?
- Y a-t-il des éléments hors sujet ou manquants ?
**Clarté** (/10)
- Le message est-il facile à comprendre ?
- Le format est-il adapté (listes vs paragraphes) ?
- Les termes techniques sont-ils expliqués si nécessaire ?
**Complétude** (/10)
- Tous les aspects de la demande sont-ils couverts ?
- Y a-t-il des informations importantes omises ?
**Précision** (/10)
- Les informations sont-elles exactes ?
- Y a-t-il des approximations ou suppositions ?
**Format et style** (/10)
- Le ton est-il approprié (casual, pas trop formel) ?
- Le format respecte-t-il les préférences (listes à puces) ?
- Y a-t-il des phrases trop enthousiastes à éviter ?
### 3. Calcul de la note globale
- Note finale = moyenne des 5 critères
- Identification du critère le plus faible
- Identification des points forts
### 4. Proposition d'amélioration
- Liste concrète de ce qui pourrait être amélioré
- Proposition d'une version améliorée si la note < 8/10
- Focus sur les critères les plus faibles
## Report
### Structure du rapport d'évaluation
**📊 Évaluation de ma dernière réponse**
**Question initiale :**
[Rappel de la question]
**Ma réponse :**
[Résumé bref de ce que j'ai fourni]
**Scores détaillés :**
- 🎯 Pertinence : X/10 - [justification courte]
- 💡 Clarté : X/10 - [justification courte]
- ✅ Complétude : X/10 - [justification courte]
- 🔍 Précision : X/10 - [justification courte]
- 📝 Format/Style : X/10 - [justification courte]
**Note globale : X/10**
**Points forts :**
- [Point fort 1]
- [Point fort 2]
**Axes d'amélioration :**
- [Amélioration 1]
- [Amélioration 2]
- [Amélioration 3]
**Version améliorée (si note < 8/10) :**
[Nouvelle version de la réponse intégrant les améliorations]
## Best Practices
- Être honnête et autocritique sans tomber dans l'auto-flagellation
- Identifier des améliorations concrètes et actionnables
- Ne pas hésiter à reconnaître quand la réponse initiale était déjà bonne
- Expliquer le raisonnement derrière chaque note
- Proposer une version améliorée uniquement si pertinent
- Garder le rapport concis et structuré en listes à puces

5
commands/doc/load.md Normal file
View File

@@ -0,0 +1,5 @@
---
description: Charge la documentation Claude Code depuis docs.claude.com dans des fichiers markdown locaux
---
You must use the Skill tool to invoke the "doc-loader" skill with "claude" as argument.

155
commands/doc/question.md Normal file
View File

@@ -0,0 +1,155 @@
---
allowed-tools: [Read, Grep, Glob, Bash]
description: Interroger la documentation Claude Code locale pour répondre à une question
argument-hint: <question>
model: claude-sonnet-4-5-20250929
---
# Interrogation de la Documentation Claude Code
Répondre à une question technique sur Claude Code en utilisant la documentation locale présente dans `docs/claude/`.
## Purpose
Fournir des réponses précises et contextualisées aux questions Claude Code en s'appuyant sur la documentation officielle stockée localement, sans nécessiter d'accès web.
## Variables
- QUESTION: La question technique posée par l'utilisateur
- DOCS_PATH: `docs/claude/` - Chemin vers la documentation locale
- SEARCH_KEYWORDS: Mots-clés extraits de la question pour la recherche
## Relevant Files
- `docs/claude/` - Documentation Claude Code locale
- `docs/claude/README.md` - Index de la documentation chargée
## Workflow
### Étape 1: Vérification de la documentation locale
- Vérifier l'existence de `docs/claude/`
- Si le répertoire n'existe pas ou est vide :
- Informer l'utilisateur
- Suggérer d'exécuter `/claude:doc:load` pour charger la documentation
- Arrêter l'exécution avec message explicite
- Si la documentation existe :
- Lire `docs/claude/README.md` pour connaître le contenu disponible
- Continuer vers l'étape 2
### Étape 2: Analyse de la question
- Extraire les mots-clés principaux de QUESTION
- Identifier le contexte technique (composant, feature, concept)
- Exemples de mots-clés :
- "slash command" → chercher dans commands.md, custom-commands.md
- "agent" → chercher dans agents.md, subagents.md
- "hook" → chercher dans hooks.md, lifecycle.md
- "tool" → chercher dans tools.md, permissions.md
### Étape 3: Recherche dans la documentation
- Utiliser Grep pour rechercher les mots-clés dans `docs/claude/`
- Paramètres de recherche :
- Case insensitive (`-i`)
- Afficher le contexte (3 lignes avant/après avec `-C 3`)
- Limiter les résultats pertinents
- Lire les fichiers markdown pertinents identifiés
- Si aucun résultat :
- Élargir la recherche avec des termes associés
- Suggérer des termes de recherche alternatifs
### Étape 4: Analyse et synthèse
- Extraire les sections pertinentes de la documentation
- Organiser les informations par ordre de pertinence
- Identifier :
- Concept principal
- Exemples de code
- Bonnes pratiques
- Warnings et notes importantes
- Liens vers documentation connexe
### Étape 5: Construction de la réponse
- Réponse structurée en format bullet points
- Inclure :
- Explication concise du concept
- Exemples de code si disponibles
- Références aux fichiers de documentation sources
- Liens internes vers sections connexes
- Format markdown enrichi avec :
- Blocs de code Markdown/Python/Shell selon contexte
- Sections info/warning si pertinent
- Liste hiérarchique pour les étapes
### Étape 6: Rapport final avec timing
- Présenter la réponse formatée
- Calculer et afficher la durée totale
- Afficher le timestamp de fin
## Report Format
```markdown
## 📚 Réponse : [Sujet principal]
### Concept
- Explication principale
- Points clés
### Exemple de Code
[Bloc de code si disponible]
### Documentation de Référence
- 📄 `docs/claude/[fichier].md` - [Section]
- 📄 Autres fichiers pertinents
### Voir Aussi
- Concepts connexes
- Autres commandes utiles
```
## Error Handling
- **Documentation manquante** : Message clair + suggestion `/claude:doc:load`
- **Aucun résultat trouvé** : Suggérer termes alternatifs ou reformulation
- **Question trop vague** : Demander précisions avec exemples
- **Fichiers corrompus** : Signaler et suggérer rechargement
## Examples
### Exemple 1 - Question simple
```bash
/claude:doc:question "Comment créer une slash command ?"
```
**Résultat attendu** :
- Recherche dans commands.md, custom-commands.md
- Format de fichier de commande
- Exemples de frontmatter YAML
- Références aux fichiers sources
### Exemple 2 - Question sur composant
```bash
/claude:doc:question "Comment utiliser les hooks ?"
```
**Résultat attendu** :
- Recherche hooks.md, lifecycle.md
- Types de hooks disponibles
- Exemples Python
- Cas d'usage
### Exemple 3 - Question avancée
```bash
/claude:doc:question "Comment créer un agent personnalisé ?"
```
**Résultat attendu** :
- Recherche agents.md, custom-agents.md
- Configuration d'agent
- Cas d'usage appropriés
- Exemples complets
## Best Practices
- Toujours vérifier la présence de la documentation avant recherche
- Privilégier la précision sur l'exhaustivité
- Citer les sources (fichiers markdown consultés)
- Fournir des exemples de code concrets
- Suggérer des commandes connexes si pertinent
- Garder les réponses concises mais complètes
- **Afficher le timing au début et à la fin**
- **Calculer précisément la durée d'exécution**
## Notes
- Cette commande fonctionne 100% offline une fois la documentation chargée
- La documentation doit être rafraîchie périodiquement avec `/claude:doc:load`
- Supporte toutes les versions de Claude Code présentes dans `docs/claude/`
- Peut être étendue pour supporter d'autres frameworks avec le même pattern

139
commands/make/command.md Normal file
View File

@@ -0,0 +1,139 @@
---
model: claude-sonnet-4-5-20250929
allowed-tools: Bash, Write, Read, Glob, Edit, MultiEdit
description: Générateur de slash commands pour Claude Code avec workflow structuré et bonnes pratiques
argument-hint: [nom-commande] [description] [--tools=outil1,outil2] [--category=categorie]
---
# Générateur de Slash Commands
Créer une nouvelle slash command Claude Code : $ARGUMENTS
## Purpose
Générer des slash commands Claude Code bien structurées, documentées et fonctionnelles suivant les conventions du projet.
## Relevant files
- @docs/COMMANDS.md
- @docs/MODELS.md
## Variables
- COMMAND_NAME: Nom de la commande (format kebab-case)
- DESCRIPTION: Description courte et claire
- TOOLS: Outils autorisés (défaut: Bash,Read,Write,Edit)
- CATEGORY: Catégorie (git, doc, build, sessions, etc.)
- ARGUMENTS: Format des arguments de la commande
## Instructions
Vous êtes un générateur expert de slash commands. Créez des commandes :
- Focalisées sur un objectif unique
- Bien documentées avec workflow clair
- Respectant les conventions du projet
- Incluant les permissions d'outils appropriées
- Avec gestion d'erreurs et validation
## Relevant Files
- `_templates/prompt/README.md` - Template de base
- `commands/` - Exemples de commandes existantes
- `README.md` - Documentation du projet
## Workflow
### Étape 0: Initialisation du Timing
- Cette commande génère d'autres commandes avec section timing
- Mais elle-même n'utilise pas de timing dans son workflow
- Les commandes générées incluront la section timing automatiquement
### 1. Analyse des arguments
- Parse COMMAND_NAME, DESCRIPTION, TOOLS, CATEGORY
- Valide le nom (format kebab-case, pas de caractères spéciaux)
- Vérifie l'unicité du nom de commande
- Détermine la catégorie automatiquement si non fournie
### 2. Génération de la structure
- Crée le frontmatter YAML avec métadonnées
- Génère les sections standard adaptées au contexte
- **LIT le template depuis `_templates/timing-section.md` et l'insère (Read tool)**
- **AJOUTE "Étape 0: Initialisation du Timing" en premier dans le Workflow**
- Inclut les outils nécessaires selon la catégorie
- Ajoute des exemples d'utilisation pertinents
### 3. Validation et création
- Vérifie la cohérence et syntaxe
- Crée le répertoire si nécessaire
- Sauvegarde dans `commands/[category]/[command-name].md`
- Confirme la création avec résumé
### 4. Documentation
- Mets à jour "Structure du projet" dans @README.md
- Ajoutes la description de la commande dans @README.md
## Template Structure
```markdown
---
allowed-tools: [TOOLS]
description: [DESCRIPTION]
argument-hint: [ARGUMENTS]
---
# [TITLE]
[Instructions spécifiques pour Claude]
## Variables
[Variables utilisées dans la commande]
## Relevant Files
[Fichiers pertinents pour la commande]
[INSÉRER ICI le contenu de _templates/timing-section.md via Read]
## Workflow
### Étape 1: [Première vraie étape de la commande]
- [Étapes logiques d'exécution]
### Étape N: Rapport Final
- Afficher le rapport
## Report
```
[Contenu du rapport]
```
**IMPORTANT** : Ne PAS copier-coller la section Timing manuellement.
Utiliser `Read` pour lire `_templates/timing-section.md` et l'insérer.
## Examples
### Commande Git
```bash
/cc:make:command git-hotfix "Création de hotfix avec workflow Git" --tools=Bash,Edit --category=git
```
### Commande Build
```bash
/cc:make:command deploy-staging "Déploiement en staging" --tools=Bash,Read --category=build "[version]"
```
## Report
- Crée le fichier dans `commands/[category]/[command-name].md`
- Affiche la structure générée
- Confirme la création avec chemin complet
- Suggère les étapes suivantes (test, documentation)
## Best Practices
- Nom en kebab-case uniquement
- Description concise mais claire
- Outils minimaux nécessaires
- Workflow en étapes logiques
- Format de rapport structuré
- **Timing : TOUJOURS lire depuis `_templates/timing-section.md` (Read tool)**
- **Ne JAMAIS copier-coller manuellement la section Timing**
- **Étape 0 du workflow = initialisation timing**
## Maintenance du Template Timing
Si tu dois modifier la section Timing :
1. Éditer **uniquement** `_templates/timing-section.md`
2. Exécuter `./scripts/sync-timing.sh` pour synchroniser les 43 commandes
3. Ne **JAMAIS** éditer la section Timing directement dans une commande