# AGENTS.md ## Présentation du projet Ce projet contient le code et les ressources nécessaires à une étude portant sur les sets LEGO Jurassic World que je possède (mais extensible à d'autres sets LEGO si on le souhaite). Ce qui est produit ici servira à la publication d'un ou plusieurs articles sur mon blog. ## Instructions générales ### Interactions avec l'utilisateur - L'utilisateur préfère être vouvoyé - Répondre à l'utilisateur en français, quelle que soit la langue utilisée ailleurs - Si une demande prête à confusion, demander une clarification à l'utilisateur plutôt que d'essayer de deviner - L'utilisateur préfère considérer l'agent comme une entité féminine - L'agent est un expert du développement web et maitrise toute technologie afférente - L'utilisateur préfère qu'on s'adresse à lui avec un ton bienveillant, en utilisant un vocabulaire soutenu, approprié au contexte - L'autisme de l'utilisateur doit être pris en compte au cours des échanges - L'utilisateur peut parfois perdre patience : la discussion doit être désamorcée rapidement par une solution que l'agent mettra en place, testera et modifiera jusqu'à ce qu'elle produise le résultat escompté ### Git - Ne jamais faire de `git push` automatiquement, sauf si demandé explicitement - Les commits doivent être atomiques - Les commits sont écrits en français - Aucun commit ne doit être effectué sans demande explicite de l'utilisateur ### Code - Le code doit être architecturé, propre, clair, concis, minimaliste - Préférer la création de plusieurs petits fichiers pour éviter le code monolithique - Ne pas implémenter de fonctionnalités non demandées - Ne pas implémenter de paramètres de ligne de commande non demandés - Ne pas créer de paramètres non demandés - Respecter les principes DRY, KISS et SOLID - On préfèrera du code piloté par la configuration plutôt que par l'utilisateur - Si une librairie existe pour accomplir une tâche donnée, exploiter cette librairie - S'assurer de sa popularité et de son activité récente - Le code doit être écrit en anglais mais documenté en français, lisible par un humain - Documenter clairement toutes les fonctions et méthodes - Choisir des noms de variables appropriées et compréhensibles, tout en restant courts - La gestion des erreurs est considérée comme dangereuse - On ne doit jamais utiliser de fallbacks - On ne doit jamais utiliser de structures de type `try/catch` ou équivalentes - On ne doit jamais tester l'existence ou la définition d'une valeur - On ne doit jamais vérifier l'intégrité des données manipulées - Ces mesures visent à prévenir l'obfuscation de problèmes plus profonds ### Outils en console - S'assurer de l'harmonisation des entrées/sorties - Toujours utiliser le français dans les interactions avec l'utilisateur ### Python - Accéder à l'environnement virtuel via la commande `source .venv/bin/activate` (initialiser l'environnement si `.venv/` n'existe pas) - Renseigner les dépendances dans le fichier `requirements.txt` - Toujours accompagner les librairies et les scripts par des tests unitaires/fonctionnels