🌱 Green Claude, un skill IA éco-conçu

Un skill pour Claude Code qui guide Claude vers un code éco-conçu selon le RGESN 2024 et le GR491, installé une fois et appliqué automatiquement.

Coder avec un agent IA a un coût énergétique, pendant la session et dans le code qu'il produit. Le RGESN 2024 en fait une famille à part entière (« Algorithmie, dont IA ») : justifier le recours à l'IA, dimensionner le modèle à la tâche, mesurer son impact. Green Claude relie cette exigence de sobriété numérique à l'usage quotidien d'un assistant de code IA générative, plutôt que de traiter les deux sujets séparément.

Voir sur GitHub Installer

Comment ça marche

Pendant que Claude code

107 règles d'éco-conception alignées sur les 9 familles du RGESN 2024 : 38 règles renvoient à des critères précis, 67 à une famille et 2 à la Green Software Foundation. Claude les applique de lui-même en écrivant du code, sans qu'on le lui demande à chaque fois.

Sur demande, un audit

« Audit éco-conception de ce fichier » lance un script déterministe (grep sur les règles), zéro coût de raisonnement, qui détecte les motifs contraires à l'éco-conception (SELECT *, bibliothèques lourdes, autoplay…).

Le détail de ton langage

127 règles propres à Python, SQL, JavaScript/TypeScript, Java, C#, PHP, Ruby, Rust, C, C++, Go, Kotlin, Swift et Shell. Une requête N+1 se corrige avec select_related en Django et JOIN FETCH en JPA : l'audit sait lequel te concerne, d'après l'extension du fichier.

À chaque écriture, sans y penser

Un hook optionnel relance l'audit après chaque fichier écrit par Claude Code, sans passer par une décision du modèle. Charger un skill dépend du modèle ; exécuter un hook, non.

Exemple concret

Ce code, tout à fait banal :

import _ from 'lodash';

app.get('/api/users', (req, res) => {
  db.query('SELECT * FROM users', (err, rows) => {
    res.json(rows);
  });
});

eco-audit.sh api.js (sortie réelle, non retouchée ; les règles sont en anglais) :

[High] ECO-FRONT-01 — No heavy library for a minor need
  File           : api.js
  Category       : 6. Frontend
  RGESN          : 6.x
  Recommendation : Prefer the language's native functions or lighter alternatives (date-fns, Alpine.js).

[High] ECO-BACK-01 — Optimise SQL queries
  File           : api.js
  Category       : 7. Backend
  RGESN          : 7.x
  Recommendation : Select only the columns you need, index the filtered columns, and avoid functions in WHERE clauses and N+1 queries.

[High] ECO-JS-01 — Whole-library import
  File           : api.js
  Category       : JS/TS — dependencies and weight
  RGESN          : 6.1, 6.2
  Recommendation : Targeted imports (import { x } from 'lib/x'); native APIs first (fetch, Intl, URL, structuredClone, Date/Temporal) before adding a dependency.

3 ecodesign issue(s) found.

En pratique, pas besoin de lancer l'audit toi-même sur ce genre de code : en mode proactif, Claude évite lodash pour une seule fonction et SELECT * dès l'écriture, avant même qu'un audit ait lieu.

En 30 secondes

/plugin marketplace add Institut-du-Numerique-Responsable/green-claude
/plugin install green-claude@green-claude

Rien d'autre à faire : Claude Code charge le skill automatiquement dans les sessions suivantes et gère ses mises à jour. Tape /green-claude pour voir la checklist complète.

Alternative via install.sh, nécessaire pour câbler en plus les hooks (audit après écriture, cache local) :

git clone https://github.com/Institut-du-Numerique-Responsable/green-claude.git
cd green-claude && ./install.sh

Pour Claude.ai et l'API Skills, qui attendent une archive plutôt qu'un dépôt, scripts/package-skill.sh fabrique les deux zips attendus.

Ce que contient le projet

Pourquoi c'est important

Le code généré par l'IA va tourner pendant des années chez des utilisateurs qu'on ne verra jamais. C'est là que se joue l'essentiel de l'empreinte du « coder avec l'IA », pas pendant la session de génération. Green Claude s'attaque à ce moment précis, en s'appuyant sur des référentiels publics français et internationaux plutôt que sur des règles maison.

Ce que l'équipe décide, l'audit s'en souvient

Un candidat écarté une fois revient au tour suivant. Écarté six fois, il apprend à toute l'équipe à survoler l'audit, ce qui coûte plus cher que la règle ne rapporte. Deux fichiers versionnés à la racine du dépôt ferment la question : .green-claude/decisions.md pour ce qui a été tranché, où ACCEPTED fait taire une règle sur un fichier précis et TODO garde la dette visible, et .green-claude/ignore pour les fichiers hors périmètre, comme une suite de tests ou un corpus de règles qui contiennent du code fautif sans jamais l'exécuter. L'audit annonce combien de constats il a tus et où, donc rien ne disparaît sans trace.

Pourquoi un skill, pas une checklist

Une checklist RGESN en PDF dépend de la mémoire de qui l'a lue une fois, et personne ne la rouvre avant chaque ligne de code. Un skill Claude Code se charge à chaque session sans rappel, sélectionne les règles pertinentes pour ce qui s'écrit à l'instant plutôt que d'imposer les 250 règles à chaque échange, et vérifie le code déjà produit via un script déterministe. La checklist reste un document consulté ; le skill s'exécute dans la session de travail elle-même.

Reste que charger un skill est une décision du modèle. Pour les équipes qui veulent une vérification qui ne dépende de personne, le hook d'audit s'exécute après chaque écriture de fichier de code et renvoie ses trouvailles à Claude, qui corrige avant de continuer.