From claudient
Analyzes a function or file for cyclomatic complexity and nesting depth, then applies targeted reductions via guard clauses, extraction, data-driven conditionals, and boolean simplification.
How this command is triggered — by the user, by Claude, or both
Slash command
/claudient:reduce-complexity [fichier] [nom de fonction ou numéro de ligne, optionnel]refactor/fr/The summary Claude sees in its command listing — used to decide when to auto-load this command
Réduisez la complexité du code dans $ARGUMENTS. 1. Lisez la cible. Si une fonction ou une ligne spécifique est donnée, concentrez-vous dessus. Sinon, identifiez les régions de plus haute complexité : conditionnelles profondément imbriquées, longues fonctions avec de nombreuses branches, chaînes de garde qui obscurcissent le chemin heureux. 2. Mesurez les signaux de complexité : - Profondeur d'imbrication > 3 niveaux - Longueur de fonction > 40 lignes avec plusieurs responsabilités - Complexité cyclomatique > 10 (comptez : `if`, `else if`, `for`, `while`, `case`, `catch`, `&&`, `|...
Réduisez la complexité du code dans $ARGUMENTS.
Lisez la cible. Si une fonction ou une ligne spécifique est donnée, concentrez-vous dessus. Sinon, identifiez les régions de plus haute complexité : conditionnelles profondément imbriquées, longues fonctions avec de nombreuses branches, chaînes de garde qui obscurcissent le chemin heureux.
Mesurez les signaux de complexité :
if, else if, for, while, case, catch, &&, || branches)Appliquez des réductions ciblées :
Retours anticipés / clauses de garde :
Extrayez des sous-fonctions :
isEligible(), hasPermission())Remplacez les conditionnelles par des données :
if/else ou switch mappe des valeurs d'entrée à des valeurs de sortie, remplacez par une table de recherche / mapAplatissez les boucles imbriquées :
.flatMap(), les générateurs, ou des fonctions d'aide pour éviter les boucles triples imbriquéesSimplifiez la logique booléenne :
const isExpired = date < now && !renewed)Ne réduisez pas la complexité en la cachant (par exemple, en déplaçant une branche complexe dans une lambda qui est immédiatement invoquée). L'objectif est une véritable simplification, pas une relocalisation.
Préservez tous les comportements exactement. Effectuez une différence mentale : chaque entrée qui a produit la sortie X doit toujours produire la sortie X.
Résultat : estimation de complexité originale, nouvelle estimation, et un résumé de chaque transformation appliquée.
npx claudepluginhub claudient/claudient --plugin claudient-personas