Confrontation Gate 3 — PD-251 (v1)¶
1. Convergences¶
- Les trois documents convergent sur le périmètre global : vérification périodique d'intégrité bout-en-bout avec réaction graduée et traçabilité (Spec §2–§3, Tests couverture INV/CA, Review résumé global).
- Convergence sur la structure contractuelle de la spec : 17 invariants et 16 critères d'acceptation (Spec §7–§8, Tests matrice 17/17 INV et 16/16 CA, Review ne conteste pas ces cardinalités).
- Convergence sur la machine d'états à 6 états avec terminaux
CORRUPTED_CONFIRMEDetCORRUPTED_ARCHIVED(Spec §5, Tests via TC couvrant transitions terminales, Review sans contradiction explicite). - Convergence sur l'existence d'un parcours incident en 4 phases (gel, snapshot, restauration, rapport) comme axe fonctionnel central (Spec §3.3, Tests via CA-251-04 à CA-251-09, Review CTR-01 reconnaît ce parcours mais signale un gap de couverture).
- Convergence sur l'exigence de contraintes HSM/signature/canonicalisation comme socle sécurité (Spec §3.3 Phase 2/4 + §9, Tests mention d'un élément non testable HSM, Review NT-02).
- Convergence sur l'existence d'une couverture de non-régression dédiée (Tests NR-251-01 à NR-251-06, Review ne conteste pas l'existence des NR).
- Convergence sur la nécessité d'observabilité/SLA/alerting (Spec §3.4, §3.8, §8, Tests mapping CA liés SLA/alertes, Review discute granularité mais pas le besoin).
- Convergence sur la présence d'API/event/queues dans l'architecture cible (5 endpoints, 11 events, 5 queues ; Review SEC-02 discute le détail du rate limiting par endpoint).
- Convergence explicite qu'il n'y a pas de bloquant au stade review v1 (Review : 0 bloquant).
2. Divergences¶
DVG-01¶
- Source(s) : Spec §3.1 ("archive sélectionnée", "archive du scope") ; Review AMB-01.
- Nature : Ambiguïté de périmètre / incohérence sémantique.
- Description : Le vocabulaire "archive sélectionnée" vs "archive du scope" n'est pas défini de manière opératoire ; la review constate une ambiguïté de population réellement vérifiée par run.
- Gravité estimée : Majeur.
DVG-02¶
- Source(s) : Spec §3.5 ; Review AMB-02.
- Nature : Gap contractuel.
- Description : La spec impose un
priorityScoreet des bornes, mais la formule de calcul (pondérations, normalisation, règles exactes) n'est pas contractualisée ; la review le qualifie de majeur. - Gravité estimée : Majeur.
DVG-03¶
- Source(s) : Spec §3.4 (minutes pour haute criticité, heures pour basse criticité) ; Review AMB-03.
- Nature : Ambiguïté d'unité / risque d'interprétation.
- Description : Les SLA sont exprimés en unités mixtes selon la classe ; la review signale un risque d'implémentation et de validation hétérogène.
- Gravité estimée : Mineur.
DVG-04¶
- Source(s) : Spec §3.3 (Phase 2 snapshot dans le flux incident) ; Spec §8 (CA) ; Review CTR-01.
- Nature : Gap de couverture fonctionnelle (CA vs parcours incident).
- Description : La review signale un trou de couverture entre
SUSPECTetRESTORE_PENDING: la Phase 2 snapshot ne serait pas explicitement verrouillée dans les CA au niveau du passage d'état. - Gravité estimée : Majeur.
DVG-05¶
- Source(s) : Matrice CA (CA-251-03 -> TC-03, TC-04) ; Review CTR-02.
- Nature : Incohérence de mapping test/critère.
- Description : La review indique que
TC-251-04est mappé àCA-251-03alors qu'il testerait le cas inverse ; contradiction entre couverture déclarée et sens réel du test. - Gravité estimée : Mineur.
DVG-06¶
- Source(s) : Matrice CA (
CA-251-05 -> TC-06) ; Review INC-01. - Nature : Incohérence de mapping test/critère.
- Description : La review indique un mauvais rattachement (
CA-251-05devrait pointerTC-251-08et nonTC-251-06). - Gravité estimée : Mineur.
DVG-07¶
- Source(s) : Tests (couverture déclarée
CA-251-15 -> TC-12, TC-14, TC-15) ; Review INC-02. - Nature : Contradiction couverture déclarée vs couverture "dédiée".
- Description : Les tests déclarent la couverture de
CA-251-15(métriques Prometheus), mais la review affirme absence de test spécifique dédié. - Gravité estimée : Majeur.
DVG-08¶
- Source(s) : Tests (couverture déclarée
CA-251-14 -> TC-01, TC-17) ; Review INC-03. - Nature : Contradiction couverture déclarée vs adéquation du test.
- Description : Les tests annoncent la couverture de la suppression refusée, mais la review conclut à l'absence de test dédié.
- Gravité estimée : Majeur.
DVG-09¶
- Source(s) : Tests (matrice INV 17/17, incluant
INV-251-01) ; Review NT-01. - Nature : Contradiction testabilité déclarée vs testabilité réelle.
- Description : La matrice annonce couverture complète des invariants, mais la review signale
INV-251-01partiellement non testable (politique cron libre). - Gravité estimée : Mineur.
DVG-10¶
- Source(s) : Spec §9 (
opsRateLimit: 60 op/min) ; Doc d'entrée (5 API endpoints) ; Review SEC-02. - Nature : Gap de déclinaison sécurité.
- Description : Le rate limiting est globalement présent dans la spec, mais non décliné par endpoint API selon la review.
- Gravité estimée : Mineur.
DVG-11¶
- Source(s) : Spec §3.3/§9 ; Review SEC-01.
- Nature : Gap de définition fonctionnelle/sécurité.
- Description : Les "opérations d'investigation" autorisées sur archive
SUSPECTne sont pas explicitement définies, malgré le gel et le blocage d'accès public. - Gravité estimée : Majeur.
DVG-12¶
- Source(s) : Spec (dépendances HSM/incident, phases 2/4) ; Review HYP-01.
- Nature : Hypothèse non contractualisée.
- Description : Le comportement HSM en incident de masse (batch/concurrence/capacité) n'est pas contractualisé alors que la chaîne incident le requiert.
- Gravité estimée : Majeur.
3. Zones d'ombre¶
- La frontière exacte entre "scopeRotationWindow" et sélection effective des archives par run n'est pas explicitée de bout en bout (critères d'inclusion/exclusion opérationnels).
- La spécification ne rend pas explicite la méthode de mesure et de consolidation des délais SLA multi-unités pour audit/compliance (conversion, horloge de référence, point de départ précis).
- Le niveau de détail attendu des métriques Prometheus (labels obligatoires, cardinalité, seuils d'alerte) n'est pas visible dans les extraits fournis.
- Les modalités de preuve de "non-correction silencieuse" en cas de corruption (au-delà des états et journaux) ne sont pas détaillées en assertions vérifiables dans les tests fournis.
- La granularité de la politique de retry/rattrapage sur les composants async post-commit (journal, Merkle réconciliation) reste non explicitée en scénarios négatifs complets.
- Le traitement de charge extrême multi-incidents (priorisation + HSM + files BullMQ) est évoqué mais sans contrat comportemental complet.
- Le lien explicite entre certains TC et les 5 endpoints API (couverture endpoint-par-endpoint, notamment sécurité/rate-limit) n'apparaît pas dans les informations transmises.
4. Synthèse¶
Bilan global factuel :
- Convergences identifiées : 9
- Divergences identifiées : 12 (dont 7 Majeur, 5 Mineur)
- Zones d'ombre identifiées : 7
Lecture d'ensemble : la base contractuelle est globalement cohérente (périmètre, invariants/CA, machine d'états, parcours incident), mais plusieurs écarts portent sur la contractualisation fine (priorité, sécurité opérationnelle) et sur la cohérence de couverture tests↔CA/INV (mappings et tests dédiés), ce qui justifie une vigilance élevée avant verdict PMO Gate 3.