À propos du projet
ripr effectue une analyse statique de l'exposition aux mutations pour identifier les lacunes où les tests atteignent un comportement modifié mais manquent d'assertions ciblées pour détecter une rupture. Il lit les diffs de PR et oriente des réparations ciblées, limitées aux tests, pour des humains ou des agents de codage.
Capacités clés :
- Identifie les lacunes : comportements modifiés dont les tests sont trop faibles pour remarquer une rupture, chacun avec un ID canonique stable
- Génère des cartes de réparation : quoi affirmer, où, et pourquoi la preuve actuelle est faible
- Produit des paquets bornés : des ordres de travail limités aux tests spécifiant les fichiers autorisés, les fichiers interdits et les conditions d'arrêt
- Fournit des commandes de vérification (ex: cargo test, pytest) pour vérifier les réparations
- Enregistre des reçus avant/après prouvant si les lacunes ont été réellement comblées
L'outil fonctionne via une boucle d'agent lacune → correction → vérification. La commande principale `ripr check` analyse les changements et renvoie un itinéraire de départ borné avec des lacunes sélectionnées et des pointeurs de preuves. Une transaction de réparation en deux phases (`ripr agent repair --phase before/after`) gère la plomberie des preuves tandis que l'humain ou l'agent externe s'occupe de la modification du test.
ripr se positionne entre la couverture (les lignes ont-elles été exécutées ?) et les tests de mutation (les tests ont-ils échoué avec de vrais mutants ?). Il est statique et consultatif — il n'exécute pas de mutants, ne rapporte pas de résultats tués/survécus, ne remplace pas la couverture et ne revendique pas l'adéquation des tests.
Support des langages : la réparation des lacunes Rust/Cargo est en alpha utilisable. Le routage de réparation Python pytest/unittest est en alpha utilisable. TypeScript est en préversion opt-in. Perl est en préversion/consultatif.
Surfaces de distribution : CLI (cargo install), extension VS Code, Open VSX, intégration CI via `ripr init --ci github`. Nécessite Rust ≥1.95 et Git, exécuté à l'intérieur d'un dépôt Git. Licencié sous MIT OR Apache-2.0.
Ce dépôt (ripr-swarm) est le tronc de développement pour les PR d'agents et de mainteneurs approuvés ; le dépôt EffortlessMetrics/ripr est l'autorité de publication et de distribution.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.