ADR-047 : Couche de guidance agent IA dans les applications Forge¶
Statut¶
Accepté, bêta publique 1.0 (1.0.0-beta.x).
Décision prise ; mise en œuvre par les tickets AGENTS-* listés plus bas.
Date¶
2026-06-24
Contexte¶
Le développement de Forge a produit un capital de conception important : la charte (CHARTE_DOC.md), les ADR, les conventions (docs/contributing/), et le briefing des agents IA (CLAUDE.md, config .claude/).
Ce capital vise le développement du framework.
Quand forge new génère une application, le squelette est volontairement nu (ADR-024) : il n'embarque aucune guidance pour les agents IA (CLAUDE.md, AGENTS.md) ni convention de développement applicatif.
Conséquence : un développeur, et son agent IA, qui travaille sur une application Forge ne bénéficie pas de l'expérience accumulée ; l'agent peut proposer des solutions qui combattent le framework (ORM maison, écriture dans le code généré, SQL caché), faute de cadre.
Le squelette ship déjà du tooling pour l'application (.vscode/, schemas/ JSON) : transmettre une guidance agent en est l'extension naturelle.
Décision¶
Forge distille son expérience en une couche de guidance agent, générée dans l'application et taillée pour le développement applicatif (pas pour le développement du framework).
-
Contenu : un briefing concis et actionnable.
Conventions (entités JSON, routes/contrôleur/méthode, SQL visible), générateurs CLI à utiliser (forge make:*,forge doctor), ce qu'il faut éviter (ORM maison, écrire dans le code généré, casser les contrats), où vivent les choses (mvc/...), comment valider (pytest,forge doctor).
Pas la gouvernance interne du framework (charte complète, ADR, processus). -
Cibles :
CLAUDE.md(Claude Code) etAGENTS.md(Codex et standard d'agents), avec le même contenu, écrits par défaut parforge new.
Optionnellement, un.claude/settings.jsonqui pré-autoriseforge,pytest,ruff. -
Source canonique et fraîcheur : le gabarit du briefing vit dans le framework, versionné avec lui (donnée de paquet).
forge newl'écrit (write-if-new, principe 9 : le développeur en devient propriétaire).
Une commandeforge agents:init(re)génère ou met à jour le briefing depuis la version installée, pour les applications existantes aussi ; un mode--checksignale un briefing périmé.
Conséquences¶
Positives :
- l'expérience de conception de Forge profite à chaque application et à son agent IA, dès
forge new; - le briefing reste cohérent avec la version de Forge installée, via la commande de rafraîchissement ;
- couverture des deux principaux agents (
CLAUDE.md,AGENTS.md) sans duplication de contenu (même texte) ; - le développeur possède les fichiers (write-if-new) et peut les adapter.
Coûts et limites :
- déviation assumée d'ADR-024 : le projet généré n'est plus strictement « nu », il gagne une couche de guidance (voir ci-dessous) ;
- un gabarit de plus à maintenir dans le framework, à garder distillé (ne pas y recopier la charte ni les ADR) ;
- le briefing est un instantané au moment de l'écriture ; sa fraîcheur dépend de la commande de rafraîchissement, pas d'une magie automatique.
Relation avec ADR-024 (projet nu)¶
ADR-024 garde tout son sens pour le code applicatif : forge new ne génère pas de contrôleurs, d'entités ni de pages métier.
Cet ADR précise que le projet généré peut porter du tooling et de la guidance (DX), au même titre que .vscode/ et schemas/ déjà présents.
La frontière reste : pas de code métier généré, mais un cadre de travail fourni.
Alternatives écartées¶
Snapshot figé à forge new, sans rafraîchissement.
Simple, mais l'application diverge de l'expérience Forge au fil des versions, et le développeur doit recopier à la main.
Briefing minimal renvoyant uniquement vers forgemvc.com.
Toujours à jour, mais dépend d'un accès en ligne et oblige l'agent à aller chercher ; moins actionnable hors connexion.
Guidance en opt-in seulement (hors forge new).
Préserve le projet nu, mais l'expérience n'est transmise que si le développeur y pense ; la décision retenue est de la fournir par défaut.
Mise en œuvre (tickets AGENTS-*)¶
AGENTS-BRIEFING-TEMPLATE-001: rédiger le gabarit canonique du briefing applicatif (donnée de paquet), distillé et versionné.AGENTS-SEED-ADR-001: fournir un ADR-001 d'amorçage (« Adopter Forge et ses conventions ») écrit dansdocs/adr/001-adopter-forge.mddu projet, qui acte une décision réelle et sert d'exemple de format.AGENTS-SKELETON-EMIT-001:forge newécritCLAUDE.md,AGENTS.mdet l'ADR-001 (write-if-new) depuis les gabarits.AGENTS-INIT-COMMAND-001: commandeforge agents:init(génération / rafraîchissement) avec mode--check.AGENTS-SETTINGS-001:.claude/settings.jsonapplicatif optionnel (commandes pré-autorisées).AGENTS-DOCS-001: documenter la couche guidance et la commande.AGENTS-CLOSING-001: audit de clôture et suite complète.