Date: 2026-02-23 Type: CONFORMITY_CHECK Itération: v1
Sources
| Phase | Agent | Document |
| Phase 1 — Review | Claude -p | PD-81-review-step3.md |
| Phase 2 — Confrontation | ChatGPT (gpt-5.3-codex) | PD-81-confrontation-step3.md |
Synthèse des phases
Phase 1 — Review
- 24 constats : 5 bloquants, 12 majeurs, 7 mineurs
- Axes principaux : ambiguïtés contractuelles (TTL, fin de consultation), incohérences modèle/tests (COMPLETED/DESTROYED), zones non spécifiées (bobPublicKey, identité juridique)
Phase 2 — Confrontation
- 12 écarts confirmés : 2 ECT, 6 AMB, 2 SEC, 2 DIV
- 2 constats contestés (Tort) : CONSTAT-11 (R/L "vides" — contesté, tests ont descriptions minimales) et CONSTAT-23 (isolation storageDomain — contesté, spec la couvre via INV-81-10/AC-81-13)
- 2 constats nuancés : CONSTAT-01 (concept présent mais valeurs absentes), CONSTAT-10 (politique TSP absente mais test R1 non vide)
Vérification constitutionnelle (OBLIGATOIRE)
Liste des écarts consolidés
Écarts BLOQUANTS
| # | Type | Référence | Description | Phase 1 | Phase 2 |
| ECT-01 | ECT | Spec §7.3 vs Tests N4 | Statut COMPLETED utilisé dans les flux N4 et tests mais absent du modèle de données LegalReKey.status (qui définit ACTIVE/REVOKED/EXPIRED/DESTROYED). Inversement, DESTROYED est dans le modèle mais absent des attendus tests. | CONSTAT-05 (Bloquant) | Confirmé (Raison) |
| AMB-01 | AMB | Spec §5-N4, §9.1 closeLegalAccess | "Fin de consultation" (END_OF_CONSULTATION) mentionnée comme cause de clôture mais règles métier de terminaison non définies. §2.3 point 7 confirme la lacune. | CONSTAT-02 (Bloquant) | Confirmé nuancé (cause existe, règles métier absentes) |
| SEC-01 | SEC | Spec §9.2 generateLegalReKey | Source de bobPublicKey (clé publique du destinataire judiciaire) non spécifiée : qui la fournit, quand, avec quelle vérification d'authenticité. Risque de substitution de destinataire. | CONSTAT-08 (Bloquant) | Confirmé (Raison) |
Écarts MAJEURS
| # | Type | Référence | Description | Phase 1 | Phase 2 |
| AMB-02 | AMB | Spec §5-N2, §7.2 validationTtl | TTL de double validation : concept présent (validationTtl obligatoire) mais aucune borne contractuelle définie. §2.3 point 8 confirme la lacune. | CONSTAT-01 (Bloquant→Majeur après nuance) | Nuancé (concept présent, valeur absente) |
| ECT-02 | ECT | Spec §7.3 LegalReKey.status | Statut DESTROYED défini dans le modèle mais aucune transition définie depuis REVOKED/EXPIRED. Cycle de vie incomplet. | CONSTAT-04 (Majeur) | Confirmé (Raison) |
| AMB-03 | AMB | Spec §9.1 activateLegalAccess vs §9.2 generateLegalReKey | activateLegalAccess crée la ReKey (post-condition), mais N3 enchaîne les deux appels comme distincts. Orchestration ambiguë. | CONSTAT-07 (Majeur) | Confirmé (Raison) |
| AMB-04 | AMB | Spec §4 INV-81-07, §9.2 revokeReKey | "Invalidation immédiate" exigée sans borne de latence contractuelle (synchrone vs async, propagation cache). | CONSTAT-03 (Majeur) | Confirmé nuancé |
| AMB-05 | AMB | Spec §5-N2, PD-82 impl. | Mapping rôles PD-82 (PARENT/AUTHORITY) → PD-81 (DPO/LegalOfficer) non spécifié. États intermédiaires non définis. | CONSTAT-06 (Majeur) | Non contesté |
| SEC-02 | SEC | Spec §6 ERR-81-08, §4 INV-81-03 | Vérification d'identité juridique pour séparation validateurs : physique vs rôle vs certificat non précisé. | CONSTAT-17 (Majeur) | Confirmé |
| AMB-06 | AMB | Spec §5-N3, §2.3 point 3 | Paramètres de rate limiting non contractualisés (seuils, fenêtres, unités). Tests E18/S5 non déterministes. | CONSTAT-12 (Majeur) | Confirmé (Raison) |
| AMB-07 | AMB | Spec §7.4, §2.3 point 4 | Fréquence d'ancrage blockchain et délai maximal non définis. Preuve composite potentiellement incomplète pré-ancrage. | CONSTAT-15 (Majeur) | Confirmé (Raison) |
| SEC-03 | SEC | Spec §4 INV-81-04, CONSTAT-04 | Persistance résiduelle des ReKey : sans transition vers DESTROYED avec suppression physique, INV-81-04 (pas de clé persistante) pourrait être violé. | CONSTAT-13 (Majeur) | Non contesté |
| AMB-08 | AMB | Spec §7.4, §4 INV-81-08 | Taxonomie événement probatoire vs non-probatoire non délimitée. tsaTokenRef "obligatoire pour événement probatoire" mais aucune liste d'événements probatoires. | CONSTAT-14 (Majeur) | Non contesté |
| AMB-09 | AMB | Spec §5-N1, §7.1 scopeDocumentIds | Mapping documentId du mandat juridique vers identifiants internes ProbatioVault non spécifié. | CONSTAT-18 (Majeur) | Non contesté |
| AMB-10 | AMB | Spec §9.1 getLegalAuditProof | Modèle d'habilitation "titulaire" pour accès preuve d'audit non formalisé. NT-81-02 confirme. | CONSTAT-19 (Majeur) | Confirmé (Raison) |
Écarts MINEURS
| # | Type | Référence | Description |
| AMB-11 | AMB | Spec §10.1, §8 AC-81-15/16 | Conformité normative (5 référentiels) non vérifiable techniquement. Cohérent avec AC-81-15/16 non testables. |
| AMB-12 | AMB | Spec §10.5 | Reproductibilité auditable dépend des services externes (TSP/HSM/TSA). Déterminisme conditionnel. |
| DIV-01 | DIV | Tests §3 E07 | Test E07 sous-couvre les états terminaux non-ACTIVATED (REJECTED, EXPIRED). |
| AMB-13 | AMB | Spec §10.4 | Rupture de chaîne probatoire : structure de chaîne (hash chain) non définie pour permettre la détection. |
| AMB-14 | AMB | Spec §5-N3, §4 INV-81-06 | Mécanisme de consultation lecture seule non spécifié (via reEncrypt PD-41 ou API dédiée). |
| AMB-15 | AMB | Spec §8 AC-81-09 | Relation EXPIRED/DESTROYED non ordonnée dans le cycle de vie terminal. |
Écarts NON RETENUS (contestés par la confrontation)
| # | Constat | Verdict confrontation | Justification |
| NR-01 | CONSTAT-11 : R1-R6, L1-L4 "titres vides" | Tort | Les scénarios R/L contiennent des descriptions avec prérequis, étapes et attendus (format résumé mais non vide). Toutefois, le format est moins structuré que N1-N4 et E01-E18. |
| NR-02 | CONSTAT-23 : Isolation storageDomain non spécifiée | Tort | La spec couvre l'isolation via INV-81-10, AC-81-13, storageDomain obligatoire, et test S4. Le mécanisme d'isolation (logique/physique) reste libre d'implémentation. |
Comptage final des écarts
| Criticité | Nombre |
| BLOQUANT | 3 (ECT-01, AMB-01, SEC-01) |
| MAJEUR | 12 (AMB-02 à AMB-10, ECT-02, SEC-02, SEC-03) |
| MINEUR | 6 (AMB-11 à AMB-15, DIV-01) |
| NON RETENU | 2 (NR-01, NR-02) |
| Total écarts retenus | 21 |
Analyse par type
| Type | Nombre | Description |
| ECT (Écart technique) | 2 | Incohérences modèle de données / flux / tests |
| AMB (Ambiguïté) | 15 | Paramètres non spécifiés, conditions floues, orchestration ambiguë |
| SEC (Sécurité) | 3 | Risques d'accès non contrôlé, persistance résiduelle |
| DIV (Divergence) | 1 | Sous-couverture de test |
Conclusion
La spécification PD-81 est structurellement solide (invariants, flux, erreurs, modèle bien séparés) mais présente 3 écarts bloquants et 12 majeurs qui empêchent une implémentation contractuellement conforme :
- ECT-01 : Incohérence COMPLETED/DESTROYED entre modèle et tests (bloquant)
- AMB-01 : "Fin de consultation" non définie (bloquant)
- SEC-01 : Source de bobPublicKey non spécifiée (bloquant)
Les 8 informations manquantes en §2.3 sont honnêtement signalées mais créent de facto 5+ ambiguïtés majeures (rate limiting, ancrage, TTL validation, habilitation, mapping documentId).