Aller au contenu

PD-280 — Plan d’implémentation : Revue

1. Références

  • Spécification : PD-280-specification.md
  • Tests contractuels : PD-280-tests.md
  • Plan d’implémentation : PD-280-plan.md
  • Date de revue : 2026-03-01
  • Reviewer : Auditeur technique indépendant (LLM)

2. Constatations (écarts)

Type Référence (Spec/Test/Plan) Description Impact Gravité (BLOQUANT/MAJEUR/MINEUR)
Non-conformité Spec Spec §4 INV-280-06, §4 INV-280-09, §5.1, §5.3 / Plan §1 C5 (DDL-02), Plan §5 (TC-NOM-09), Plan §8 (HT-05) Le plan porte des mécanismes contradictoires pour verificationRequestId (généré à la création du job via DB, généré par mapper, et mention résiduelle "au premier appel DONE"). Le caractère lecture seule/idempotent n’est plus univoque; oracle de conformité CA-12/TC-INV-06 non stable. BLOQUANT
Test irréalisable Test TC-INV-05 / Plan §2.2 (lecture seule sans mutation), §5 (TC-INV-05), §11 (aucune modif autres modules) Le test exige une tentative de transition terminal -> PENDING et son refus déterministe, alors que le plan ne décrit aucun point de contrôle exécutable dans le périmètre pour cette tentative (mutations externalisées). Le scénario d’invariant ne peut pas être démontré "a priori" avec les seuls mécanismes planifiés. BLOQUANT
Couverture manquante Invariant INV-280-05 / Plan §3 (mapping invariants), §5 (mapping tests) La non-régression des transitions internes est partiellement déléguée à des "processus externes/couche persistance" sans mécanisme contractuel explicite dans C1-C5 garantissant la non-contournabilité. Risque de contournement de l’invariant de transition malgré conformité API de surface. MAJEUR
Risque sécu/conformité Spec §7 CA-11 / Plan §7 ("IDOR ... guard RLS existant PD-251 non réimplémenté"), Plan §5 (pas de TC dédié IDOR) La protection d’accès du nouvel endpoint dépend d’un mécanisme externe mentionné mais non tracé dans la matrice d’invariants/tests du plan. Audit tiers incomplet sur contrôle d’accès; risque d’exposition inter-tenant non prouvée par les artefacts PD-280. MAJEUR
Hypothèse implicite Plan §7 ("latence constante" contre timing attack), Plan §12 (aucun test dédié) Le plan affirme une propriété de sécurité (latence constante) sans mécanisme technique ni oracle de test explicite. Allégation sécurité non vérifiable contractuellement, susceptible de non-conformité en audit externe. MAJEUR
Code Contract — Cohérence Code Contracts (module tla-alignment, decision "modifier norm.yaml, pas _AnchoredFacts_PROOF.tla directement") / Plan §1 C6 (fichiers impactés incluent _AnchoredFacts_PROOF.tla) Conflit documentaire sur la source de vérité et la méthode d’alignement TLA+ (modification directe vs génération CI). Rupture de traçabilité formelle et ambiguïté d’audit sur la preuve CA-06/INV-280-07. MAJEUR
Code Contract — Cohérence Code Contracts (module proof-verification-tests: "30 scenarios TC-") / Plan §1 C8 ("28 scenarios TC-") Le volume contractuel de couverture de tests n’est pas aligné entre plan et code contracts. Ambiguïté sur l’exhaustivité attendue; risque d’écart de complétude en revue de gate. MINEUR
Code Contract — Forbidden Code Contracts (module proof-verification-domain: interdiction Math.random + obligation crypto.randomUUID()) / Spec §5.1, §5.3 / Plan §1 C5 DDL-02 Le "forbidden" impose un mode de génération applicatif de verificationRequestId non requis par la spec et en tension avec la décision DDL (UUID DB/externe). Exigence contractuelle additionnelle non justifiée par la spec; risque de rejet pour non-conformité croisée Plan↔Contracts. MAJEUR

3. Synthèse

  • Nombre d’écarts par gravité : BLOQUANT = 2, MAJEUR = 5, MINEUR = 1.
  • Points critiques :
  • Contradiction centrale sur la source et la stabilité de verificationRequestId (impact direct INV-280-06 / INV-280-09 / CA-12).
  • Test d’invariant TC-INV-05 non démontrable avec les mécanismes effectivement décrits dans le périmètre PD-280.
  • Incohérences Plan ↔ Code Contracts sur l’alignement TLA+ et la complétude de couverture.

4. Verdict de la revue

  • Statut : ⛔ Rejeté
  • Motif synthétique : présence d’écarts bloquants de cohérence contractuelle (idempotence/lecture seule) et de testabilité d’invariant non négociable, complétés par des divergences majeures Plan↔Code Contracts.