PD-276 — Rapport de confrontation (Étape 3)¶
Ce rapport est produit par l'orchestrateur Claude avant chaque gate PMO.
Il confronte les documents produits pour identifier convergences, divergences et zones d'ombre.
1. Sources confrontées¶
PD-276-specification.md— Spécification contractuelle (Étape 1 : Specification)PD-276-tests-contractuels.md— Scénarios de tests contractuels (Étape 2 : Tests & Validation)
2. Convergences¶
- Les deux documents convergent sur l’objectif principal : atteindre
24/24checks Prolog sans modifier les règles de contrôle, avec maintien des21checks historiques (INV-276-10,CA-276-01,CA-276-11,TC-NOM-09,TC-NR-01). - Alignement complet sur le contrat Argon2id (minima OWASP + bornes contractuelles) : mêmes seuils et mêmes comportements de rejet (
INV-276-02,INV-276-03,TC-NOM-01,TC-NOM-02,TC-ERR-01..05). - Alignement sur la posture zero-knowledge : validation serveur uniquement, sans dérivation métier côté backend (
INV-276-01,TC-INV-01). - Alignement sur la configuration centralisée exposée par endpoint avec valeurs exactes (
INV-276-04,CA-276-06,TC-NOM-03). - Alignement sur le metadata binding : présence/format
metadata_tag(32 bytes), vérification avant accès, refus immédiat sur invalidité avecHTTP 422et borne<100 ms(INV-276-05,INV-276-07,E-06,CA-276-08,TC-ERR-07,TC-NEG-01). - Alignement sur la migration en 2 phases (
NULLpuisNOT NULL), politique transitoire LEGACY en lecture seule, et rollbackdown()(CA-276-09,CA-276-10,CA-276-13,TC-NOM-06,TC-NOM-07,TC-NOM-11,TC-NOM-12). - Alignement sur la machine à états et les transitions interdites/autorisées, y compris terminalité de
TAMPERED_TAG_INVALID(INV-276-11,TC-NOM-10,TC-NOM-13,TC-ERR-10,TC-ERR-11,TC-NEG-02). - Alignement sur les faits Prolog requis (
service,service_method,entity_column) et leur consommation ciblée (check_10,check_19,check_22) (INV-276-09,CA-276-02/03/07,TC-NOM-08,TC-INV-04). - Alignement sur le caractère probatoire (non exhaustif) de l’exigence secrets en clair (
INV-276-08,CA-276-12,TC-INV-03, section “Règles non testables et exigences probatoires”).
3. Divergences¶
⚠️ Les conflits ne doivent JAMAIS être lissés. Chaque divergence est rendue visible.
- DIV-01 : Incohérence de traçabilité sur
CA-276-06(critère de config centralisée) utilisé pour un test zero-knowledge. - Source A (spécification) :
CA-276-06= “Configuration centralisée exposée” (endpoint Argon2id). - Source B (tests) : matrice +
TC-INV-01référencentCA-276-06pour “anti-dérivation serveur / décision conformité”. -
Impact : traçabilité critère→test ambiguë ; risque de validation PMO sur un mapping erroné.
-
DIV-02 : Référencement de
CA-276-08sur un scénario de création/persistance plutôt que de vérification d’accès. - Source A (spécification) :
CA-276-08= “Metadata binding vérifié avant accès” (invalidité => refus). - Source B (tests) :
TC-NOM-04référenceCA-276-08tout en vérifiant surtout création/persistance demetadata_tag(présence + longueur 32 bytes). -
Impact : couverture fonctionnelle présente, mais rattachement contractuel imprécis ; peut fausser la lecture de complétude des critères.
-
DIV-03 : Statut “à clarifier” des bornes max vs verrouillage de tests sur valeurs figées.
- Source A (spécification) :
Q-276-01reste ouvert (“valeurs maximales officielles Argon2 à valider produit/sécurité”). - Source B (tests) :
TC-NOM-02etTC-NOM-03figent ces maxima comme oracles définitifs. - Impact : si arbitrage produit/sécurité change les maxima, la suite de tests devient contractuellement obsolète sans mise à jour préalable.
4. Zones d'ombre¶
- Le nom exact du script/générateur Prolog en CI reste non défini (
Q-276-05) ; les tests exigent la génération/inspection mais sans identifiant opératoire unique. - La dépendance aux journaux d’audit signés/horodatés est présupposée (prérequise par d’autres stories) ; l’existence effective de ce socle n’est pas démontrée dans ce lot documentaire.
- Le protocole de mesure
<100 ms(horloge de référence, environnement, méthode de timing) n’est pas normalisé ; l’oracle temporel est défini, mais la méthode de preuve n’est pas totalement cadrée.
5. Recommandation¶
- Procéder — convergence confirmée, aucun conflit bloquant
- Rework nécessaire — divergences à résoudre avant de continuer
- Escalade — décision humaine requise sur un point structurant