Aller au contenu

PD-84 — Rapport de confrontation (Étape Pré-gate)

Ce rapport est produit par l'orchestrateur Claude avant chaque gate PMO. Il confronte les documents produits pour identifier convergences, divergences et zones d'ombre.

1. Sources confrontées

  • PD-84-specification.md — version 1.2.0 (2026-02-23), document de spécification fonctionnelle et contractuelle.
  • PD-84-tests.md — version 1.2.0 (2026-02-23), cahier de tests (matrice de couverture, scénarios, verdict de testabilité).

2. Convergences

  • Quotas FREE alignés: maximum 3 dossiers ACTIVE et 100 documents scellés par dossier actif (Spec 2.1, 3.3, F-84-01/04 ; Tests TC-01 à TC-04, TC-LIM-01/02).
  • Refus explicites de dépassement quota alignés sur les codes métier QUOTA_FOLDER_LIMIT_REACHED et QUOTA_DOCUMENT_LIMIT_REACHED (Spec CA-84-02/04, 7.2 ; Tests TC-02, TC-04).
  • Verrouillage export en FREE convergent: exports composite/archive refusés avec PREMIUM_REQUIRED, UI avec contrôle visible grisé + texte "Disponible en Premium" + CTA (Spec F-84-08/09/10, CA-84-05/06, 7.3 ; Tests TC-05, TC-06).
  • Clôture dossier convergente: transition ACTIVE -> CLOSED_READ_ONLY, conservation des preuves, libération d'un slot actif, idempotence 2e clôture en 409 + FOLDER_ALREADY_CLOSED (Spec 3.2.1, CA-84-07, 7.1/7.2 ; Tests TC-07, TC-17, TC-LIM-03).
  • Isolement des quotas entre comptes convergent (mineur/représentant légal), sans contamination des compteurs (Spec F-84-16, CA-84-09 ; Tests TC-09).
  • Universalité du plan FREE sans distinction d'âge convergente (Spec F-84-15, INV-84-09 ; Tests TC-15).
  • Transition FREE -> PREMIUM testable via stub convergente, avec auto-déverrouillage des capacités sur dossiers existants (Spec 3.2.3, F-84-17, CA-84-10 ; Tests TC-10, TC-10-bis, TC-SLA-01).
  • SLA de propagation convergent: objectif p95 < 5s, borne absolue <= 30s, émission/audit de PLAN_STATE_INCONSISTENT si dépassement (Spec 3.2.2, 9 ; Tests TC-SLA-01).
  • Exigences de concurrence atomique et déterminisme convergentes via tests de course répétés 30 fois (Spec 3.4 ; Tests TC-LIM-01/02).
  • Rejet de catégorie invalide convergent avec code INVALID_FOLDER_CATEGORY (Spec F-84-19, 7.1/7.2 ; Tests TC-16).
  • Équivalence algorithmique FREE/PREMIUM sur scellement convergente (Spec 8.3, CA-84-11 ; Tests TC-11, TC-SEC-01).
  • Auditabilité convergente sur refus quota, clôture, changement de plan, et export refusé en FREE (Spec F-84-18, 8.2 ; Tests TC-13).

3. Divergences

⚠️ Les conflits ne doivent JAMAIS être lissés. Chaque divergence est rendue visible.

  • DIV-01 : Le test TC-18 valide une transition PREMIUM -> FREE non spécifiée contractuellement dans PD-84.
  • Source A (specification) : la transition explicitement définie et outillée est FREE -> PREMIUM via PUT /account/plan payload minimal { "plan_type": "PREMIUM" } (Spec 3.2.3, 7.1).
  • Source B (tests) : TC-18 étape 4 exécute explicitement PREMIUM -> FREE via PUT /account/plan, puis attend capabilities à false.
  • Impact : extension implicite du périmètre fonctionnel côté tests; risque de verdict contradictoire (implémentation conforme à la spec mais non conforme à TC-18).

  • DIV-02 : Couverture revendiquée ECT-03/ECT-07 (quotas PREMIUM levés) non alignée avec les scénarios cités.

  • Source A (specification) : en PREMIUM, aucune borne supérieure de quota n'est appliquée par PD-84 (Spec 2.3, 3.3).
  • Source B (tests) : section 8 (traçabilité) affirme "ECT-03/ECT-07 | TC-09 (PREMIUM quotas levés)", alors que TC-09 ne met en jeu que deux comptes FREE (U_MINOR_A, U_GUARDIAN_B) et teste l'indépendance inter-comptes, pas l'absence de limite PREMIUM.
  • Impact : faux sentiment de couverture d'une exigence contractuelle structurante; risque de gate validée sans preuve de non-limitation PREMIUM.

  • DIV-03 : Référence de scénario incohérente pour CA-84-08 révisé.

  • Source A (specification) : CA-84-08 révisé porte sur dossier CLOSED_READ_ONLY (ajout refusé) et verrou export; note de périmètre API explicite (Spec 6).
  • Source B (tests) : section 6 indique "Couvert par TC-12 (révisé périmètre API)", alors que TC-12 traite l'absence de reset mensuel; le test opérationnel pertinent est TC-08 (et partiellement TC-05 pour export FREE).
  • Impact : traçabilité CA -> TC ambiguë, audit de couverture potentiellement contestable en gate.

  • DIV-04 : Niveau d'exigence sur le message de quota document.

  • Source A (specification) : contrat de message minimal exact pour quota document: "Passez en Premium pour des dossiers illimités" (Spec 7.3).
  • Source B (tests) : TC-04 n'impose qu'un "message fonctionnel indique disponibilité Premium" sans vérification de la chaîne contractuelle exacte.
  • Impact : conformité textuelle contractuelle non objectivée par les tests; risque d'écart UX/copy non détecté.

4. Zones d'ombre

  • Aucun test explicite du garde-fou production de PUT /account/plan (ENABLE_PLAN_STUB=true, endpoint non exposé publiquement en prod) alors que c'est normatif (Spec 3.2.3).
  • Aucun test du comportement "audit log indisponible" avec non-blocage métier + mise en file/retry asynchrone (Spec SEC-84-03).
  • Les statuts HTTP normatifs (422 pour quotas/capacités, etc.) sont spécifiés, mais la majorité des scénarios vérifie surtout les codes métier; la conformité HTTP reste peu démontrée.
  • La spécification laisse ouverte la question de paramétrabilité runtime du SLA (Spec 9.1) et le cahier de tests ne la ferme pas.
  • Le périmètre exact de vérification de PLAN_STATE_INCONSISTENT en audit est présent sur le principe (TC-SLA-01) mais sans cas de test forcé d'expiration >30s décrit pas-à-pas (injection de délai, oracle de détection).
  • Les obligations RGPD renforcées (Spec SEC-84-04) restent majoritairement hors protocole testable détaillé; la couverture est annoncée partielle côté API.

5. Recommandation

  • Procéder — convergence confirmée, aucun conflit bloquant
  • Rework nécessaire — divergences à résoudre avant de continuer
  • Escalade — décision humaine requise sur un point structurant