DOCUMENTATION

Installer et utiliser Forge

Forge est un plugin Claude Code stack-agnostique. Il découpe le cycle de développement en étapes courtes, chacune produisant un artefact markdown qui alimente la suivante. Cette page couvre l'installation, les concepts, la référence des 26 skills et la configuration.

Sommaire

Démarrer

Prérequis

Forge n'est ni un binaire ni une dépendance de votre projet : c'est un ensemble d'instructions markdown que Claude Code charge. Il n'y a donc rien à compiler et aucun runtime à installer.

  • Claude Code, dans n'importe laquelle de ses formes (CLI, application desktop, web ou extension IDE).
  • Un dépôt git initialisé. Les skills /forge:commit et /forge:release écrivent dans git ; les autres se contentent de lire le code et d'écrire des fichiers markdown.
  • Le CLI gh authentifié, uniquement pour /forge:release, qui publie la release sur GitHub.
  • Un serveur MCP Playwright, uniquement pour /forge:test-scenario, qui pilote un navigateur en live.

Aucune contrainte de langage ou de framework : le pipeline est stack-agnostique. Il détecte Symfony et Sylius pour charger des règles plus précises, mais fonctionne sur n'importe quelle base de code.

Installation

Les trois commandes se tapent dans une session Claude Code, pas dans un terminal. Elles valent pour n'importe quel projet.

  1. Ajouter la marketplace

    Enregistre le catalogue de plugins depuis GitHub. Rien n'est installé à ce stade.

    /plugin marketplace add gabrielmustiere/forge
  2. Installer le plugin

    La syntaxe est plugin@marketplace. Le plugin forge et la marketplace forge portent le même nom — la répétition est normale.

    /plugin install forge@forge
  3. Recharger les plugins

    Rend les 26 skills disponibles dans la session courante.

    /reload-plugins

Vérifier l'installation

Lancez le sommaire du pipeline. S'il répond, tout est en place.

session claude-code
/forge:help

Toutes les skills sont préfixées

Le préfixe vient du nom du plugin : on écrit /forge:feature-pitch, jamais /feature-pitch. Si votre session ne connaît que /help, c'est le /help natif de Claude Code — pas celui de Forge.

Aucune skill ne se déclenche toute seule : c'est un choix de conception. Le triage automatique entre skills voisines est probabiliste, donc faux un jour sur N — et un mauvais aiguillage produit le mauvais document. C'est vous qui appelez la skill.

Mettre à jour

Forge évolue en continu. Pour récupérer la dernière version publiée :

session claude-code
/plugin marketplace update forge
/reload-plugins

Les versions suivent le SemVer et sont annoncées dans le CHANGELOG au format Keep a Changelog.

Concepts

La règle d'or

Jamais d'étape suivante sans validation explicite

Chaque skill s'arrête et attend un « ok », « go », « validé » avant de continuer. C'est ce qui distingue le pipeline d'un agent qui part seul : vous relisez chaque artefact avant qu'il ne serve d'entrée au suivant.

La conséquence pratique : un artefact bancal se corrige à l'étape où il naît, pas trois étapes plus loin dans du code déjà écrit.

Artefacts et docs/story/

Tous les artefacts vivent à plat dans docs/story/, numérotés globalement puis taggés par track. Le numéro vient en premier pour que le tri lexicographique d'un simple ls donne la timeline du projet.

arborescence
docs/story/042-f-checkout-express/   # f = feature
docs/story/043-r-extract-pricing/    # r = refacto
docs/story/044-t-redis-cache/        # t = évolution technique

Le format est NNN-<f|r|t>-<slug>. Les numéros s'incrémentent globalement, tous tracks confondus : 042-f → 043-r → 044-t → 045-f.

Les documents d'une story

Fichier Registre Question à laquelle il répond
brief.md Fonctionnel Quel est le besoin, encore flou ?
pitch.md Fonctionnel Quel problème utilisateur, pour qui, pourquoi maintenant ?
plan.md Technique Comment on le construit, étape par étape ?
review.md Technique Le diff est-il sûr, propre et conforme au plan ?
report.md Factuel Qu'a-t-on livré, comparé à ce qui était prévu ?
estimate.md Économique Combien de temps « tout compris » à facturer ?
metadata.json Titre, dates, tags, changelog, livraison (lu par le Forge Board)

Un document sert un seul but, dans un seul registre, annoncé dans son en-tête. Le brief et le pitch sont fonctionnels : aucun nom de classe, de service ou de framework n'y a sa place. Les plans et la review sont techniques. Les documents de décision (review, report, estimation) ouvrent sur leur section ## Synthèse — on doit pouvoir ne lire qu'elle.

Un artefact, un seul écrivain

Chaque document a une skill propriétaire ; les autres le lisent. Deux exceptions assumées : metadata.json, append-only par construction, et les documents projet que /forge:sync co-écrit via les modes de leurs propriétaires.

Choisir son track

Quatre questions, dans l'ordre. La première qui répond « oui » donne le track.

Question Si oui
Un utilisateur final ou un admin peut décrire ce qu'il voit de nouveau ? Feature (f-)
Le comportement externe reste strictement identique (mêmes réponses, events, logs, timings) et on restructure juste le code ? Refacto (r-)
Un observateur externe peut détecter la différence, mais c'est pour mieux (plus rapide, plus résilient, plus observable, plus sûr) sans nouvelle valeur utilisateur ? Tech (t-)
Moins de 3 fichiers, pas de migration, pas d'impact transverse ? Fast

Piège : le changement qui mélange les catégories

Si vous ne pouvez pas scinder votre diff en commits distincts — le refacto pur, puis l'ajout de la brique technique, puis la feature qui s'en sert — vous avez probablement mélangé deux tracks. Séparez.

Ce que chaque track impose

  • Feature — un cadrage fonctionnel (pitch.md) avant tout plan technique : quel problème utilisateur, pour qui, pourquoi maintenant. C'est le seul track à passer par cette étape.
  • Refacto — comportement externe strictement préservé, verrou de tests de caractérisation posé avant de toucher au code, exécution incrémentale et réversible — souvent un commit par étape.
  • Tech — une métrique cible chiffrée, une baseline mesurée avant toute modification, un kill switch activable, et une mesure après chaque étape.

Le track ne change pas les phases que vous traversez : il change les skills que vous appelez à l'intérieur de chacune. Voir la référence des skills.

Le track fast

Tout ne mérite pas un pitch. Le track fast couvre les bugfixes et petits changements, sous trois conditions cumulatives :

  • Moins de 3 fichiers modifiés ;
  • Pas de changement de schéma (migration) ni de nouveau service ou entité ;
  • Pas d'impact transverse (multi-channel, multi-thème, API publique…).
processus
coder → QA du stack → tests ciblés → /forge:review (optionnel) → /forge:commit

En cas de doute, partez sur le track approprié : on peut toujours basculer du structurant vers le fast si l'analyse révèle que c'est trivial. L'inverse coûte plus cher.

Référence des skills

Vingt-cinq skills, quatre phases. La phase dit quand : on pose le décor une fois pour le projet, puis chaque story traverse le cadrage, l'implémentation et la clôture, dans cet ordre. Le track dit avec quelles skills : à phase égale, une feature, un refacto et une évolution technique n'appellent pas les mêmes. Perdu en cours de route ? /forge:help réaffiche le pipeline complet et oriente vers la bonne.

Phase 0 — poser le décor

Une fois en début de projet, puis révisé lors d'un pivot. Ces trois documents sont vivants : ils supportent quatre modes (Création, Enrichir, Éditer, Pivot) et tiennent leur propre changelog.

Skill Rôle Produit
/forge:vision Atelier challengeur : problème, audience, valeur, North Star, principes, anti-objectifs docs/vision.md
/forge:product-backlog Domaines → capacités → parcours → règles transverses → backlog priorisé MVP/V2/V3, avec avancement coché dérivé des stories docs/product-backlog.md
/forge:stack Scanne les manifestes, interroge pour combler les trous, prouve chaque techno par un fichier source docs/stack.md

docs/vision.md est lu par /forge:product-backlog puis par /forge:feature-pitch à chaque feature, pour challenger l'alignement. docs/stack.md est lu en priorité par les skills techniques. Il constate l'existant — il ne justifie pas un choix (c'est /forge:adr) ni ne décide d'une évolution (c'est /forge:tech-plan).

/forge:product-backlog est facultatif : on peut aller directement de la vision au pitch. Il devient recommandé dès qu'on a plus de trois ou quatre features pressenties.

Phase 1 — cadrer

Le point d'entrée de toute story : on choisit son track, puis on formalise l'intention avant d'écrire la moindre ligne. C'est la phase où un désaccord coûte le moins cher — corriger un pitch prend cinq minutes, corriger le code qui en découle prend la journée.

Track Skill Rôle Produit
Feature /forge:feature-interview Optionnel — découvrir un besoin flou par interview avant de pouvoir le pitcher brief.md
Feature /forge:feature-pitch Cadrer et challenger la fonctionnalité (lit le brief s'il existe) pitch.md
Feature /forge:feature-plan Concevoir la solution technique à partir du pitch plan.md
Refacto /forge:refactor-plan Cadrer le refacto : motivation, cible, tests de caractérisation plan.md
Tech /forge:tech-plan Cadrer avec une métrique cible chiffrée, une baseline et un kill switch plan.md

Les trois tracks produisent un plan.md — le cadrage technique exécutable — et partagent le même squelette de sections ; leurs spécificités (caractérisation d'un refacto, kill switch d'un tech) s'y ajoutent. Seul le track feature intercale un pitch.md en amont, parce que lui seul doit d'abord répondre à une question fonctionnelle.

Phase 2 — implémenter

Une skill par track, toutes bâties sur le même principe : avancer par étapes courtes, avec la QA du projet après chacune, plutôt que produire un gros diff à vérifier à la fin.

Track Skill Rôle Produit
Feature /forge:feature-implem Implémenter sous-tâche par sous-tâche avec QA continue Code + migrations + tests
Refacto /forge:refactor-implem Exécuter verrou-tests-d'abord, par étapes réversibles Code + tests
Tech /forge:tech-implem Exécuter : baseline, kill switch, mesure après chaque étape Code + mesures

Phase 3 — clôturer

Commune aux trois tracks : les mêmes skills, quel que soit le chemin parcouru en phases 1 et 2. Seuls le contenu et le ton des artefacts changent — la review d'un track tech s'intéresse au kill switch, celle d'un refacto à la non-régression.

Skill Ce qu'elle fait
/forge:review Code review du diff : sécurité, qualité, conformité au plan, non-régression.
/forge:report La mémoire factuelle de la livraison : écart entre intention et exécution, ajouts non prévus, dette laissée, métriques obtenues. Écrit une fois pour toutes.
/forge:sync Met à jour les documents d'intention en place, comme une révision documentaire, ainsi que les docs projet (vision, stack, product-backlog).
/forge:commit Vient en dernier pour embarquer d'un coup le code, le report.md et les docs réalignées : lit le diff, regroupe les changements en lots cohérents, propose des messages Conventional Commits en français, demande validation, commit et push.

report et sync sont complémentaires

/forge:report fige la trace de ce qui s'est passé ; /forge:sync rend les documents d'intention à nouveau fiables pour les futurs lecteurs. On garde les deux.

Utilitaires — hors pipeline

Skill Rôle
/forge:help Le sommaire du pipeline, des tracks, des skills et des artefacts.
/forge:claude-md Génère ou met à jour le CLAUDE.md : analyse du codebase prouvée par fichier — aucune commande inventée — et injection des principes comportementaux.
/forge:rules Écrit les règles projet dans .claude/rules/, chargées seulement quand Claude ouvre un fichier de la zone concernée.
/forge:adr Rédige un Architecture Decision Record (format MADR léger) depuis un artefact ou un topic libre, avec backlinks et index automatiques. Produit docs/adr/NNNN-slug.md.
/forge:status Le point de situation à la reprise d'un projet : stories en cours, étape atteinte par chacune, fraîcheur, état du dépôt (working tree, commits non poussés, stash), et une reprise conseillée. Lecture seule — n'écrit aucun fichier.
/forge:estimate Chiffre le temps « tout compris » à facturer — cadrage, implémentation, tests, review, doc, release — en heures, sur deux colonnes : référence sans IA et temps réel avec assistant. Du temps, jamais de montant.
/forge:test-scenario Joue un scénario utilisateur en live via Playwright MCP.
/forge:doc-feature Cartographie une feature existante en lisant le code (entités, flux, routes, services, points d'extension). Produit docs/feature-map/NNN-slug/overview.md.
/forge:backfill-metadata Reconstruit rétroactivement le metadata.json des stories antérieures depuis l'historique git. N'écrit que des valeurs vraies — jamais de date inventée.
/forge:release Détermine le bump SemVer depuis les Conventional Commits, met à jour le CHANGELOG.md, crée un tag annoté, push et publie la release GitHub via gh. Demande validation avant toute action publique.

Ne pas confondre sync et doc-feature

/forge:sync recale un document d'intention récent que vous venez de modifier dans un track structuré. /forge:doc-feature cartographie une feature ancienne ou jamais passée par le pipeline, en partant du code livré, sans dossier de track préalable.

Configuration

Permissions et outillage

Les skills d'implémentation n'imposent aucun outillage : elles ne présument ni de votre gestionnaire de paquets, ni de votre lanceur de tests. Elles lisent les commandes réelles dans votre CLAUDE.md, la référence stack, ou votre manifeste de tâches (Makefile, package.json, composer.json, justfile…) — et si elles ne les trouvent pas, elles demandent au lieu de deviner.

Conséquence pratique : c'est à votre projet de pré-autoriser son outillage dans son .claude/settings.json. Sans ça, Claude Code demandera confirmation à chaque commande de build ou de test — c'est fonctionnel, juste bavard.

.claude/settings.json
{
  "permissions": {
    "allow": ["Bash(make:*)", "Bash(vendor/bin/*:*)", "Bash(npm:*)"]
  }
}

C'est aussi le bon endroit pour poser une interdiction dure via permissions.deny : contrairement aux allowed-tools d'une skill — qui ne font que pré-autoriser — un deny projet est souverain et ne se contourne pas.

Le CLAUDE.md du projet

Les références stack embarquées dans le plugin couvrent le générique. Ce qui est propre à votre projet — commandes QA exactes, identifiants de test, noms de thèmes, conventions de branches — vit dans le CLAUDE.md à la racine. Les skills le lisent en complément.

/forge:claude-md le génère pour vous, en prouvant chaque affirmation par un fichier du dépôt. Si une règle est scopable à une zone du code, préférez /forge:rules : elle produit un fichier dans .claude/rules/ qui n'est chargé que quand Claude ouvre un fichier concerné — le contexte reste léger.

Règles framework

Le workflow détecte le stack via composer.json / package.json et charge les références correspondantes, bundlées avec le plugin :

  • la procédure de détection du stack ;
  • les règles Symfony — Doctrine, services, forms, Twig, QA, sécu, perf ;
  • le delta e-commerce Sylius — Resources, channels, thèmes, Twig Hooks…

Le chargement est automatique après détection : rien à lire manuellement. Des marketplaces complémentaires (par exemple gabrielmustiere/skills) exposent des skills plus tactiques, propres à un framework, qui se combinent naturellement avec le pipeline.

Aide

Dépannage

/forge:xxx est introuvable

Lancez /reload-plugins. C'est nécessaire après l'installation et après chaque mise à jour de la marketplace. Vérifiez aussi le préfixe : c'est /forge:help, pas /help.

Une skill ne se déclenche pas toute seule

C'est le comportement attendu, pas un bug : aucune skill Forge ne s'auto-déclenche. Le triage automatique entre skills voisines est probabiliste, et un mauvais aiguillage produirait le mauvais document. Appelez la skill explicitement.

Claude demande confirmation à chaque commande

Votre projet n'a pas pré-autorisé son outillage. Voir Permissions et outillage.

Le Forge Board n'affiche pas mes stories correctement

Le Board lit le metadata.json de chaque story et ne l'écrit jamais. Sur des stories antérieures à cette convention, le fichier n'existe pas : lancez /forge:backfill-metadata pour le reconstruire depuis l'historique git.

Développer le plugin

Pour tester une modification locale du plugin avant publication, lancez Claude Code depuis n'importe quel projet en pointant le dossier du plugin :

terminal
claude --plugin-dir /chemin/vers/forge/plugins/forge

Pendant la session, /reload-plugins recharge après chaque modification.

Le piège classique

Une skill qui ne se déclenche pas comme prévu, c'est presque toujours sa description : trop vague, ou sans les mots-clés que l'utilisateur emploierait naturellement. Rendez-la plus spécifique et incluez les phrases déclencheurs. Au-delà de 250 caractères, la description est tronquée dans la liste chargée en contexte.

Structure d'une skill : un dossier skills/<nom>/SKILL.md, dont le name en frontmatter YAML doit matcher le nom du dossier. Les dossiers skills/, commands/, agents/ et hooks/ vivent à la racine du plugin — seul plugin.json habite .claude-plugin/.

Le code, l'inventaire complet des skills et le changelog sont sur GitHub.