---
name: nextjs-rules
description: Installe les règles Next.js (`nextjs-16.x.md`) du dépôt central `~/Github/Rules/` dans le projet courant et les branche dans son `CLAUDE.md` via `@import`. Utiliser ce skill dès que l'utilisateur veut intégrer / installer / copier / synchroniser les règles Next.js dans un projet — typiquement après un `npx create-next-app`, ou quand il parle d'ajouter une "rule" / "convention" / "guideline" Next.js au `CLAUDE.md`. Le pattern est extensible aux futures règles (code-of-conduct, etc.).
---

# nextjs-rules

Installe les règles Next.js du dépôt central dans le projet courant.

## Source et destination

- **Source** : `~/Github/Rules/nextjs-16.x.md` (référence canonique, éditée dans le repo central)
- **Destination** : `./nextjs-16.x.md` (racine du projet, à côté de `CLAUDE.md`)

Une **copie**, pas un symlink — chaque projet snapshot la version qui lui convient. Pour récupérer une mise à jour du repo central, relancer le skill.

## Procédure

1. **Vérifier le projet cible.** Lire `package.json` à la racine et confirmer `next` dans `dependencies` ou `devDependencies`. Si absent, demander confirmation avant de continuer (l'utilisateur peut vouloir l'installer dans un projet pré-Next).

2. **Copier la règle.**
   ```bash
   cp ~/Github/Rules/nextjs-16.x.md ./nextjs-16.x.md
   ```
   Si `./nextjs-16.x.md` existe déjà, montrer un `diff` rapide à l'utilisateur et demander avant d'écraser.

3. **Brancher dans `CLAUDE.md`** (idempotent) :
   - Si `CLAUDE.md` n'existe pas → le créer avec une section `## Règles` contenant `@nextjs-16.x.md`.
   - S'il existe sans section `## Règles` → ajouter la section à la fin avec `@nextjs-16.x.md`.
   - S'il a déjà la section sans la ligne → ajouter la ligne à la liste.
   - Si la ligne `@nextjs-16.x.md` est déjà présente → ne rien changer.

4. **Confirmer.** Lister à l'utilisateur ce qui a été créé / modifié.

## Forme attendue de `CLAUDE.md`

```markdown
# CLAUDE.md

<contenu spécifique au projet…>

## Règles
@nextjs-16.x.md
```

Quand d'autres règles s'ajoutent, une ligne `@<nom>.md` par règle dans la même section :

```markdown
## Règles
@nextjs-16.x.md
@code-of-conduct.md
```

## Pourquoi ce design

- **Une règle = un fichier au root.** L'utilisateur peut le consulter / éditer sans chasser dans des sous-dossiers.
- **`CLAUDE.md` reste un index court** — les détails vivent dans les fichiers `@import`és (pattern Claude Code natif).
- **Extensible sans modifier ce skill** : pour publier une nouvelle règle, ajouter son `.md` au repo central et écrire un skill jumeau (`code-of-conduct-rules`, etc.) ou étendre ce skill pour proposer la liste.

## Limites connues

- Pas de sync inverse : les édits faits dans `./nextjs-16.x.md` du projet ne remontent pas vers `~/Github/Rules/`. Si l'utilisateur veut amender la règle pour tous les projets, éditer la source.
- Pas de versionning : le skill copie toujours la version actuelle de la source. Pour figer une version, le projet doit committer son `nextjs-16.x.md`.
