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.

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
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"
manifest: skills/data/codebase-explainer/SKILL.md
source content

Codebase Explainer

📥 Contexte à charger

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

ContextePattern/ActionPriorité
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 :

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

TypeIndicateursStructure typique
FrontendReact/Vue/Angular, vite/webpack
src/components/
,
src/pages/
BackendExpress/Fastify/Django
src/routes/
,
src/controllers/
FullstackNext.js/Nuxt/Remix
app/
,
pages/
,
api/
LibraryPas de UI, exports
src/
,
lib/
,
index.ts
CLICommander/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À observerExemple
NommageVariables, fonctions, fichiers
camelCase
,
PascalCase
,
kebab-case
StructureOrganisation des fichiers
feature-based
,
type-based
TestsLocalisation, naming
*.test.ts
,
__tests__/
ErreursGestion des exceptionsCustom errors, try/catch patterns
TypesTypeScript patternsInterfaces 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 :

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