Skip to content

✅ 5 — Prove ​

Prove relance les contrôles en CI propre et réalise une revue de code automatisée indépendante. Un agent Prove distinct inspecte le diff de la pull request et vérifie l’intention, le comportement, la conformité architecturale et la sécurité. Les changements validés peuvent fusionner automatiquement, sans signature humaine de routine.

Objectif ​

EntréeSortieResponsable
Une demande de fusion ayant passé les contrôles de CodeRésultats CI, revue de code et évaluation indépendantes, et preuves de risque autorisant la fusion automatiqueDéveloppeur, responsable de l’automatisation

Pourquoi les contrôles déterministes et la revue par agent remplacent la revue de code manuelle ​

La revue manuelle ligne par ligne ne suit pas le rythme des changements générés et peut manquer des défauts subtils. Prove combine des contrôles déterministes exécutables avec une revue de code indépendante par agent qui inspecte le diff au regard des règles du Contexte persistant, des frontières du Plan et des invariants de sécurité. Les personnes interviennent uniquement sur les échecs non résolus, les tentatives épuisées ou les points de revue explicitement demandés.

Le harness de contrôles déterministes ​

Les contrôles renvoient succès ou échec. La plupart ont déjà tourné dans Code ; Prove les relance en CI propre et ajoute les contrôles propres à la CI. Voir Contrôles déterministes.

Les contrôles déterministes ​

ContrôleTypeExécutionCe qu’il vérifie
Réexécution CI propreJalonCI dans un environnement viergeRelance build, typage, lint et tests de Code, hors du contrôle de l’agent
Vérification des critèresJalonExécuteur de testsChaque critère du Plan a une assertion qui passe
Compatibilité des contrats et schémasContratOpenAPI / JSON Schema / PactLes interfaces ne cassent pas silencieusement les consommateurs
Tests de mutationJalonExécuteur de mutationsLes tests détectent les défauts injectés
Tests d’APIContratTests HTTP, par ex. SupertestStatuts et réponses respectent le contrat, sur requêtes valides et invalides
Tests de fuzzingSondeFuzzing OpenAPI, par ex. RESTlerLes entrées malformées ne provoquent ni erreur serveur ni crash
Tests de base de donnéesJalonAssertions SQL sur une base migréeLectures, écritures, migrations, archivage et audit respectent la spécification
Tests E2ESondeTests navigateur, par ex. PlaywrightLes parcours principaux fonctionnent sur l’application
Sécurité et Policy-as-CodeGardeSemgrep / Trivy / OPA Conftest, protection des secretsRecherche les vulnérabilités connues, secrets et violations. Les secrets sont aussi vérifiés au commit
Smoke testsSondePrévisualisation éphémèreDémarrage, routage et points de santé fonctionnent

Générez les tests d’API, de fuzzing, de base de données et E2E avec le code. Exécutez-les sur une pile réelle ou une base migrée. Vérifiez la couverture des critères et utilisez les mutations pour mesurer la détection des défauts injectés.

Auto-remédiation par l’agent ​

Lorsqu’un contrôle CI échoue, l’agent :

  1. lit les diagnostics,
  2. trouve et corrige le défaut sans modifier ni contourner les contrôles,
  3. commite la correction et relance les vérifications.

Répéter jusqu’au succès ou à la limite de tentatives. Ensuite, escalader à un développeur.

Où l’IA est utilisée ​

Les contrôles tranchent succès/échec. L’IA écrit les tests, corrige le code et réalise la revue de code et l’évaluation indépendantes.

TâcheRôle de l’IARôle humain
Revue de code automatiséeInspecter le diff de la pull request au regard des frontières d’architecture, des règles du Contexte persistant et des invariants de sécuritéIntervenir uniquement sur les écarts non résolus ou les points de revue demandés
Diagnostic des échecsLire la sortie du jalon en échec et localiser le défautAucun pour les échecs courants
RemédiationRéécrire le code pour satisfaire le jalon, dans la limite de la boucle de correction, sans jamais affaiblir un contrôleIntervenir uniquement lorsque la limite est atteinte
Suites de testsÉcrire et maintenir les suites ; les contrôles vérifient la couverture des critèresIntervenir si la couverture ne peut pas être établie

Revue de code indépendante et évaluation automatisée ​

Un agent Prove indépendant passe en revue la pull request et consigne les preuves répondant à trois questions :

  1. Intention du client : cette fonctionnalité livre-t-elle fidèlement ce que le client a demandé lors de la réunion ?
  2. Expérience comportementale : l’environnement de prévisualisation en direct a-t-il l’apparence, le comportement et l’ergonomie attendus ?
  3. Sécurité et rayon d’impact : le changement respecte-t-il les contraintes opérationnelles et dispose-t-il d’un chemin de rollback propre ?

Validation automatisée pondérée par le risque ​

Les preuves requises dépendent du rayon d’impact, classifié dans 2 — Think puis vérifié dans 3 — Plan. Tous les niveaux peuvent continuer automatiquement ; Élevé et Critique conservent la vérification du rollback et Critique exige un déploiement progressif, selon Gouvernance.

La règle des bugs ​

Chaque défaut en production doit donner lieu à une nouvelle vérification ou à un nouveau contrôle automatisé (un cas de test en échec, une règle de linter plus stricte, un validateur de schéma ou un nouveau garde) commité avant le correctif. L’agent IA corrige ensuite le code pour satisfaire cette nouvelle vérification ou ce nouveau contrôle, afin que le bug ne puisse jamais réapparaître silencieusement.

Agents et skills ​

L’étape Prove s’appuie sur des primitives de vérification déterministe publiées par coding-pal :

Auto-remédiation et gouvernance ​

  • Un agent Gate Fixer lit les diagnostics des jalons en échec et répare chirurgicalement l’implémentation dans la limite de la boucle de correction.
  • Une instruction prove-controls impose l’intégrité des contrôles : les agents peuvent exécuter les contrôles mais ne peuvent jamais les affaiblir, les modifier ni les contourner ; toute dérogation exige un motif documenté, un approbateur et une date d’expiration ; les corrections de bugs exigent d’abord un test en échec.

Compétences de vérification et de jalons de qualité ​

  • Une compétence criteria-verify analyse les rapports de test et vérifie une couverture d’assertions à 100 % pour chaque critère d’acceptation de plan.md.
  • Une compétence mutation-bar exécute les tests de mutation sur le code modifié, en vérifiant que les tests détectent et éliminent les mutants injectés afin d’éviter les suites de tests complaisantes.
  • Une compétence contract-compat vérifie que les contrats d’API publiques, les schémas et les formats de messages restent rétrocompatibles avec les consommateurs.

Intégrité, sécurité et sondes comportementales ​

  • Une compétence control-guard protège le harness lui-même : elle détecte et rejette toute PR qui abaisse les seuils de test, désactive des workflows ou modifie des fichiers de contrôle protégés, tout en appliquant la règle des bugs.
  • Les compétences secret-guard et dependency-guard vérifient l’absence totale de jetons ou clés codés en dur et s’assurent que les nouveaux paquets respectent les politiques de licence et de vulnérabilités.
  • Une compétence preview-smoke vérifie le démarrage, le routage HTTP et les health checks du déploiement éphémère avant fusion.

Pipeline et approbation automatisée ​

  • Une compétence pr-record valide les résultats automatisés, les preuves de rollback et les références de déploiement progressif selon le niveau fixé dans Think et Plan, sans les présenter comme des signatures humaines.
  • Un modèle de workflow verification-pipeline fournit le harness CI en environnement propre qui exécute les jalons dans l’ordre.

Consultez le guide Prove de coding-pal.

Pipeline de livraison ​

Le pipeline Prove valide une demande de fusion existante avant qu’elle puisse être fusionnée, selon les déclencheurs et points de revue communs :

  1. Positionne le statut de phase sur Prove (ou Release sur un tableau combiné) avant le début de la validation ; cela ne signifie pas que le changement a passé les contrôles.
  2. Exécute les contrôles sur les spécifications, le périmètre, les secrets, les dépendances, les tests, les builds, les critères d’acceptation et les métadonnées de demande de fusion.
  3. Lance l’agent Prove pour réaliser une revue de code indépendante, évaluer l’implémentation et rédiger un dossier de validation.
  4. Si les contrôles échouent, applique des corrections automatiques et réessaie jusqu’à la limite configurée, 5 tentatives dans le socle de la factory, puis demande l’intervention d’un développeur.
  5. Consigne le verdict automatisé et ses preuves et autorise la fusion lorsque tous les contrôles, revues de code et évaluations passent, à tous les niveaux d’impact.

Après validation, la plateforme fusionne et supprime la branche selon la politique de livraison. Elle transmet la révision et les preuves à Release.

Positionnez Done seulement au point de fin convenu : fusion, publication ou déploiement.

Point d’arrêt : revue demandée, passage à Release ou échec non résolu. Atteindre la limite bloque la fusion. Un échec de livraison ultérieur n’annule pas une fusion ; appliquez la politique de reprise.

L’autonomie n’est pas une dérogation

Tous les niveaux peuvent fusionner automatiquement, mais contrôles, évaluation indépendante, rollback, politique de déploiement et limites restent appliqués. Ne fabriquez pas de signature et ne contournez pas les protections.

La réussite de Prove ne prouve pas à elle seule la publication ou le déploiement en production. Suivez ces résultats dans leurs propres pipelines.

Jalon de sortie ​

Un changement quitte Prove et entre dans Release lorsque :

  1. chaque contrôle déterministe est au vert,
  2. l’évaluation automatisée indépendante et les preuves du niveau d’impact sont consignées,
  3. pour les changements à rayon d’impact Élevé et Critique, le mécanisme de rollback désigné dans Think est configuré et validé.

Publié et maintenu par ALTEN