Agent skill

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.

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/codebase-explainer

SKILL.md

Codebase Explainer

📥 Contexte à charger

Au démarrage, explorer le projet pour comprendre son architecture.

Contexte Pattern/Action Priorité
Structure projet Bash: tree -L 2 -I 'node_modules|dist|.git' ou Glob: **/ Requis
Configuration Read: package.json ou pyproject.toml ou Cargo.toml ou go.mod Requis
Conventions projet Read: CLAUDE.md ou .claude/CLAUDE.md Optionnel

Instructions de chargement

  1. Explorer la structure avec Bash (tree) ou listing de répertoires
  2. Détecter le type de projet via Read sur les fichiers de config
  3. Lire CLAUDE.md si présent pour les conventions
  4. STOP si pas de contexte issue → utiliser github-issue-reader d'abord

Activation

Contexte pré-chargé ci-dessus. Vérifier :

  1. Structure du projet détectée correctement ?
  2. Stack technique identifiable ?
  3. STOP si pas de contexte issue → Utiliser github-issue-reader d'abord

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, package.json ou équivalent d'abord
  • ✅ 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 :

bash
# 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 src/components/, src/pages/
Backend Express/Fastify/Django src/routes/, src/controllers/
Fullstack Next.js/Nuxt/Remix app/, pages/, api/
Library Pas de UI, exports src/, lib/, index.ts
CLI Commander/yargs bin/, commands/

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 camelCase, PascalCase, kebab-case
Structure Organisation des fichiers feature-based, type-based
Tests Localisation, naming *.test.ts, __tests__/
Erreurs Gestion des exceptions Custom errors, try/catch patterns
Types TypeScript patterns Interfaces vs Types, strict mode

Identifier les patterns récurrents :

  • Repository pattern ?
  • Dependency injection ?
  • Factory pattern ?
  • Observer/Event-driven ?

4. Cartographie des impacts

Pour chaque fichier à modifier :

markdown
### 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

markdown
## 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

markdown
### 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 :

markdown
### ✅ 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 :

markdown
## 🔗 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 ?"

Expand your agent's capabilities with these related and highly-rated skills.

Didn't find tool you were looking for?

Be as detailed as possible for better results