Initial commit

This commit is contained in:
Zhongwei Li
2025-11-29 17:58:47 +08:00
commit 77525b8480
18 changed files with 1505 additions and 0 deletions

28
commands/code.md Normal file
View File

@@ -0,0 +1,28 @@
---
model: claude-sonnet-4-5-20250929
description: Code the codebase based on the plan
argument-hint: [path-to-plan]
allowed-tools: Read, Write, Bash
---
# Code
Follow the `Workflow` to implement the `PATH_TO_PLAN` then `Report` the completed work.
## Variables
PATH_TO_PLAN: $ARGUMENTS
## Workflow
- If no `PATH_TO_PLAN` is provided, STOP immediately and ask the user to provide it.
- Read the plan at `PATH_TO_PLAN`. Think hard about the plan and implement it into the codebase.
## Quality Assurance
- Run all quality checks (linters, static analysis, tests)
- Fix ALL errors and warnings until all checks pass
- Ensure the code is error-free before considering the task complete
- DO NOT proceed to reporting until all quality checks are green
# Report
- Confirm all quality checks have passed
- Summarize the work you've just done in a concise bullet point list.
- Report the files and total lines changed with `git diff —-stat`

109
commands/context/load.md Normal file
View File

@@ -0,0 +1,109 @@
---
model: claude-sonnet-4-5-20250929
allowed-tools: Bash, Read
description: Charger un preset de contexte pour la session
argument-hint: <preset>
---
# Chargement Contexte
Charge un preset de contexte pour configurer la session selon le type de travail.
{{_templates/timing.md}}
## Presets Disponibles
- `default` - Contexte projet basique (structure + docs)
- `elegant-objects` - Règles conception Elegant Objects
- `ddd` - Principes Domain-Driven Design
- `full` - Tous les presets combinés
## Variables
- PRESET: Nom du preset (argument utilisateur)
## Validation
Si PRESET non supporté :
- Afficher liste presets disponibles
- Arrêter
## Workflows par Preset
### default
1. Exécuter `git ls-files`
2. Lire `docs/README.md`
3. Résumer compréhension projet
### elegant-objects
1. Charger règles Elegant Objects de Yegor Bugayenko
2. Appliquer à toute écriture/modification code
3. Confirmer activation
**Règles principales :**
- Classes `final`, 1-4 attributs max
- Objets immuables privilégiés
- Pas d'héritage implémentation
- Constructeurs : affectations uniquement
- Méthodes via interfaces
- Jamais retourner `null`
- Fail fast sur exceptions
- Pas de getters/setters
- Docblocks français UTF-8
- Tests : 1 assertion par test
- Pas de mocks, privilégier fakes
### ddd
1. Charger principes Domain-Driven Design
2. Structure : Entities, ValueObjects, Aggregates, Repositories, Services
3. Confirmer activation
**Principes :**
- Ubiquitous Language
- Bounded Contexts
- Aggregates avec invariants
- Repositories pour persistance
- Domain Events
- Séparation domaine/infra
### full
Charge tous les presets dans l'ordre : default → elegant-objects → ddd
## Rapport Format
```markdown
## 🎯 Contexte Chargé : [PRESET]
### Éléments Activés
- [Liste des règles/principes activés]
### Compréhension Projet
[Si preset=default ou full]
- Type projet : [description]
- Stack technique : [liste]
- Structure principale : [répertoires clés]
### Règles Appliquées
[Si preset=elegant-objects ou full]
- [Liste concise règles actives]
### Patterns DDD
[Si preset=ddd ou full]
- [Liste patterns disponibles]
```
## Exemples
```bash
/context:load default
/context:load elegant-objects
/context:load ddd
/context:load full
```
## Notes
- Presets cumulables manuellement : `/context:load default` puis `/context:load elegant-objects`
- `full` équivaut à tous les presets en une fois
- Contexte persiste pour toute la session

171
commands/debug/error.md Normal file
View File

@@ -0,0 +1,171 @@
---
model: claude-sonnet-4-5-20250929
allowed-tools: Bash,Read,Write,Edit,Grep,Glob,TodoWrite,Task
description: Analyser et résoudre une erreur (message simple ou stack trace)
argument-hint: <message-erreur-ou-fichier-log>
---
# Debug Error - Analyse et Résolution
Analyser une erreur (message ou stack trace) et proposer/appliquer résolution.
{{_templates/timing.md}}
## Variables
- ERROR_INPUT: Message erreur ou chemin fichier log
- ERROR_TYPE: Type détecté (simple message vs stack trace)
- CONTEXT_FILES: Fichiers pertinents
- RESOLUTION_PLAN: Plan structuré si résolution demandée
## Détection Automatique
Le système détecte automatiquement :
- **Stack trace** : Parsing + formatage + analyse approfondie
- **Message simple** : Analyse directe + diagnostic
Patterns stack trace :
- `Fatal error:`, `Uncaught`, `Exception`, `Error:`
- Présence de `at <file>:<line>`
- Multiple lignes avec indentation/numéros
## Workflow
### 1. Identification Type
**Si stack trace détectée** :
- Parser trace (type, message, fichier:ligne, call stack)
- Formater hiérarchiquement
- Lire code source ligne incriminée
- Générer rapport `/tmp/stack-trace-analysis-[timestamp].md`
**Si message simple** :
- Catégoriser (syntaxe, runtime, logique, config)
- Extraire infos contextuelles
### 2. Analyse Contexte
- Examiner fichiers mentionnés
- Analyser logs récents corrélés
- Vérifier environnement (deps, config)
- Identifier changements récents (git)
### 3. Diagnostic
- Cause racine vs symptômes
- Impact et criticité
- Solutions possibles + trade-offs
- Priorisation
### 4. Solutions
**Stack trace** : 3 niveaux
1. **Quick Fix ⚡** : Rapide, symptôme
2. **Recommandée ✅** : Équilibrée, cause
3. **Long-terme 🎯** : Robuste, prévention
**Message simple** : Plan résolution
- Étapes séquencées
- Tests validation
- Rollbacks prévus
- Risques estimés
### 5. Exécution (optionnel)
Si utilisateur demande résolution :
- Appliquer corrections pas à pas
- Valider chaque modif
- Vérifier résolution complète
- Documenter changements
## Format Rapport
### Stack Trace
```markdown
# Stack Trace Analysis - [TIMESTAMP]
## Résumé
- Type : [ERROR_TYPE]
- Localisation : [FILE:LINE]
- Cause racine : [ROOT_CAUSE]
- Sévérité : [LEVEL]
## Stack Trace Formatée
[Trace complète formatée]
## Analyse
### Point origine
- Fichier/Ligne/Méthode
- Code context
### Contexte
- Call stack simplifié
- État probable
- Dépendances
### Cause Racine
[Explication]
## Solutions
### 1. Quick Fix ⚡
[Description + étapes]
### 2. Recommandée ✅
[Description + étapes]
### 3. Long-terme 🎯
[Description + étapes]
## Prochaines Étapes
[Actions recommandées]
```
### Message Simple
```markdown
## Analyse Erreur
### Type
[Classification + sévérité]
### Localisation
[Fichiers/lignes]
### Contexte
[Environnement + conditions]
## Diagnostic
- Cause racine
- Impact
- Recommandations
## Résolution
[Si exécutée]
- Actions effectuées
- Validations
- Suivi
```
## Exemples
```bash
# Stack trace PHP
/debug:error "Fatal error: Call to undefined method User::getName()"
# Fichier log
/debug:error /var/log/app.log
# Message NPM
/debug:error "npm ERR! missing script: build"
# Stack trace JS
/debug:error "TypeError: Cannot read property 'id' of undefined at main.js:156"
```
## Best Practices
- Détecter type avant traiter
- Parser intelligemment selon langage
- Lire code source pour contexte
- Solutions testables avec exemples
- Corrections incrémentales si exécution
- Validation systématique après chaque change

167
commands/docker.md Normal file
View File

@@ -0,0 +1,167 @@
---
allowed-tools:
- Bash
- Read
- Grep
- Glob
description: Indique d'utiliser docker pour faire la ou les actions définies dans le prompt
model: claude-sonnet-4-5-20250929
---
# Contexte Docker
Active le mode Docker pour exécuter toutes les actions dans des conteneurs Docker plutôt que directement sur l'hôte.
## Purpose
Cette commande active un contexte spécial où Claude utilisera systématiquement Docker pour :
- Exécuter des commandes système
- Builder des projets
- Lancer des tests
- Gérer les dépendances
- Toute autre opération technique
## Variables
- DOCKER_COMPOSE_FILE: Fichier docker-compose à utiliser (défaut: docker-compose.yml)
- DOCKER_SERVICE: Service Docker à cibler pour les commandes (optionnel)
- DOCKER_ENV: Environnement Docker (dev/staging/prod, défaut: dev)
## Relevant Files
- `docker-compose.yml` - Configuration Docker Compose
- `Dockerfile` - Définition des images
- `.dockerignore` - Fichiers exclus du build
- `docker/` - Configurations Docker additionnelles
## Workflow
### Étape 1: Analyse de l'environnement Docker
- Détecter le fichier docker-compose.yml ou Dockerfile
- Identifier les services Docker disponibles
- Vérifier l'état des conteneurs (docker ps)
- Lister les services configurés
### Étape 2: Validation de Docker
- Vérifier que Docker est installé et accessible
- Confirmer que les conteneurs nécessaires sont démarrés ou peuvent l'être
- Identifier le service principal si plusieurs services existent
### Étape 3: Configuration du contexte
- Enregistrer le mode Docker comme actif pour la session
- Déterminer le préfixe de commande à utiliser :
- `docker exec [container]` pour conteneurs running
- `docker-compose exec [service]` pour docker-compose
- `docker run` pour images standalone
- Mémoriser les paramètres pour les prochaines commandes
### Étape 4: Rapport de configuration
- Afficher la configuration Docker détectée
- Confirmer le mode actif
- Indiquer comment les prochaines commandes seront exécutées
## Instructions pour Claude
**MODE DOCKER ACTIF**
À partir de maintenant et jusqu'à nouvel ordre :
1. **Toutes les commandes système** doivent être exécutées via Docker
2. **Format des commandes** :
- Avec Docker Compose : `docker compose exec [service] [commande]`
- Sans Docker Compose : `docker exec [container] [commande]`
- Pour les builds : `docker compose build` ou `docker build`
3. **Exemples de transformation** :
```bash
# Au lieu de : composer install
# Utiliser : docker compose exec php composer install
# Au lieu de : npm run build
# Utiliser : docker compose exec node npm run build
# Au lieu de : php bin/console cache:clear
# Utiliser : docker compose exec php php bin/console cache:clear
```
4. **Services communs à identifier** :
- `php` / `app` - Application PHP
- `node` / `frontend` - Build frontend
- `web` / `nginx` - Serveur web
- `db` / `database` - Base de données
5. **Gestion des erreurs** :
- Si un conteneur n'est pas démarré → suggérer `docker compose up -d`
- Si un service n'existe pas → lister les services disponibles
- Si Docker n'est pas accessible → indiquer clairement l'erreur
6. **Persistance du contexte** :
- Ce mode reste actif pour toute la session
- Peut être désactivé avec une commande explicite de l'utilisateur
- S'applique à toutes les opérations : build, test, deploy, etc.
## Report
```
🐳 Mode Docker Activé
Configuration détectée :
- Fichier : [docker-compose.yml / Dockerfile]
- Services disponibles :
• [service1] - [description]
• [service2] - [description]
• [service3] - [description]
État des conteneurs :
- [X] [service1] - Running
- [ ] [service2] - Stopped
- [X] [service3] - Running
Format des commandes :
docker compose exec [service] [commande]
Exemples :
• composer install → docker compose exec php composer install
• npm run build → docker compose exec node npm run build
• php bin/console → docker compose exec php php bin/console
Toutes les prochaines commandes système seront exécutées via Docker.
```
## Examples
### Activation basique
```bash
/docker
```
### Avec projet Symfony + Docker Compose
```
🐳 Mode Docker Activé
Services disponibles : php, nginx, database, redis
Commandes transformées :
• composer install → docker compose exec php composer install
• symfony console cache:clear → docker compose exec php php bin/console cache:clear
```
### Avec projet Node.js
```
🐳 Mode Docker Activé
Service : node
Commandes transformées :
• npm install → docker compose exec node npm install
• npm run dev → docker compose exec node npm run dev
```
## Best Practices
- Toujours vérifier que Docker est accessible avant d'activer le mode
- Identifier le service principal pour les commandes fréquentes
- Proposer `docker compose up -d` si les conteneurs ne sont pas démarrés
- Conserver le contexte Docker pour toute la session une fois activé
- Adapter les commandes de manière transparente pour l'utilisateur
- En cas d'échec Docker, expliquer clairement la raison et la solution

5
commands/prepare.md Normal file
View File

@@ -0,0 +1,5 @@
---
description: Creates a concise engineering implementation plan based on user requirements and saves it to specs directory
---
Use the prepare skill exactly as written

34
commands/question.md Normal file
View File

@@ -0,0 +1,34 @@
---
model: claude-sonnet-4-5-20250929
allowed-tools: Bash(git ls-files:*), Read
description: Répondre aux questions sur la structure du projet et la documentation sans coder
---
# Question
Répondre à la question de l'utilisateur en analysant la structure du projet et la documentation. Cette invite est conçue pour fournir des informations et répondre aux questions sans apporter de modifications au code.
## Variables
$ARGUMENTS
## Instructions
- **IMPORTANT : Il s'agit uniquement d'une tâche de réponse à des questions - NE PAS écrire, éditer ou créer de fichiers**
- **IMPORTANT : Se concentrer sur la compréhension et l'explication du code existant et de la structure du projet**
- **IMPORTANT : Fournir des réponses claires et informatives basées sur l'analyse du projet**
- **IMPORTANT : Si la question nécessite des modifications de code, expliquer ce qui devrait être fait conceptuellement sans implémenter**
## Workflow
- Examiner la structure du projet depuis !`git ls-files`
- Comprendre l'objectif du projet depuis le @docs/README.md
- Connecter la question aux parties pertinentes du projet
- Fournir des réponses complètes basées sur l'analyse
## Format de réponse
- Réponse directe à la question
- Preuves à l'appui de la structure du projet
- Références à la documentation pertinente
- Explications conceptuelles le cas échéant