Aller au contenu

PD-84 — Plan d'implémentation : Revue

1. Références

  • Spécification : PD-84-specification.md
  • Tests contractuels : PD-84-tests.md
  • Plan d'implémentation : PD-84-plan.md
  • Date de revue : 2026-02-24
  • Reviewer : Auditeur technique indépendant (OpenCode/ChatGPT)

2. Constatations (écarts)

Type Référence (Spec/Test/Plan) Description Impact Gravité
Test irréalisable TC-10, TC-LIM-04 / Plan §2.5, §9.2 Le plan fixe 501 Not Implemented pour les exports en PREMIUM, alors que TC-10 et TC-LIM-04 exigent qu'après upgrade l'export soit autorisé. Les scénarios contractuels d'upgrade ne peuvent pas passer avec le comportement planifié. BLOQUANT
Test irréalisable Spec §3.2.2, §9 (SLA-84-01) / TC-SLA-01 / Plan §2.4, §5, §6 Le plan ne décrit pas de point d'observabilité explicite pour la borne SLA "réception PUT /account/plan → enregistrement append-only PD-31", ni le mécanisme opérationnel de déclenchement observable de PLAN_STATE_INCONSISTENT à >30s. Mesure SLA contractuelle non objectivable en audit tiers. BLOQUANT
Non-conformité Spec Spec CA-84-06, F-84-10 / TC-06 / Plan §3, §5, §9.1 Le plan réduit la couverture UI à "API only / E2E futur", alors que la spec impose un comportement UI explicite (bouton visible grisé + CTA). CA UX contractuel non couvert par mécanisme d'implémentation décrit. MAJEUR
Couverture manquante Spec CA-84-08 (révisé) / TC-08 / Plan §4 La partie "export complet verrouillé en FREE" de CA-84-08 n'est pas couverte dans le mapping. Couverture partielle d'un CA contractuel composite. MAJEUR
Non-conformité Spec Spec §3.1 (UserAccount.account_role) / Plan §3, §7.3 Le plan indique que account_role "n'existe pas encore / hors périmètre", alors que la spec l'inclut et les tests s'appuient sur des rôles. Divergence modèle contractuel ↔ implémentation. MAJEUR
Hypothèse implicite Plan §8 (H-01) / Go-No-Go §0 Migration User.plan sans traitement contractuel du cas business. Risque de non-régression et incohérence de données. MAJEUR
Risque sécu/conformité Spec §3.2.3 / Plan §2.4, §7.1, §8 (H-07) Le garde-fou repose uniquement sur ENABLE_PLAN_STUB; conformité "jamais exposé en production" dépend d'hypothèse d'exploitation non contrôlée. Erreur de configuration possible. MAJEUR
Couverture manquante Spec §8.2 / Plan §6, §7.2 PLAN_STATE_INCONSISTENT non mappé explicitement dans les types d'audit PD-84. Auditabilité incomplète d'un état d'erreur critique. MAJEUR
Code Contract Plan COMP-01 / Code Contracts QuotaGuard présent dans le plan mais absent des interfaces de code contract. Frontière de responsabilité incomplète. MAJEUR
Code Contract Code Contracts audit-extension Convention "domain.action" incohérente avec identifiants fournis (FOLDER_CLOSE). Contrat de nommage ambigu. MINEUR
Code Contract Code Contracts forbidden Certaines interdictions non rattachées à exigence spec/sécurité. Règles potentiellement arbitraires. MINEUR
Contrainte technique Plan "Contraintes techniques" Variables CI non documentées malgré tests d'intégration PostgreSQL. Reproductibilité CI incomplète. MINEUR
Hypothèse implicite Plan §2.2, §9.1 Stabilité/collision hash pour pg_advisory_xact_lock non contractualisée. Risque de non-déterminisme sous charge. MINEUR

3. Synthèse

Gravité Nombre
BLOQUANT 2
MAJEUR 7
MINEUR 4

Points critiques : 1. Incompatibilité plan ↔ tests sur exports PREMIUM (TC-10, TC-LIM-04) 2. Testabilité SLA insuffisamment instrumentée (SLA-84-01) 3. Couverture UX contractuelle (CA-84-06) et auditabilité incomplètes 4. Incohérence modèle contractuel account_role

4. Verdict de la revue

  • Statut : Rejeté (2 bloquants + 7 majeurs)