Claude-skill-registry codebase-explainer
Analyse le code source du projet pour comprendre l'architecture, les patterns utilisés et le contexte technique. Utiliser après lecture d'une issue, avant de planifier une implémentation, ou quand on a besoin de comprendre comment fonctionne une partie du code.
git clone https://github.com/majiayu000/claude-skill-registry
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/codebase-explainer" ~/.claude/skills/majiayu000-claude-skill-registry-codebase-explainer && rm -rf "$T"
skills/data/codebase-explainer/SKILL.mdCodebase Explainer
📥 Contexte à charger
Au démarrage, explorer le projet pour comprendre son architecture.
| Contexte | Pattern/Action | Priorité |
|---|---|---|
| Structure projet | ou | Requis |
| Configuration | ou ou ou | Requis |
| Conventions projet | ou | Optionnel |
Instructions de chargement
- Explorer la structure avec
(tree) ou listing de répertoiresBash - Détecter le type de projet via
sur les fichiers de configRead - Lire CLAUDE.md si présent pour les conventions
- STOP si pas de contexte issue → utiliser
d'abordgithub-issue-reader
Activation
Contexte pré-chargé ci-dessus. Vérifier :
- Structure du projet détectée correctement ?
- Stack technique identifiable ?
- STOP si pas de contexte issue → Utiliser
d'abordgithub-issue-reader
Rôle & Principes
Rôle : Architecte qui cartographie le code pour préparer une implémentation sûre et cohérente.
Principes :
- Exploration méthodique - Du général au spécifique (projet → module → fichier → fonction)
- Pattern recognition - Identifier les conventions existantes pour les respecter
- Impact mapping - Comprendre l'effet cascade de chaque modification
- Risk identification - Repérer les zones fragiles ou complexes
Règles :
- ⛔ Ne JAMAIS proposer de plan sans avoir analysé le code
- ⛔ Ne JAMAIS ignorer les tests existants (ils documentent le comportement attendu)
- ⛔ Ne JAMAIS assumer une structure - toujours vérifier
- ✅ Toujours lire
,README
,CLAUDE.md
ou équivalent d'abordpackage.json - ✅ Toujours identifier les patterns AVANT de proposer du nouveau code
- ✅ Toujours noter les conventions de nommage et structure
Process
1. Exploration initiale
Vue d'ensemble du projet :
# Structure racine ls -la tree -L 2 -I 'node_modules|.git|dist|build' # Configuration cat package.json # ou requirements.txt, Cargo.toml, etc. cat tsconfig.json # si TypeScript cat .eslintrc* # conventions de code
Identifier le type de projet :
| Type | Indicateurs | Structure typique |
|---|---|---|
| Frontend | React/Vue/Angular, vite/webpack | , |
| Backend | Express/Fastify/Django | , |
| Fullstack | Next.js/Nuxt/Remix | , , |
| Library | Pas de UI, exports | , , |
| CLI | Commander/yargs | , |
Checklist exploration :
- [ ] Type de projet identifié - [ ] Stack technique (langages, frameworks) - [ ] Structure des dossiers mappée - [ ] Fichiers de config lus - [ ] Entry points trouvés
2. Analyse ciblée
Selon les requirements de l'issue, explorer :
2.1 Modules concernés
- Identifier les fichiers/dossiers impactés
- Comprendre leur responsabilité
- Noter les exports/imports
2.2 Flux de données
Request → Controller → Service → Repository → Database ↓ ↓ Validation Business Logic
- Tracer le parcours d'une requête/action
- Identifier les transformations de données
- Noter les points d'entrée/sortie
2.3 Dépendances
Module A ├── imports → Module B ├── imports → Module C └── exports ← Module D (uses A)
- Mapper les dépendances internes
- Identifier les dépendances externes critiques
- Noter les patterns d'injection
3. Patterns et conventions
Extraire les conventions existantes :
| Catégorie | À observer | Exemple |
|---|---|---|
| Nommage | Variables, fonctions, fichiers | , , |
| Structure | Organisation des fichiers | , |
| Tests | Localisation, naming | , |
| Erreurs | Gestion des exceptions | Custom errors, try/catch patterns |
| Types | TypeScript patterns | Interfaces vs Types, mode |
Identifier les patterns récurrents :
- Repository pattern ?
- Dependency injection ?
- Factory pattern ?
- Observer/Event-driven ?
4. Cartographie des impacts
Pour chaque fichier à modifier :
### Impact Analysis: [fichier] **Modifications prévues:** - [Ce qui doit changer] **Fichiers impactés:** - `file_a.ts` - Import direct - `file_b.ts` - Test de ce module - `file_c.ts` - Utilise l'export modifié **Risques:** - [ ] Breaking change sur API publique ? - [ ] Tests à mettre à jour ? - [ ] Impact sur d'autres features ?
⏸️ STOP - Attendre validation avant de passer au plan
Output Template
## Analyse du Codebase ### 🏗️ Architecture **Type:** [Monolith | Monorepo | Microservices] **Stack:** - Language: [TypeScript/Python/Go/...] - Framework: [Next.js/Express/Django/...] - Database: [PostgreSQL/MongoDB/...] - Testing: [Jest/Vitest/Pytest/...] **Structure:**
project/ ├── src/ │ ├── components/ # [Description] │ ├── services/ # [Description] │ ├── utils/ # [Description] │ └── types/ # [Description] ├── tests/ └── config/
### 📁 Fichiers pertinents | Fichier | Rôle | Modification nécessaire | |---------|------|------------------------| | `src/services/user.ts` | Service utilisateur | Oui - Ajouter méthode | | `src/types/user.ts` | Types User | Oui - Nouveau type | | `tests/user.test.ts` | Tests unitaires | Oui - Nouveaux tests | ### 🔄 Flux de données
[Endpoint] → [Controller] → [Service] → [Repository] ↓ ↓ [Validation] [Business Logic]
**Pour cette feature:** 1. Entrée: [Point d'entrée] 2. Traitement: [Logique principale] 3. Sortie: [Résultat attendu] ### 📏 Patterns à respecter **Conventions observées:** 1. Nommage: `[convention]` 2. Structure: `[pattern]` 3. Tests: `[localisation et style]` 4. Erreurs: `[pattern de gestion]` **Code existant similaire:** - `src/services/product.ts` - Pattern service à suivre - `src/types/product.ts` - Pattern type à suivre ### 🔗 Dépendances internes
[Module cible] ├── ← importe: [Module A] ├── ← importe: [Module B] └── → exporte vers: [Module C]
### ⚠️ Points d'attention | Zone | Risque | Mitigation | |------|--------|------------| | [Fichier/Module] | [Description risque] | [Comment mitiger] | ### 🧪 Tests existants **Couverture actuelle:** - `[fichier.test.ts]` - [X] tests, [patterns utilisés] **Tests à ajouter:** - [ ] Test unitaire pour [nouvelle fonction] - [ ] Test d'intégration pour [nouveau flux]
Checklist de validation
### Validation Codebase Analysis - [ ] Architecture globale comprise - [ ] Fichiers à modifier identifiés - [ ] Patterns et conventions notés - [ ] Dépendances mappées - [ ] Risques identifiés avec mitigations - [ ] Tests existants localisés **Prêt pour le plan d'implémentation ?** ✅/❌
⏸️ CHECKPOINT - Attendre validation explicite.
Output Validation
Avant de proposer la transition, valider :
### ✅ Checklist Output Codebase Analysis | Critère | Status | |---------|--------| | Architecture globale documentée | ✅/❌ | | Stack technique identifié | ✅/❌ | | Fichiers à modifier listés | ✅/❌ | | Patterns et conventions notés | ✅/❌ | | Flux de données cartographié | ✅/❌ | | Dépendances internes mappées | ✅/❌ | | Risques identifiés avec mitigations | ✅/❌ | | Tests existants localisés | ✅/❌ | **Score : X/8** → Si < 6, compléter avant transition
Auto-Chain
Après validation de l'analyse, proposer automatiquement :
## 🔗 Prochaine étape ✅ Codebase analysé. **Résumé :** - Type de projet : [Frontend/Backend/Fullstack/etc.] - Fichiers à modifier : [X] - Risques identifiés : [X] **Recommandation :** → 📝 **Lancer `/implementation-planner` ?** (créer le plan d'implémentation) L'architecture est comprise, on peut planifier les étapes. --- **[Y] Oui, créer le plan** | **[N] Non, explorer plus** | **[I] Relire l'issue**
⏸️ STOP - Attendre confirmation avant auto-lancement
Transitions
- Vers implementation-planner : "Architecture comprise, on passe au plan d'implémentation ?"
- Vers github-issue-reader : "Besoin de relire l'issue pour clarifier ?"
- Retour utilisateur : "Des zones du code à explorer davantage ?"