Aller au contenu

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_CONFIRMED et CORRUPTED_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 priorityScore et 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 SUSPECT et RESTORE_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-04 est mappé à CA-251-03 alors 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-05 devrait pointer TC-251-08 et non TC-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-01 partiellement 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 SUSPECT ne 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.