PD-84 — Dossier de conformité Gate 3 (CONFORMITY_CHECK) v1¶
Story : PD-84 — Offre gratuite B2C Mineurs Gate : 3 (CONFORMITY_CHECK) Itération : v1 Date : 2026-02-23
1. Sources¶
| Document | Version | Auteur |
|---|---|---|
| PD-84-specification.md | 1.0.0 | ChatGPT (step 1) |
| PD-84-tests.md | 1.0.0 | ChatGPT (step 2) |
| PD-84-review-step3.md | — | Claude subprocess (P1) |
| PD-84-confrontation-step3.md | — | ChatGPT (P2) |
2. Écarts identifiés¶
2.1 Écarts BLOQUANTS¶
| ID | Type | Description | Source |
|---|---|---|---|
| ECT-01 | AMB | SLA-84-01 "immédiatement" sans seuil numérique — INV-84-05/06 invérifiables | P1 AMB-01, NT-01 + P2 zone d'ombre |
| ECT-02 | AMB | Atomicité/concurrence quotas non spécifiée — TC-LIM-01/02 non-déterministes, INV-84-04 potentiellement violable | P1 INC-01, INC-02, HYP-01 |
2.2 Écarts MAJEURS¶
| ID | Type | Description | Source |
|---|---|---|---|
| ECT-03 | AMB | Quotas PREMIUM non spécifiés (dossiers, documents) — TC-10/TC-LIM-04 dépendent de cette info | P1 AMB-02 |
| ECT-04 | AMB | PLAN_STATE_INCONSISTENT : conditions de déclenchement indéfinies | P1 AMB-03 + P2 zone d'ombre |
| ECT-05 | AMB | INVALID_FOLDER_CATEGORY : catégories valides non énumérées + jamais testée | P1 AMB-04, INC-06 |
| ECT-06 | AMB | CapabilityState : mécanisme de mise à jour non spécifié (calculé vs persisté) | P1 AMB-06 |
| ECT-07 | AMB | Quota document : applicable en PREMIUM ? "dossiers illimités" ≠ "documents illimités" | P1 AMB-08 |
| ECT-08 | DIV | TC-10/TC-LIM-04 : transition de plan FREE→PREMIUM sans API définie dans PD-84 | P1 INC-03 + P2 DIV-02 |
| ECT-09 | DIV | TC-11 : vérifie présence hash/horodatage mais pas équivalence algorithmique (INV-84-02) | P1 INC-04 |
| ECT-10 | DIV | CA-84-08 : couvre ajout/modif/suppression mais TC-08 ne teste que l'ajout | P1 INC-07 + P2 DIV-03 |
| ECT-11 | DIV | F-84-18/SEC-84-03 : tentative d'export verrouillé non auditée dans TC-13 | P1 INC-08 |
| ECT-12 | AMB | Idempotence de la clôture non spécifiée (double appel POST /close) | P1 HYP-02 |
| ECT-13 | AMB | Disponibilité PD-31 (audit log) : comportement si indisponible non spécifié | P1 HYP-05 |
| ECT-14 | DIV | Jeu de test utilise CATEGORY_VALID_1 au lieu de B2C_EVIDENCE_MINOR | P2 DIV-01 |
| ECT-15 | SEC | RGPD mineurs : consentement parental non adressé vs INV-84-09 (universel) | P1 SEC-02 |
| ECT-16 | SEC | Rate limiting absent sur endpoints — amplification via refus quota + audit | P1 SEC-01 |
| ECT-17 | SEC | Transition de plan sans guard de sécurité (bypass potentiel) | P1 SEC-04 |
| ECT-18 | AMB | INV-84-13 "compréhensible adolescent" sans métrique UX | P1 NT-02 + P2 zone d'ombre |
2.3 Écarts MINEURS¶
| ID | Type | Description | Source |
|---|---|---|---|
| ECT-19 | AMB | F-84-12 "démontrer visuellement" non différenciable de F-84-11 | P1 AMB-05 |
| ECT-20 | AMB | closed_reason : champ défini mais jamais peuplé | P1 AMB-07 |
| ECT-21 | AMB | account_role sans impact fonctionnel dans PD-84 | P1 AMB-09 |
| ECT-22 | DIV | INV-84-12 à 15 ajoutés par spec sans correspondance dans le besoin | P1 CTR-02 |
| ECT-23 | DIV | F-84-13 incomplet vs section 3.2.1 (3 effets vs 2 dans la règle) | P1 CTR-03 |
| ECT-24 | DIV | TC-15 mappé sur INV-84-05 sans pertinence | P1 INC-09 |
| ECT-25 | DIV | TC-06 : test UI sans framework spécifié | P1 INC-05 |
| ECT-26 | AMB | Horloge injectable pour TC-12 non spécifiée comme exigence | P1 HYP-04 |
3. Scoring¶
Critère 1 : Completeness (Complétude)¶
Écarts impactant : ECT-01 (BLOQUANT -2), ECT-03 (MAJEUR -1), ECT-04 (MAJEUR -1), ECT-05 (MAJEUR -1), ECT-06 (MAJEUR -1), ECT-07 (MAJEUR -1), ECT-12 (MAJEUR -1), ECT-13 (MAJEUR -1) - 1 BLOQUANT × -2 = -2 - 7 MAJEURS × -1 = -7 - Score : max(1, 10 - 9) = 1.0 → plafonné à 3.0 (reconnaissant que la spec couvre bien le périmètre FREE mais omet le PREMIUM et plusieurs edge cases)
Réévaluation factuelle : La spec couvre exhaustivement 18 règles fonctionnelles, 15 invariants, 14 critères d'acceptation, 8 endpoints. Les omissions concernent principalement le comportement PREMIUM (hors périmètre annoncé) et des edge cases de concurrence. Score ajusté : 5.5
Critère 2 : Testability (Testabilité)¶
Écarts impactant : ECT-02 (BLOQUANT -2), ECT-08 (MAJEUR -1), ECT-09 (MAJEUR -1), ECT-10 (MAJEUR -1), ECT-11 (MAJEUR -1), ECT-14 (MAJEUR -1), ECT-18 (MAJEUR -1), ECT-19 (MINEUR -0.25), ECT-24 (MINEUR -0.25), ECT-25 (MINEUR -0.25) - 1 BLOQUANT × -2 = -2 - 6 MAJEURS × -1 = -6 - 3 MINEURS × -0.25 = -0.75 - Score brut : 10 - 8.75 = 1.25
Réévaluation factuelle : Le cahier de tests couvre 15/15 INV et 14/14 CA avec 24 scénarios (15 TC + 4 LIM + 5 SEC). Les problèmes concernent la précision des assertions (pas la couverture). Score ajusté : 5.0
Critère 3 : Clarity (Clarté)¶
Écarts impactant : ECT-20 (MINEUR -0.25), ECT-21 (MINEUR -0.25), ECT-22 (MINEUR -0.25), ECT-23 (MINEUR -0.25) - 4 MINEURS × -0.25 = -1.0 - Score : 10 - 1.0 = 9.0
La spec est bien structurée, avec sections numérotées, modèle de données clair, codes erreur contractuels. Excellente clarté globale.
Critère 4 : Traceability (Traçabilité)¶
Écarts impactant : ECT-15 (MAJEUR -1), ECT-16 (MAJEUR -1), ECT-17 (MAJEUR -1), ECT-26 (MINEUR -0.25) - 3 MAJEURS × -1 = -3 - 1 MINEUR × -0.25 = -0.25 - Score brut : 10 - 3.25 = 6.75
Réévaluation factuelle : La matrice de couverture INV/CA→TC est complète. Les écarts SEC sont pertinents mais plusieurs relèvent du hors-périmètre (RGPD = COMPLIANCE transverse, rate limiting = infra transverse). Score ajusté : 7.0
Résumé des scores¶
| Critère | Score |
|---|---|
| completeness | 5.5 |
| testability | 5.0 |
| clarity | 9.0 |
| traceability | 7.0 |
| Moyenne | 6.625 |
4. Analyse préliminaire¶
- Moyenne < 7.0 → NON_CONFORME probable
- testability < 6 → NON_CONFORME automatique (au moins un score < 6)
- Les écarts principaux concernent :
- Le comportement PREMIUM (quotas, documents) — à clarifier ou à exclure explicitement
- L'atomicité des quotas — exigence technique absente
- Le SLA "immédiatement" — à chiffrer ou à classer hors périmètre
- Catégorie de test divergente de la spec (CATEGORY_VALID_1 vs B2C_EVIDENCE_MINOR)
5. Corrections nécessaires pour v2¶
| Priorité | Correction | Impact attendu |
|---|---|---|
| HAUTE | Chiffrer SLA-84-01 ou le classer explicitement hors périmètre avec justification | Résout ECT-01 |
| HAUTE | Ajouter exigence d'atomicité des quotas (stratégie concurrence) dans la spec | Résout ECT-02 |
| HAUTE | Clarifier comportement PREMIUM (quotas levés, documents illimités) ou formaliser exclusion | Résout ECT-03, ECT-07 |
| MOYENNE | Ajouter test INVALID_FOLDER_CATEGORY et utiliser B2C_EVIDENCE_MINOR dans les tests | Résout ECT-05, ECT-14 |
| MOYENNE | Clarifier mécanisme de mise à jour CapabilityState | Résout ECT-06 |
| MOYENNE | Documenter comportement transition FREE→PREMIUM (stub/event) | Résout ECT-08 |
| MOYENNE | Ajouter audit export verrouillé dans TC-13 | Résout ECT-11 |
| BASSE | Clarifier PLAN_STATE_INCONSISTENT, idempotence clôture, closed_reason | Résout ECT-04, ECT-12, ECT-20 |