quality-gates-dotnet
Adaptateur .NET qui lie les portes qualité du contrat
quality-gates-evidence-contractaux commandes concrètesdotnetetdotnet stryker.
Quand l’utiliser
- Lorsque le dépôt actif est une solution .NET (
*.sln,*.slnx,*.csproj,Directory.Packages.props) - En phase COMMIT, pour produire les preuves falsifiables des portes G1 à G9
- Chargé par le
software-engineeraprès détection de la pile .NET viaresolving-stack-commands - Si plusieurs piles coexistent, exécuté en parallèle des autres adaptateurs
Contrat d’entrée
- Dépôt .NET détecté (marqueur
*.slnou*.csprojprésent à la racine) - Variable
$EVpointant vers.copilot-tracking/skraft-plans/{projectSlug}/evidence/{date}/ state.json::userPreferences.depthTierpour le seuil de mutation G6
Contrat de sortie
- Fichiers de preuves dans
$EV/: stdout redirigé sur disque, code de sortie, sha256, snapshots RED/GREEN - Entrées
gates[G1..G9]du contratquality-gates-evidence-contractrenseignées qg-{story}.jsoncomplet et vérifiable par lequality-gates-lens
Invariants
- Commandes verbatim —
command_executedcontient la commande shell exacte, jamais paraphrasée - Stdout capturé par le shell — jamais transcrit à la main ;
sha256calculé parshasum - G7 inversion —
grepexit1(aucune correspondance) est le cas succès pour G7 - Seuil G6 par
depthTier:basic≥ 80,standard≥ 90,comprehensive≥ 100 - Outil absent =
fail, jamaisnot_applicablesi l’outil n’est pas installé - G5 marqué
not_applicableuniquement si aucun projet*.ArchitectureTestsn’existe, avecrationale
Pourquoi cette forme
La falsifiabilité est non négociable : un agent ne peut pas prouver qu’un test est passé en le disant. Chaque porte dépose des artefacts sur disque, référençables par sha256 et chemin Git, que le lens peut vérifier sans ré-exécution.
« The two rules of TDD: write new code only if an automated test has failed; eliminate duplication. » — Beck, K., Test-Driven Development by Example, 2003.
Les preuves sur disque rendent l’attestation vérifiable de façon reproductible — même des semaines après la livraison.
Customisation autorisée
- Seuils G6 (via
state.json::userPreferences.depthTier) (L2) - G5 optionnel selon présence du projet
*.ArchitectureTests(L1) - G4 mutualisé avec G3 si les analyseurs Roslyn sont câblés dans le build (L1)
Voir aussi
- quality-gates-evidence-contract — Schéma tech-agnostique
- resolving-stack-commands — Détection de pile et sélection d’adaptateur
- software-engineer — Agent producteur des preuves