Clean Code Guard

Examine le code écrit par l'IA par rapport à Clean Code, SOLID et 15 modes de défaillance LLM documentés

par amElnagdy · amElnagdy/guard-skills

Testé · Fonctionne ★ 8.4/10

Clean Code Guard — Examine le code écrit par l'IA par rapport à Clean Code, SOLID et 15 modes de défaillance LLM documentés

Ce que fait

Une compétence de révision qui vérifie le code de production généré ou modifié par rapport à Clean Code, SOLID, DRY/KISS/YAGNI et un catalogue de 15 modes de défaillance spécifiques aux LLM tels que les exceptions avalées, les retours de succès codés en dur, les API hallucinées et les bugs de copie-à-partir-de-similaire. Elle se déclenche après qu'un agent de codage écrit, édite, refactorise ou corrige du code et avant que le résultat ne soit présenté, commité ou fusionné, et sur des requêtes comme "review this PR", "is this safe to merge" ou "refactor this". Elle reste en dehors de la configuration CI, du workflow git, du débogage de tests, de la discussion d'architecture et de la révision de code de test, que la compétence sœur test-guard couvre.

Rapport de test

L'API GitHub étant limitée en débit, j'ai cloné le dépôt en shallow ; SKILL.md se trouve à skills/clean-code-guard/ avec 7 fichiers de référence, et j'en ai récupéré trois bruts (ai-failure-modes.md, solid.md, sources.md) — tous HTTP 200. Le frontmatter est parsé avec name plus une description de 938 caractères (sous la limite de 1024) ; le seul fichier non-Markdown est un agents/openai.yaml de 4 lignes de métadonnées d'affichage, et grep n'a trouvé aucun pipe-to-shell, blobs base64, lectures de secrets ou texte d'injection. Pour l'étape de sortie, j'ai écrit un OrderProcessor Python de 72 lignes avec des défauts intentionnels, produit une révision de base SANS lire le corps de la compétence, puis j'ai révisé en suivant SKILL.md plus review-checklist.md et ai-failure-modes.md : la base de référence a donné 14 points non classés avec l'exception de paiement avalée bloquant la fusion enfouie à la position 4 entre une importation inutilisée et une nit "+=", tandis que l'exécution de la compétence a forcé un pré-vol de refactorisation vs correction, des niveaux de gravité et une ligne de couverture par section, et a détecté trois choses que la base de référence avait manquées — le statut de réponse non vérifié (un 200 avec un corps refusé persiste toujours la commande), des données de carte brutes POSTées à une payment_url qui par défaut est None encadrée comme une découverte de limite de confiance, et float-money correctement rétrogradé à "changement de comportement, confirmer avec l'auteur" plutôt que listé comme une correction. Les coûts sont réels : environ 470 lignes de lecture de référence, et la limite de 3 nits max de la liste de contrôle a fait disparaître deux éléments légitimes de la base de référence. La documentation a perdu un point car la ligne 42 de SKILL.md prétend "14 systematic ways" alors que la ligne 3 de ai-failure-modes.md dit 15 et en liste 15, et la clause du frontmatter "invoke it on your own initiative the moment you finish writing code" est un risque de sur-déclenchement lors des tours de codage de routine. Phrases de déclenchement jugées : DEVRAIT se déclencher — "Je viens de finir d'implémenter le gestionnaire de paiement, révise-le avant que je ne le committe" (oui), "Révise cette PR, est-elle sûre à fusionner ?" (oui), "Refactorise cette classe OrderProcessor, garde le comportement identique" (oui) ; NE DEVRAIT PAS se déclencher — "La suite pytest échoue sur CI avec une erreur de démontage de fixture, aide-moi à la déboguer" (non, exclue deux fois comme exécution de test et CI), "Devrions-nous utiliser l'event sourcing ou le CRUD pour le service de commandes ?" (non, exclue comme discussion d'architecture pure). 5/5 corrects. Les quatre URL sources citées que j'ai vérifiées ponctuellement (arXiv 2409.19182, Fowler Yagni, Metz Wrong Abstraction, USENIX Spracklen) ont renvoyé 200, so the research claims are backed rather than decorative.

Testé le: 2026-07-21 · Claude Code 2.x (agent harness)

Installation

git clone --depth 1 https://github.com/amElnagdy/guard-skills.git /tmp/clean-code-guard-src
mkdir -p ~/.claude/skills
cp -R /tmp/clean-code-guard-src/skills/clean-code-guard ~/.claude/skills/clean-code-guard
# CLI instead: npx skills add amElnagdy/guard-skills --skill clean-code-guard --global
# (without --global it installs project-local, into ./.claude/skills)
# Whole 5-skill package: npx skills add amElnagdy/guard-skills
# Update later: npx skills update clean-code-guard

Commandes et exemples de prompts

  • /clean-code-guardExamine le code écrit par l'IA par rapport à Clean Code, SOLID et 15 modes de défaillance LLM documentés

Les skills se déclenchent sur des demandes en langage courant — aucune commande à retenir. Après installation, des prompts comme ceux-ci l'activent (en anglais) :

  • Is this code safe to merge
  • Review this PR against Clean Code principles
  • Audit this refactor for SOLID violations