PD-275 — 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¶
- Specification
PD-275 — Conformite PV Anchor ANCHOR-16/17(etape Specification) - Tests
PD-275 — Scenarios de tests contractuels(etape Tests & Validation)
2. Convergences¶
- Les deux documents convergent sur les objectifs fonctionnels centraux : persistance
confirmation_count, garde de finaliteconfirmation_count >= FINALITY_DEPTH, registresigner_registry, refus fail-closed pour signerREVOKED/inconnu. - Specification : sections 2, 4 (INV-275-01/02/03/04), 5 (F1/F2/F4), 7 (CA-01/02/05)
- Tests : TC-NOM-01/02/03/06/07, TC-ERR-01/02/04/05, matrice de couverture INV-01/02/03/04
- Convergence sur l’exigence d’audit trail de revocation atomique (
revokedAt,revokedBy) et refus si persistance audit impossible. - Specification : INV-275-05, cas d’erreur
ERR-AUDIT-TRAIL-MISSING, CA-04 - Tests : TC-NOM-04/05, TC-ERR-06
- Convergence sur la terminalite
REVOKEDet l’absence de transition retour autorisee. - Specification : INV-275-06, modele d’etats signer
- Tests : TC-INV-06, TC-INV-07A, TC-NEG-06
- Convergence sur la reversibilite migration DDL (
up/down/up) et preuve schema. - Specification : CA-08, section 10.4, T9
- Tests : TC-NOM-09, TC-NR-05
- Convergence sur la cible de conformite Prolog finale
32/32et blocage si score inferieur. - Specification : CA-06,
ERR-COMPLIANCE-NOT-MET, T8 - Tests : TC-NOM-08, TC-ERR-07, TC-NR-02
- Convergence explicite sur l’existence de reserves de specification (Q-01/Q-02/Q-03/Q-04) qui limitent la testabilite integrale.
- Specification : section 10.8 (questions ouvertes)
- Tests : section 9 (regles non testables), verdict QA
3. Divergences¶
⚠️ Les conflits ne doivent JAMAIS être lissés. Chaque divergence est rendue visible.
- DIV-01 : Source de
revokedBycontradictoire entre contrat de securite et scenario nominal de test. - Source A (Specification) :
revokedByderive exclusivement du contexte d’authentification, jamais fourni par l’appelant (INV-275-10, Flux F3 etape 6, casERR-REVOKEDBY-SPOOFING). - Source B (Tests) : TC-NOM-04 (GIVEN) indique qu’"une identite de revocation valide est fournie pour
revokedBy". -
Impact : ambiguity de securite sur anti-usurpation et risque de validation d’une implementation non conforme a l’invariant INV-275-10.
-
DIV-02 : Decalage de perimetre d’invariants entre Specification et plan de tests.
- Source A (Specification) : 12 invariants non negociables (INV-275-01 a INV-275-12), dont autorisation
revokeSigner, anti-spoofingrevokedBy, serialisation concurrenteSELECT ... FOR UPDATE, unicite d’evenement d’audit. - Source B (Tests) : couverture explicite arretee a INV-275-08 (matrice section 2 + section 5), sans bloc dedie INV-275-09/10/11/12.
-
Impact : trous de verification sur des exigences de gate critiques (autorisation, anti-usurpation, concurrence forte), risque de faux positif de conformite.
-
DIV-03 : Criteres d’acceptation specification non aligns avec cas de test dedies.
- Source A (Specification) : CA-04b (autorisation
ADMIN|SIGNER_ADMIN), CA-04c (anti-usurpationrevokedBy), CA-05b (concurrence revoke/submit et revoke/revoke serialisee), T10/T11/T12/T13. - Source B (Tests) : aucun test nominal/erreur dedie
ERR-REVOKE-UNAUTHORIZEDniERR-REVOKEDBY-SPOOFING; pas de scenario concurrent explicite revoke/submit avec ordre de verrou et resultat deterministe tel que specifie. -
Impact : impossibilite de demonstrer la couverture contractuelle complete annoncee par CA-07.
-
DIV-04 : Incoherence de tracabilite entre identifiants de criteres et references de tests.
- Source A (Specification) : succes finalite nominale reference CA-02b.
- Source B (Tests) : TC-NOM-03 reference CA-02 (et non CA-02b) ; matrice associe aussi des couples critere/invariant non strictement alignes (ex. CA-08 mappe sous INV-275-03).
- Impact : fragilite probatoire pour la gate (evidence mapping ambigu, audit de couverture plus difficile).
4. Zones d'ombre¶
- Valeur officielle de
FINALITY_DEPTHpar environnement (dev/staging/prod) non figee. - Mentionnee comme ouverte (Specification Q-01) et non testable (Tests section 9).
- Liste canonique exhaustive des etats
anchor_batchhorsFINALIZEDnon etablie. - Mentionnee comme ouverte (Specification Q-02) et bloquante pour exhaustivite (Tests section 9).
- Regle canonique de normalisation/collision des adresses signer (checksum/casse) non definie.
- Mentionnee comme ouverte (Specification Q-03) et non testable (Tests section 9).
- Format de stockage normatif de
revokedBynon tranche (UUID interne vs sujet JWT vs identite service account). - Mentionnee comme ouverte (Specification Q-04) et non testable (Tests section 9).
- Comportement API strict en cas d’injection
revokedBynon ferme contractuellement (rejet vs ignore) au niveau test oracle. - Specification autorise deux comportements selon contrat API (CA-04c/T11), mais le plan de tests ne fixe pas un oracle unique.
- Politique explicite d’erreur metier sur timeout/deadlock de verrous transactionnels non nommee par code
ERR-*dans les deux documents. - Specification impose fail-closed en section 10.7, sans code erreur contractuel associe ; tests n’ont pas de cas dedie.
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