Aller au contenu

PD-80 — Dossier de conformité Gate 3 (v3)

1. Contexte

  • Story : PD-80 — Implémenter scellement instantané < 1h
  • Gate : 3 — CONFORMITY_CHECK
  • Itération : v3 (dernière avant ESCALADE si NON_CONFORME)
  • Date : 2026-03-12
  • P1 (review) : Claude (claude -p)
  • P2 (confrontation) : Claude (fallback — prompt >30 KB)
  • Dérogation Art. II : Maintenue (même raison que v1/v2)
  • Score v2 : 7.875/10 (NON_CONFORME — completeness 5.75 < 6)

2. Corrections appliquées (v2 → v3)

ECT v2 Statut v3 Détail
ECT-v2-01 (BLOQ) worker réconciliation double exécution Corrigé Lock distribué Redis ajouté dans §5.10 + TC-NOM-18
ECT-v2-02 (MAJ) DEK lifecycle Corrigé §5.14 complet : génération, wrapping, usage, destruction, rotation KEK
ECT-v2-03 (MAJ) rate-limit mineur Corrigé rate_limit_minor_hour=2 + alerte sécurité + TC-NEG-12
ECT-v2-04 (MAJ) comportement 5e retry Corrigé §5.4 point 3 : événement retries_exhausted, attente passive, comportement explicite
ECT-v2-05 (MAJ) tests transition retour Corrigé TC-NOM-16 (TSA_PENDING→QUEUED_PRIORITY) + TC-NOM-17 (TSA_SEALED→TSA_PENDING)
ECT-v2-06 (MAJ) P95 N minimum Corrigé TC-NOM-03 : ref p95_min_samples, N exposé en métrique
ECT-v2-07 (MIN) clamp vs rejet Résolu v2 §5.2 comportement clamp défini
ECT-v2-08 (MIN) SLA par étape non testés Accepté Couvert indirectement par SLA global (CA-03)
ECT-v2-09 (MIN) NTP au démarrage non testé Accepté Observabilité documentée §5.13, pas de TC dédié
ECT-v2-10 (MIN) DEK cycle vecteur Corrigé §5.14 couvre le cycle complet
ECT-v2-11 (MIN) référence epic placeholder Accepté Donnée PO manquante, non bloquante

3. Écarts restants v3

3.1 BLOQUANTS (0)

Aucun écart bloquant.

3.2 MAJEURS (3)

ID Type Source Description
ECT-v3-01 AMB Review C-01 Relation entre rate_limit_urgent (1/h global), rate_limit_minor_hour (2/h), rate_limit_enterprise_hour (10/h) : priorité non spécifiée si un compte est à la fois mineur ET enterprise
ECT-v3-02 AMB Review C-03 Définition de "job BullMQ actif" pour le critère de détection d'orphelin : BullMQ states (active, waiting, delayed) à considérer non listés
ECT-v3-03 AMB Review C-04 Conditions exhaustives de déclenchement des transitions retour (TSA_PENDING→QUEUED_PRIORITY, TSA_SEALED→TSA_PENDING) : seuls des exemples sont donnés ("ex :"), pas une liste fermée

3.3 MINEURS (5)

ID Type Source Description
ECT-v3-04 DIV Review C-05 Cycle oscillant TSA_PENDING↔QUEUED_PRIORITY non borné (pas de max transitions retour)
ECT-v3-05 DIV Confront DIV-01 DEK destruction testée indirectement (absence en clair) mais pas de TC vérifiant suppression wrappée à la transition
ECT-v3-06 DIV Confront DIV-02 Vérification NTP au démarrage spécifiée (§5.13) mais pas de TC dédié
ECT-v3-07 AMB Confront DIV-03 TC-ERR-04 : formulation "rejeté" vs spec "pas un rejet API, retry interne"
ECT-v3-08 DIV Confront DIV-04 Contenu événement retries_exhausted vérifié dans spec §5.4 mais TC-ERR-11 ne vérifie pas seal_id/état/nb tentatives

4. Scoring v3

Base 10, déductions :

Critère Déductions Score
completeness -1 (ECT-v3-01) -1 (ECT-v3-02) -1 (ECT-v3-03) -0.25 (ECT-v3-04) = -3.25 6.75
testability -0.25 (ECT-v3-05) -0.25 (ECT-v3-06) -0.25 (ECT-v3-08) = -0.75 9.25
clarity -0.25 (ECT-v3-07) -0.25 (ECT-v3-04) = -0.5 9.5
traceability 0 = 0 10

Moyenne v3 : (6.75 + 9.25 + 9.5 + 10) / 4 = 8.875 Delta v3-v2 : 8.875 - 7.875 = +1.0 (amélioration significative)

5. Verdict

  • Moyenne 8.875 >= 7 ✅
  • Score minimum : completeness 6.75 >= 6 ✅
  • Tous les scores >= 8 → condition pour GO
  • Completeness 6.75 < 8 → au moins un score < 8

Verdict : RESERVE (moyenne >= 7, tous >= 6, mais completeness 6.75 < 8)

Les 3 MAJEURs restants sont des ambiguïtés de spécification portant sur des cas limites (interaction rate-limits, définition BullMQ "actif", conditions transitions retour). Ils ne bloquent pas l'implémentation et seront clarifiés à l'étape 4 (plan).