Aller au contenu

PD-72 — Rapport de confrontation (Étape 3)

1. Sources confrontées

  • Document 1 : PD-72 — Spécification canonique contractuelle (sections §1 à §10.4).
  • Document 2 : PD-72 — Scénarios de tests contractuels (matrice, TC, verdict QA).
  • Document 3 : PD-72 — Specification Review (Gate 3) (écarts E-01 à E-13, scoring, recommandation).

2. Convergences

  • Les 3 documents convergent sur le socle fonctionnel : workflow PRE asynchrone, machine d’états, idempotence/replay, preuve TRANSFER_EMPLOYEE, chaîne Merkle/TSA/ancrage.
  • La couverture cible des invariants INV-01..INV-09 et des critères CA-01..CA-10 est alignée entre spécification (§4, §7) et tests (matrice §2, sections §3–§7).
  • Les 3 documents convergent sur l’existence d’ambiguïtés contractuelles déjà explicitées dans la spec (§10.3/§10.4) :
  • SLA d’ancrage non défini,
  • format canonique hsm_signature non défini,
  • format canonique tx_id non défini,
  • politique de notification RH en BLOCKED_WAITING_CONSENT non définie.
  • Convergence explicite sur le fait que la testabilité est conditionnée par ces zones non contractualisées (spec §10.4, tests §9, review E-01/E-02/E-03/E-08).

3. Divergences (DIV-01, DIV-02, ...)

  • DIV-01 — Chemin d’état PRE-01 incohérent entre modèle et exécution
  • Constat : la spec place PRE-01 vers BLOCKED_WAITING_CONSENT (§6), mais le flux nominal crée/active en READY_FOR_TRANSFER avant vérification (§5.3), et la transition READY_FOR_TRANSFER -> BLOCKED_WAITING_CONSENT n’est pas listée (§5.2).
  • Sources : Doc1 §5.2, §5.3, §6 ; Doc2 TC-ERR-01 ; Doc3 E-04/E-05.

  • DIV-02 — Niveau de testabilité déclaré

  • Constat : les tests annoncent une couverture “Oui” sur invariants/critères (Doc2 §2), tout en concluant “testable partiellement” (Doc2 §10). La review qualifie plusieurs contrôles de non testables/fragiles (E-06, E-09, E-10).
  • Sources : Doc2 §2, §9, §10 ; Doc3 E-06/E-09/E-10.

  • DIV-03 — Statut de l’invariant INV-09 dans le périmètre PD-72

  • Constat : spec et tests traitent INV-09 comme invariant contractuel du lot (Doc1 §4 ; Doc2 matrice + TC-INV-09), alors que la review le qualifie de hors périmètre du worker asynchrone.
  • Sources : Doc1 INV-09 ; Doc2 §2, §5 ; Doc3 E-10.

  • DIV-04 — Robustesse de la vérification INV-02

  • Constat : Doc2 considère INV-02 couvert (TC-INV-02), la review conteste l’observable (test négatif fragile basé sur absence de traces).
  • Sources : Doc2 §2, §5 (TC-INV-02) ; Doc3 E-06.

  • DIV-05 — Testabilité de INV-03/INV-04

  • Constat : Doc2 marque la couverture “Oui” (TC-INV-03, TC-INV-04), la review indique absence de protocole d’observation contractualisé (mémoire, périmètre de scan, critère de non-récupérabilité).
  • Sources : Doc2 §2, §5 ; Doc3 E-09 ; Doc1 (absence de protocole détaillé en §5.4/§10).

  • DIV-06 — Qualification de gravité sur notification RH en blocage consentement

  • Constat : la spec place ce point dans les “clarifications bloquantes contractuelles” (§10.4), les tests le classent “Majeur” (règle non testable), la review le classe “Mineur”.
  • Sources : Doc1 §10.4 point 4 ; Doc2 §9 ; Doc3 E-08.

  • DIV-07 — Référence Epic non stabilisée

  • Constat : la spec indique “Epic : à renseigner”, les tests indiquent EPIC-XX (à confirmer) ; la review ne stabilise pas ce point.
  • Sources : Doc1 “Références” ; Doc2 §1 ; Doc3 (silence sur identifiant final).

4. Zones d'ombre

  • SLA temporel de confirmation d’ancrage (PROOF_PENDING_ANCHOR -> ANCHOR_CONFIRMED) non contractualisé (valeurs défaut/min/max absentes).
  • Encodage canonique de hsm_signature non défini au-delà d’une contrainte base64 syntaxique.
  • Contrat canonique de tx_id non défini (alphabet, longueur réelle, convention réseau).
  • Mécanisme exact de reprise post-crash entre commit DB et émission de preuve non explicité (risque “événement manquant vs duplication”).
  • Mécanisme de sérialisation/concurrence pour tempêtes de replay non explicité (attendu de résultat unique, implémentation non contractuelle).
  • Contrat d’authentification/autorisation de l’émetteur DOCUMENT_SEALED non documenté dans le périmètre fourni.
  • Instrumentation requise pour prouver zeroization et absence de secrets en clair non définie.
  • Nom d’epic et chemin final de publication d’artefacts non stabilisés.

5. Recommandation

  • Confrontation conclue avec convergence partielle et divergences structurelles (notamment DIV-01 à DIV-05).
  • En l’état documentaire confronté, le dossier présente des écarts non résolus entre contrat, testabilité déclarée et review de conformité.