Aller au contenu

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