Outil de développement à code ouvert

crapkit

Savoir où intervenir dans le code.

crapkit croise la complexité du code, la couverture des tests et l’historique des modifications pour aider les développeurs et les agents de programmation à décider quoi améliorer en priorité.

Mon rôle
Créateur et responsable du projet
Licence
MIT
crapkit / worklist

$ crapkit worklist

classifycalc/grade.py:7
Complexité
14
Couverture des tests
50%
Score CRAP
38.5

La complexité et la couverture des tests, à l’échelle d’une fonction.

Mise en forme d’un exemple tiré de la documentation. Voir la sortie originale

Le problème de départ

Où investir
la prochaine heure de travail?

Le code peut être facile à générer, mais difficile à modifier en toute confiance. Des tests qui passent ou un taux de couverture global ne permettent pas de repérer les fonctions dont la logique complexe se conjugue à des lacunes dans les tests.

J’ai créé crapkit pour repérer ce travail à l’échelle de chaque fonction et rendre les mêmes données exploitables par les développeurs, les agents de programmation et les contrôles automatisés.

01

Mesurer chaque fonction

Combiner la complexité cyclomatique et la couverture des tests à l’aide de la métrique CRAP existante. Lorsque la couverture n’est pas disponible, présenter la complexité seule, sans laisser croire que les tests ont été mesurés.

02

Choisir où intervenir

S’appuyer sur l’historique des modifications pour établir les priorités. Une fonction complexe qui change souvent ne demande pas la même attention qu’un code rarement modifié.

03

Préserver les progrès réalisés

Enregistrer la dette technique existante comme point de départ, puis vérifier les modifications par rapport à cette référence. Le mécanisme de cliquet permet aux scores enregistrés de s’améliorer, mais les empêche d’augmenter.

Un outil qui s’intègre au travail des équipes.

Utilisez crapkit en ligne de commande, connectez un agent de programmation par MCP ou intégrez-le à un flux de travail GitHub Actions. L’analyse et le calcul des scores s’exécutent localement, sans télémétrie; les commandes de test et les autres commandes configurées conservent leur propre comportement.

Les questions derrière les outils

Qu’attendons-nous
des systèmes que nous concevons?

Mes articles explorent le pouvoir d’agir, l’intention et la responsabilité. crapkit aborde un aspect concret du développement logiciel : rendre plus faciles à examiner les données qui éclairent les modifications du code.