Aller au contenu

PD-81 — Confrontation Gate 3

1. Convergences

  • La review et les documents canoniques convergent sur le cadre global: mandat eIDAS, double validation 2-of-2, acces PRE temporaire borne, journalisation probatoire, destruction/revocation, et fail-closed (PD-81-specification.md).
  • Le caractere incomplet de certains parametres contractuels est confirme des deux cotes (rate limiting, fin de consultation, frequence d'ancrage, habilitations, etc.), explicitement liste en §2.3 de la spec et repris dans NT-81-01/NT-81-02 (PD-81-specification.md, PD-81-tests.md).
  • L'exigence d'isolation legal PRE vs PRE standard est presente dans les invariants/AC et testee en securite (INV-81-10, AC-81-13, scenario S4), ce qui confirme le principe de cloisonnement (PD-81-specification.md, PD-81-tests.md).
  • Les matrices de couverture de tests annoncent bien une couverture complete des invariants/AC testables/erreurs (12/12 INV, 14/14 AC, 18/18 ERR), conforme a la structure attendue (PD-81-tests.md).

2. Divergences

  • Source: Document 1 (CONSTAT-01) vs Document 2
  • Constat du reviewer: TTL de double validation absent de la spec contractuelle.
  • Realite dans les documents: la notion existe (validationTtl, "fenetre TTL de validation"), mais les valeurs contractuelles par type de mandat ne sont pas definies (info manquante §2.3.8).
  • Verdict factuel: Nuance (presence conceptuelle, parametrage chiffre absent).

  • Source: Document 1 (CONSTAT-02) vs Document 2

  • Constat du reviewer: "Fin de consultation" non definie.
  • Realite dans les documents: la cause existe (END_OF_CONSULTATION) mais les regles metier de terminaison sont explicitement non specifiees (§2.3.7).
  • Verdict factuel: Raison (nuancee).

  • Source: Document 1 (CONSTAT-05) vs Documents 2 et 3

  • Constat du reviewer: COMPLETED absent du modele LegalReKey.status, DESTROYED absent des tests nominaux N4.
  • Realite dans les documents: la spec definit status = ACTIVE/REVOKED/EXPIRED/DESTROYED (sans COMPLETED), alors que N4/L2 attendent COMPLETED; N4 ne cite pas DESTROYED comme terminal attendu.
  • Verdict factuel: Raison (incoherence inter-documents confirmee).

  • Source: Document 1 (CONSTAT-08) vs Document 2

  • Constat du reviewer: source de bobPublicKey non specifiee.
  • Realite dans les documents: la signature generateLegalReKey(alicePublicKey, bobPublicKey, ...) existe, sans regle d'origine/provenance de bobPublicKey.
  • Verdict factuel: Raison.

  • Source: Document 1 (CONSTAT-11) vs Document 3

  • Constat du reviewer: R1-R6 et L1-L4 seraient des titres vides.
  • Realite dans les documents: R1-R6 et L1-L4 sont decrits avec prerequis, etapes et attendus.
  • Verdict factuel: Tort (ecart avec l'etat reel du document de tests fourni).

  • Source: Document 1 (CONSTAT-03) vs Document 2

  • Constat du reviewer: "immediat" non borne pour revokeReKey.
  • Realite dans les documents: l'exigence "immediatement" est bien presente, sans seuil de latence chiffre en NFR.
  • Verdict factuel: Raison (nuancee).

  • Source: Document 1 (CONSTAT-04) vs Documents 2 et 3

  • Constat du reviewer: statut DESTROYED sans transition definie depuis REVOKED/EXPIRED.
  • Realite dans les documents: DESTROYED existe dans le modele et getLegalAccessStatus, mais les flux nominaux/tests privilegient REVOKED/EXPIRED/COMPLETED sans machine d'etat explicite vers DESTROYED.
  • Verdict factuel: Raison.

  • Source: Document 1 (CONSTAT-07 majeur) vs Documents 2 et 3

  • Constat du reviewer: ambiguite activateLegalAccess vs generateLegalReKey.
  • Realite dans les documents: activateLegalAccess indique creer la ReKey via PD-41, tandis que N3/E07 enchainent (ou alternent) activateLegalAccess et generateLegalReKey.
  • Verdict factuel: Raison (contrat d'orchestration ambigu).

  • Source: Document 1 (CONSTAT-10) vs Document 3

  • Constat du reviewer: test R1 vide (et politique resilience TSP absente).
  • Realite dans les documents: R1 est decrit; en revanche, la politique retry/timeout n'est pas contractualisee dans la spec.
  • Verdict factuel: Nuance (partie "R1 vide" fausse, partie "politique non specifiee" vraie).

  • Source: Document 1 (CONSTAT-12) vs Documents 2 et 3

  • Constat du reviewer: rate limiting sans parametres contractuels.
  • Realite dans les documents: manque explicite en §2.3.3 et NT-81-01 (testable sous condition).
  • Verdict factuel: Raison.

  • Source: Document 1 (CONSTAT-15) vs Documents 2 et 3

  • Constat du reviewer: "des que ancre" sans frequence definie, risque de preuve composite incomplete.
  • Realite dans les documents: frequence/latence d'ancrage marquees "information manquante"; obligations de preuve complete existent mais sans cadence contractuelle.
  • Verdict factuel: Raison.

  • Source: Document 1 (CONSTAT-19) vs Documents 2 et 3

  • Constat du reviewer: modele d'habilitation "titulaire" non defini pour getLegalAuditProof.
  • Realite dans les documents: precondition "demandeur autorise" sans modele normatif; NT-81-02 confirme la dependance a une matrice d'habilitation externe.
  • Verdict factuel: Raison.

  • Source: Document 1 (CONSTAT-23) vs Documents 2 et 3

  • Constat du reviewer: isolation PRE legal/standard non specifiee au niveau storageDomain.
  • Realite dans les documents: storageDomain obligatoire avec valeur legale isolee, plus INV-81-10/AC-81-13/S4.
  • Verdict factuel: Tort (la specification contractuelle couvre ce point).

3. Zones d'ombre

  • Regles metier exactes de "fin de consultation" (evenement declencheur, acteur legitime, conditions de cloture) non definies formellement.
  • Parametres contractuels chiffrés de rate limiting (seuils, fenetres, unites, mode refus/temporisation) non fixes.
  • Politique de latence maximale entre expiration TTL et destruction effective non contractualisee.
  • Frequence de batch d'ancrage et delai maximal d'ancrage acceptable non definis.
  • Source d'autorite et niveau d'assurance de l'identite juridique interne (pour separation DPO/LegalOfficer) non precises.
  • Taxonomie des types de mandat et mapping vers TTL de validation non definis.
  • Modele d'habilitation "titulaire/non titulaire" pour l'acces a la preuve d'audit non formalise.
  • Regle de provenance de bobPublicKey et mapping documentId mandat -> identifiants internes non specifiques.
  • Taxonomie explicite des eventType probatoires vs non-probatoires non formalisee.

4. Synthese des ecarts confirmes

  1. ECT — Incoherence de statuts de fin de cycle (COMPLETED attendu en tests/flux mais absent du modele LegalReKey.status).
  2. ECT — Etat DESTROYED defini au niveau data/status API mais non integre clairement dans les flux nominaux N4.
  3. AMB — Definition operationnelle de "fin de consultation" absente.
  4. AMB — Contrat d'orchestration ambigu entre activateLegalAccess et generateLegalReKey.
  5. AMB — "Invalidation immediate" exigee sans borne de latence contractuelle.
  6. SEC — Source/verification de bobPublicKey non definie dans la chaine de confiance.
  7. SEC — Modele d'identite juridique interne insuffisamment formalise pour garantir la separation des validateurs.
  8. AMB — Parametres de rate limiting non contractualises (tests deterministes impossibles sans prerequis externes).
  9. AMB — Cadence et delai d'ancrage blockchain non contractualises.
  10. AMB — Modele d'habilitation du "titulaire" non formalise pour getLegalAuditProof.
  11. DIV — Divergence factuelle review/tests: R1-R6 et L1-L4 ne sont pas vides dans le document de reference actuel.
  12. DIV — Divergence factuelle review/spec: l'isolation par storageDomain est explicitement specifiee.