1. Contexte
- Story : PD-80 — Implémenter scellement instantané < 1h
- Gate : 3 — CONFORMITY_CHECK
- Itération : v2
- 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)
- Score v1 : 5.94/10 (NON_CONFORME)
2. Corrections appliquées (v1 → v2)
| ECT v1 | Statut v2 | Détail |
| ECT-01 (BLOQ) brouillon §5.3 | Corrigé | Valeur Min remplacée par 1 min |
| ECT-02 (BLOQ) QUEUED_PRIORITY absent SLA | Corrigé | Transitions QUEUED_PRIORITY ajoutées au tableau SLA |
| ECT-03 (BLOQ) fenêtre P95 | Corrigé | Fenêtre 24h glissante définie |
| ECT-04 (MAJ) retries vs transitions | Corrigé | §5.10 worker réconciliation ajouté |
| ECT-05 (MAJ) TC-ERR-04 | Corrigé | Renommé en validation interne |
| ECT-06 (MAJ) résolution manuelle | Corrigé | API admin resubmission spécifiée |
| ECT-07 (MAJ) seuil anti-starvation | Corrigé | Seuil débit minimum défini |
| ECT-08 (MAJ) retry webhook | Corrigé | Politique 3 retries webhook ajoutée |
| ECT-09 (MAJ) réconciliation | Corrigé | Worker scan 1 min, orphan_threshold 10 min |
| ECT-10 (MAJ) enterprise plafond | Corrigé | Plafond technique 1000/mois + rate-limit 10/h |
| ECT-11 (MAJ) fallback push | Corrigé | Email comme fallback si aucun device |
| ECT-12 (MAJ) enum freemium | Corrigé | freemium ajouté à l'enum account_type |
3. Écarts restants v2
3.1 BLOQUANTS (1)
| ID | Type | Source | Description |
| ECT-v2-01 | HD | Review HD-01 | Worker réconciliation sans protection double exécution — risque d'intégrité probatoire (double TSA, double ancrage) |
3.2 MAJEURS (5)
| ID | Type | Source | Description |
| ECT-v2-02 | AMB | Review A-01 | Cycle de vie DEK non spécifié (génération, rotation, destruction post-scellement) |
| ECT-v2-03 | AMB | Review A-02 | Rate-limit minor : pas de rate-limit pour comptes mineurs ? Risque d'abus par compte mineur compromis |
| ECT-v2-04 | AMB | Review A-04 | Comportement exact au 5e retry (après épuisement backoff) : transition vers quel état ? |
| ECT-v2-05 | DIV | Confront DIV-01/02 | 2 transitions retour spec (TSA_PENDING→QUEUED_PRIORITY, TSA_SEALED→TSA_PENDING) sans test dédié |
| ECT-v2-06 | AMB | Review NT-01 | Tests TC-NOM-03 : significativité P95 (N minimum non défini) |
3.3 MINEURS (5)
| ID | Type | Source | Description |
| ECT-v2-07 | AMB | Review A-03/05 | Paramètres configurables (batch, weight) : clamp vs rejet non spécifié |
| ECT-v2-08 | DIV | Confront DIV-03 | SLA par étape non testés individuellement |
| ECT-v2-09 | DIV | Confront DIV-04 | Détection NTP au démarrage spécifiée mais non testée |
| ECT-v2-10 | SEC | Review RS-01 | Cycle DEK crypto — vecteur d'attaque persistant |
| ECT-v2-11 | DIV | Confront DIV-06 | Référence epic placeholder |
4. Scoring v2
Base 10, déductions :
| Critère | Déductions | Score |
| completeness | -2 (ECT-v2-01 BLOQ) -1 (ECT-v2-02) -1 (ECT-v2-03) -0.25 (ECT-v2-07) = -4.25 | 5.75 |
| testability | -1 (ECT-v2-05) -1 (ECT-v2-06) -0.25 (ECT-v2-08) -0.25 (ECT-v2-09) = -2.5 | 7.5 |
| clarity | -1 (ECT-v2-04) -0.25 (ECT-v2-07) -0.25 (ECT-v2-11) = -1.5 | 8.5 |
| traceability | -0.25 (ECT-v2-11) = -0.25 | 9.75 |
Moyenne v2 : (5.75 + 7.5 + 8.5 + 9.75) / 4 = 7.875 Delta v2-v1 : 7.875 - 5.94 = +1.935 (amélioration significative)
5. Verdict
- Moyenne 7.875 >= 7 ✅
- Score completeness 5.75 < 6 → NON_CONFORME (un score < 6)
- Malgré moyenne >= 7, la règle "au moins un score < 6 → NON_CONFORME" s'applique
Verdict : NON_CONFORME (completeness 5.75 < 6)
Cependant, le bloquant HD-01 est un point localisé (ajout d'un lock distribué dans §5.10). La correction est mineure.