name: ecocode-back
description: Use when analyzing the ecological impact of back-end code: database queries, API payloads, server-side cache, background jobs, data transfers, N+1 queries, missing indexes, or server energy consumption from a green IT perspective.
EcoCode Back â Analyse Ă©co-conception cĂŽtĂ© serveur
Vue d'ensemble
Sous-skill spécialisé dans l'audit éco-conception back-end. Mappe chaque problÚme détecté aux bonnes pratiques Green IT correspondantes via le MCP mcp-greenit.
REQUIRED PARENT SKILL: audits â ce sous-skill est dĂ©lĂ©guĂ© par le skill parent.
Collecte précise (obligatoire pendant l'analyse)
Pendant toute l'analyse, pour chaque problÚme détecté, noter immédiatement dans le contexte :
- Localisation exacte :
orders/controller.py:45, api/products.js:23-31
- Pattern problĂ©matique : le code ou la requĂȘte exacte qui pose problĂšme
- Valeurs mesurĂ©es : nombre de requĂȘtes dans une boucle, taille du payload, absence de TTL
- Contexte : taille estimée de la table, fréquence d'appel, données chaudes ou froides
Ces donnĂ©es ne sont pas affichĂ©es dans le rapport light mais servent Ă gĂ©nĂ©rer le guide de correction complet si l'utilisateur le demande â sans relire les fichiers.
Axes d'analyse
1. RequĂȘtes BDD â efficacitĂ© et sur-sĂ©lection
Consulter : mcp-greenit : greenit_chercher_fiche avec "base de donnĂ©es", "requĂȘtes SQL", "SGBD"
Vérifier :
2. Cache serveur
Consulter : mcp-greenit : greenit_chercher_fiche avec "cache", "mémoire", "Redis"
Vérifier :
3. Transferts de données
Consulter : mcp-greenit : greenit_chercher_fiche avec "données", "transfert", "API", "payload"
Vérifier :
4. Traitements redondants
Consulter : mcp-greenit : greenit_chercher_fiche avec "traitement", "calcul", "redondant"
Vérifier :
5. TĂąches de fond et workers
Consulter : mcp-greenit : greenit_chercher_fiche avec "tĂąche", "worker", "background", "asynchrone"
Vérifier :
6. Architecture et résilience
Consulter : mcp-greenit : greenit_chercher_fiche avec "architecture", "technologie", "circuit breaker", "élastique"
Vérifier :
7. Gestion des ressources
Consulter : mcp-greenit : greenit_chercher_fiche avec "ressources", "connexions", "sessions"
Vérifier :
8. Infrastructure et hébergement
Consulter : mcp-greenit : greenit_chercher_fiche avec "serveur", "hébergement", "infrastructure", "énergie"
Vérifier :
9. Production, logs et maintenance
Consulter : mcp-greenit : greenit_chercher_fiche avec "logs", "maintenance", "production", "sitemap"
Vérifier :
10. Emails et communications
Consulter : mcp-greenit : greenit_chercher_fiche avec "email", "communication"
Vérifier :
Détection des patterns N+1
Chercher dans le code :
1. Boucle for/foreach avec appel ORM/BDD à l'intérieur
2. .map() + await avec query individuelle par élément
3. Relation ORM chargée en lazy dans un loop
Solution type :
- SQL : JOIN ou IN (ids)
- ORM : eager loading, include/preload/with
- GraphQL : DataLoader (batching)
Format de rapport
## Analyse Back-end
### ProblÚmes détectés
| # | ProblÚme | Localisation | Sévérité | Pratique Green IT |
| --- | ------------------------------ | ----------------------- | -------- | ---------------------------------------------------- |
| 1 | N+1 sur la liste des commandes | orders/controller.py:45 | Haute | RWEB_0066 â Optimiser les requĂȘtes BDD |
| 2 | SELECT \* sans pagination | api/products.js:23 | Haute | RWEB_0017 â Ăviter le transfert de grandes quantitĂ©s |
### Détail par problÚme
**[Numéro]. [Intitulé du problÚme]**
- **Pratique Green IT :** RWEB_XXXX â [intitulĂ© officiel]
- **Sévérité :** Haute / Moyenne / Faible
- **Constat :** [Code ou comportement observé]
- **Impact :** [Ressources gaspillées : BDD, CPU, réseau, énergie]
- **Correction proposée :** [Code corrigé ou approche recommandée]
### Bonnes pratiques déjà respectées
- [Liste des points positifs avec RWEB_XXXX correspondant]
Mapping sévérité
| Sévérité | CritÚres |
|---|
| Haute | RequĂȘtes sans index sur tables > 10K lignes, N+1 en production, absence totale de cache sur donnĂ©es chaudes |
| Moyenne | SELECT * sur tables larges, TTL manquant, payloads non paginés, logs DEBUG en prod |
| Faible | Optimisations marginales, gain < 5% sur les ressources, bonnes pratiques infra/hébergement |
Erreurs fréquentes
- Analyser sans mcp-greenit : toujours mapper au numéro RWEB_XXXX officiel
- Ignorer l'ORM : l'ORM peut gĂ©nĂ©rer des requĂȘtes trĂšs inefficaces invisibles dans le code applicatif
- Confondre cache applicatif et cache HTTP : les deux sont nĂ©cessaires et complĂ©mentaires (RWEB_0016 â RWEB_0074)
- Oublier les migrations : vérifier aussi les fichiers de migration pour les index manquants et les types inadaptés
- Négliger l'infrastructure : les axes 8 et 9 ont souvent un fort impact mais sont moins visibles dans le code
Format du guide de correction complet
Généré uniquement si l'utilisateur le demande, depuis les données collectées. Ne pas relire les fichiers.
Pour chaque problĂšme du rapport light, produire une section dans cet ordre :
ProblĂšme N â [Titre du problĂšme]
Pratique : RWEB_XXXX â [intitulĂ© officiel de la fiche Green IT]
Sévérité : Haute / Moyenne / Faible
ĂlĂ©ments trouvĂ©s dans ton code :
chemin/exact/fichier.py:45 â [description du pattern trouvĂ©]
chemin/exact/autre.js:23 â [idem]
Impact estimĂ© : [ex: N requĂȘtes BDD par page vue au lieu de 1, +X ms latence]
Avant :
[code exact trouvé dans le projet, avec le chemin en commentaire]
AprĂšs :
[code corrigé, adapté au framework/ORM utilisé dans le projet]
Ătapes :
- [Action précise sur les fichiers et lignes listés]
[commande exacte si applicable]
- [Ătape suivante]
- [VĂ©rification : requĂȘte EXPLAIN, log de requĂȘtes, test de perf]
Outils recommandés :
[nom-outil] â [description en une ligne] : [commande d'installation ou de config]
RÚgles impératives :
- Les fichiers et numéros de ligne sont ceux réellement trouvés, jamais des exemples génériques
- Le code "Avant" est extrait du projet, le code "AprÚs" est adapté à son ORM/framework (Prisma, SQLAlchemy, ActiveRecord, etc.)
- Si plusieurs occurrences du mĂȘme problĂšme existent, les lister toutes