Étape 6 du cycle · /sdd validate

Validation — quatre axes, un verdict

Le code qui compile n'est pas forcément le code qui fonctionne, et le code qui fonctionne n'est pas forcément le code qui respecte l'intention. La validation SDD porte sur quatre axes — technique, fonctionnel, métier, gouvernance — et le code n'est jamais terminé tant que la SPEC n'est pas synchronisée (Drift Lock).

Axe 1 — Validation technique

Le socle objectif : la chaîne d'outillage du projet, exécutée intégralement et reportée en tableau. Aucun jugement, des faits.

Checks de la validation technique
CheckCommandeRésultat
Lint[commande projet]PASS / FAIL
Types[type-check]PASS / FAIL
Tests unitaires[test]PASS / FAIL
Tests d'intégration[test:integration]PASS / FAIL
Build[build]PASS / FAIL
Couverture[coverage]X %
Deux interdits absolus

Ne JAMAIS valider un code qui ne passe pas les tests. Ne JAMAIS valider un code contenant des TODO-JNSP: non résolus — ces marqueurs sont des questions en attente de décision humaine, pas des détails cosmétiques.

Axe 2 — Validation fonctionnelle

L'axe fonctionnel confronte le code aux cas de test de la SPEC, critère par critère — contre le code lui-même, pas seulement contre les tests. Entrées spécifiées respectées, étapes de traitement suivies, format de sortie produit, chaque cas limite couvert par un test, tous les critères d'acceptation cochés. Côté équipe, la validation fonctionnelle est portée par le QA Engineer, et l'utilisabilité — UX, accessibilité, performance — par le QA avec le PM.

Axe 3 — Validation métier

La validation métier, portée par le Product Manager, pose la question que les tests ne posent pas : l'intention est-elle respectée, et les outcomes visés sont-ils atteignables ? Le Critère de Drift de l'Intent parent est relu : le signal observable de trahison de l'intention est-il absent ? C'est l'axe où l'on vérifie la fidélité à l'intention — un défaut sémantique qu'aucune chaîne d'outillage ne détecte.

Axe 4 — Validation gouvernance

Les quatre agents Tier 1 — AIAD-AI-ACT, AIAD-RGPD, AIAD-RGAA, AIAD-RGESN — sont appliqués via la skill regulatory-veto. Chacun dispose d'un droit de veto : un VETO bloque, un WARN exige un plan de remédiation avant merge. Cette validation n'est pas optionnelle pour les projets concernés.

UNKNOWN = VETO (fail-closed)

Quand un agent de gouvernance ne peut pas décider — référentiel non applicable de façon certaine, information manquante — il retourne UNKNOWN. Ce verdict est traité comme un VETO : on ne merge pas sur un doute réglementaire. C'est la déclinaison gouvernance de la politique JNSP.

La vérification se conçoit, elle ne s'achète pas

La doctrine v1.9 fait un pari : la qualité de la vérification dépend d'abord du design du processus — ce qu'on vérifie, quand et par qui — plutôt que de la puissance du modèle qui relit. C'est une position, pas un résultat démontré : les indices convergent, aucun ne suffit seul. Elle se traduit en quatre règles.

Les quatre règles de vérification (doctrine AIAD v1.9)
RègleCe qu'elle impliqueForce de l'appui
La conversation critique a lieu d'abord à l'Execution GateOn discute ce qu'on veut à la Gate ; la revue de code vérifie ensuite la conformité à une intention déjà discutée. Elle détecte ce qui a été mal compris, elle ne découvre pas ce qu'on voulait.Règle de processus
Deux classes de défautsLes défauts structurellement détectables (compilation, types, règles d'architecture outillées, secrets) se délèguent à l'outillage et aux agents. Les défauts sémantiques — fidélité à l'intention, justesse métier, frontières de conception — restent sous revue humaine, en s'appuyant sur le Test de l'Étranger.Règle de processus
Séparer celui qui produit de celui qui critiqueQuand la revue est confiée à un agent, AIAD recommande — sans l'imposer — un relecteur d'une autre famille de modèles que l'agent producteur. Le coût (plusieurs fournisseurs, contrats, analyse RGPD) doit être pesé. Le paquet le permet via /sdd validate --cross-model (revue additive-only en contexte frais).Une étude de 2026, sur des problèmes de mathématiques et non de code : 35 % de faux rejets en auto-revue contre 2 % en revue croisée
Concevoir avant de tester pas à pasEn boucle agent, une conception complète en amont — architecture, types, cas limites, contrats, c'est-à-dire une SPEC — semble plus efficace qu'un TDD incrémental.Indice à confirmer, pas règle : 3 à 8,5 fois plus de tokens sans gain net pour le TDD incrémental, dans une expérience exploratoire de 2026

Exemplars de revue

Le savoir de revue d'une organisation — ce qu'un relecteur senior repère et pourquoi — peut être extrait en exemples annotés, versionnés dans des fichiers dédiés (par exemple .aiad/review-exemplars/) et chargés uniquement dans les sessions de revue — pas dans l'AGENT-GUIDE, injecté à chaque session et réservé aux consignes permanentes. Roblox a décrit cette pratique en 2026. Un exemplar se constitue à partir de revues réelles, se révise comme un artefact, et se retire quand il ne reflète plus les standards de l'équipe.

Verification Tax

Une synthèse de littérature de 2026 nomme ainsi l'écart entre le gain de productivité à l'écriture du code et le gain, bien plus faible, à la livraison d'un logiciel fiable. Le terme décrit ce que l'investissement amont en SPEC et en Gate cherche à réduire. Corollaire côté équipe : l'efficacité n'est pas la qualité — une revue plus rapide n'est pas une revue meilleure (voir le rôle du QA Engineer).

Une composition de skills, sans duplication

/sdd validate est la commande la plus composite du cycle : elle n'implémente aucune logique propre mais compose trois skills réutilisables — ears-validator (couverture des critères testables de §3), drift-detection (écarts code ↔ SPEC sur le diff) et regulatory-veto (les 4 référentiels Tier 1). Chaque skill est aussi invoquée ailleurs dans le cycle (/sdd gate, /sdd drift-check, /sdd security…) : la logique vit en un seul endroit, les commandes l'orchestrent.

Le verdict

Les quatre issues de la validation
VerdictSignificationAction
VALIDÉValidation passée sur les quatre axesProcéder au Drift Lock (/sdd drift-check)
CORRECTIONSÉcarts mineurs et localisésLister, relancer l'agent sur les points précis
REJETÉchec structurelSPEC imprécise → Human Learning · agent erroné malgré SPEC claire → Lesson Learned
JNSPValidation indécidableQuestion(s) à l'humain — ne pas dégrader en « corrections mineures » pour faire avancer le merge

La distinction Human Learning / Lesson Learned est essentielle pour l'amélioration continue : la première documente un écart entre intention humaine et livraison (la SPEC était le problème), la seconde une erreur récurrente de l'agent (l'exécution était le problème). Les deux alimentent l'AGENT-GUIDE.

Verdict : JNSP — validation impossible sans décision humaine
Ce qui est validé : <axes PASS>
Ce qui bloque : <zones non décidables avec ref §>
Question(s) à l'humain : <reformulation actionnable>

Les rôles complémentaires — /sdd security et /sdd audit

Deux commandes d'audit prolongent la validation pour les fonctionnalités à fort enjeu, avec persistance des rapports dans .aiad/metrics/ :

Commandes d'audit complémentaires
CommandePérimètrePersistance
/sdd securityOWASP Top 10, gestion des secrets, permissions des agents (minimal necessary permissions), exposition des données, conformité AI-ACT/RGPD.aiad/metrics/security/YYYY-MM-DD-SPEC-NNN.md
/sdd auditConformité code ↔ SPEC, dette technique introduite (complexité, couplage, lisibilité), cohérence avec l'AGENT-GUIDE.aiad/metrics/audit/YYYY-MM-DD-SPEC-NNN.md
Quand les lancer

/sdd security : après toute fonctionnalité touchant des accès, des données utilisateur, des secrets ou un composant IA — recommandé avant toute PR critique, avec un modèle frontier. /sdd audit : pour les fonctionnalités à fort enjeu technique, ou après plusieurs itérations sur un même composant. Les rapports persistés alimentent les métriques et les rétrospectives.