Communitygithub.com

cstrlcs/skills

Implémente, débogue, refactorise et vérifie des logiciels sur les plans backend, frontend, données et infrastructure. À utiliser pour les modifications logicielles, pas pour les demandes de simple investigation ou de révision.

Qu'est-ce que skills ?

Ce skill est un guide complet de développement logiciel qui couvre l'implémentation, le débogage, la refactorisation et la vérification de code sur plusieurs couches (backend, frontend, données et infrastructure). Il est conçu pour être utilisé lorsqu'un changement logiciel concret est demandé — qu'il s'agisse de corriger un bug, d'ajouter une fonctionnalité ou de refactoriser — et non pour des tâches d'investigation ou de révision uniquement. Le skill suit une approche structurée en trois étapes : **Comprendre**, **Implémenter** et **Vérifier et livrer**. Dans la phase de compréhension, il insiste sur la reproduction des bugs et la consultation des références de projet applicables (délégation, tests, débogage, UI, services et données). Les règles d'implémentation imposent des conventions de style précises : utiliser des clauses de garde, privilégier les expressions inline plutôt que les fonctions inutiles, nommer les valeurs d'après leur contexte, valider les entrées aux limites, vérifier les nouvelles dépendances et mettre à jour la documentation. Enfin, la phase de vérification exige d'exécuter la suite de tests complète du projet, de mapper chaque critère d'acceptation à une vérification, et de signaler tout écart ou limitation. Ce skill fonctionne avec l'agent Claude Code et tout agent capable de lire un fichier SKILL.md, et s'applique à tout type de codebase (applications web, backend, outils en ligne de commande, etc.). Il est particulièrement utile pour les agents d'IA qui doivent effectuer des modifications de code de manière fiable en respectant les conventions du projet.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/cstrlcs/skills/tree/HEAD/skills/develop

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Développeur

Livrez le comportement demandé avec le plus petit changement cohérent qui s'adapte au projet.

Comprendre

Établissez le comportement attendu et le chemin d'appel concerné avant de modifier. Pour les bugs, reproduisez l'échec avant de le corriger lorsque c'est pratique.

Lisez les références lorsque leur branche s'applique :

  • Tâches volumineuses avec des flux de travail d'implémentation indépendants : suivez la délégation lorsque des sous-agents sont disponibles ; gardez les tâches petites ou étroitement couplées avec l'agent principal.
  • Écriture ou modification de tests : lisez d'abord tests ; suivez son flux de travail test-first lorsque l'utilisateur demande un développement piloté par les tests.
  • Cause peu claire, correction échouée, bug intermittent ou régression de performance : suivez le débogage, en établissant sa boucle de rétroaction avant de former des hypothèses.
  • Construction ou modification d'une interface utilisateur (pages, écrans, balisage, styles, contenu de l'interface, gestion du focus ou de la saisie) : lisez d'abord frontend et UI, puis les fichiers de branche qu'il lie.
  • API, persistance, migrations, événements, flux de travail distribués, travaux en arrière-plan, intégrations ou modifications d'exécution : services et données.

Implémenter

  • Utilisez des clauses de garde : traitez d'abord chaque cas de sortie avec un retour anticipé ou un throw, puis écrivez le chemin principal sans indentation. Appliquez cela même lorsque le chemin principal est une seule instruction, afin que chaque fonction se lise de la même manière : les conditions qui l'arrêtent en haut, le travail en dessous. Un ternaire ou un else qui choisit entre deux résultats est la forme à remplacer.
  • Écrivez une expression à usage unique inline à son site d'appel. Extrayez une fonction nommée uniquement lorsqu'elle est réutilisée, encapsule une logique trop longue pour être lue sur place, ou est testée indépendamment, car un wrapper d'une seule ligne envoie le lecteur ailleurs pour apprendre ce que l'expression dit déjà. N'ajoutez des abstractions que pour un comportement partagé existant, une véritable frontière, ou un besoin de test démontré.
  • Nommez une valeur d'après le paramètre ou la propriété qu'elle remplit lorsque ce nom la décrit encore, et passez-la avec la syntaxe abrégée : const base = … puis { base }, pas const projectsBase = … puis base: projectsBase. N'ajoutez un qualificatif que pour une information que le code environnant ne fournit pas déjà, comme pour distinguer deux valeurs dans la même portée, car un alias oblige le lecteur à mapper deux noms sur une seule chose.
  • Ces règles de style régissent les lignes que vous écrivez. Laissez le code environnant et ses commentaires existants tels quels, sauf si votre modification les rend incorrects, car restyler du code intact enterre la modification dans le diff.
  • Validez les entrées non fiables à leur frontière et faites confiance après ce point ; gérez les erreurs uniquement là où elles peuvent se produire et où un appelant peut agir sur elles, en préservant le contexte d'erreur et le nettoyage.
  • Lorsqu'une modification nécessite une nouvelle dépendance, confirmez le package exact dans son registre (nom, éditeur, âge, scripts d'installation) et épinglez-le via le verrouillage, car les agents sont sujets aux noms de packages hallucinés ou typosquattés.
  • Mettez à jour les contrats concernés, les exemples de configuration et la documentation.

Vérifier et livrer

Exécutez les vérifications pertinentes du projet : formatage, lint, types, tests et build. Avant de terminer, confirmez que chaque ligne modifiée correspond à la demande ou à une expansion de portée déclarée. Pour des critères d'acceptation explicites, associez chacun à la vérification qui démontre qu'il est satisfait ; le fait de passer des vérifications générales seules n'établit pas l'acceptation. Terminez lorsque le comportement est vérifié, ou indiquez exactement ce qui reste non vérifié et pourquoi.

Signalez le comportement résultant, les interprétations que vous avez choisies lorsque la demande était ambiguë, toute expansion de portée et pourquoi, les vérifications que vous avez effectuées et les limitations matérielles.

Skills associés