Aller au contenu

PD-280 — Rapport de confrontation (Étape 3)

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

  • Étape 1 — Spécification : PD-280 — Alignement canonique de l'etat PENDING... (v3 corrigee)
  • Étape 2 — Tests : PD-280 — Scenarios de tests contractuels (v3 corriges)

2. Convergences

  • Le périmètre fonctionnel est aligné : introduction de PENDING, frontière interne/API (PENDING interne -> null API), statut global verificationStatus, et exclusion worker/cron (Spec §2, §5.7 ; Tests §2, TC-NOM-01, TC-NOM-05, TC-NEG-11).
  • Les invariants clés sont couverts de façon cohérente, y compris INV-280-06 (DONE terminal + rappel idempotent) et INV-280-09 (concurrence idempotente sur proofId) (Spec §4 ; Tests §5, TC-INV-06, TC-NOM-10).
  • Le contrat de cohérence verificationStatus/linkResults et la règle conditionnelle sur pendingReason + nextCheckAfterSeconds sont strictement concordants (Spec INV-280-02, INV-280-03, §5.1 ; Tests TC-NOM-01, TC-NOM-02, TC-ERR-03, TC-ERR-04).
  • Le comportement SLA est aligné en mode lazy sur appel API, avec reclassification PENDING -> INDETERMINATE sans erreur transport (Spec §5.2, §8 SCN-280-05, ERR-280-05 ; Tests TC-NOM-05).
  • Le clamp de nextCheckAfterSeconds dans [1..86400] est convergent (Spec §5.1, §5.2 ; Tests TC-NEG-05).
  • L’alignement formel TLA+ (RealStates = CheckResults) est cohérent entre exigence et vérification CI (Spec INV-280-07, CA-06 ; Tests TC-NOM-07, TC-ERR-06).
  • L’alignement documentaire et de traçabilité est présent (epic parent PD-217, retrait des invariants crypto hors périmètre, test textuel RFC pour CA-09) (Spec §2, Références, §7 CA-09 ; Tests §0, §1, §6 TC-NR-03).

3. Divergences

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

  • Aucune divergence matérielle détectée entre la spécification v3 corrigée et les tests v3 corrigés sur le périmètre PD-280.
  • Source A (spécification) : exigences contractuelles/invariants/cas d’erreur/scénarios.
  • Source B (tests) : matrice de couverture et scénarios dédiés alignés sur ces exigences.
  • Impact : absence de conflit bloquant constatée à ce stade de confrontation.

4. Zones d'ombre

  • Politique officielle de versionnement API lors d’ajout de valeur enum non définie contractuellement (Spec §10.2.2 ; Tests §9).
  • Comportement attendu des clients legacy face à PENDING non défini (Spec §10.2.3 ; Tests §9).
  • Taxonomie définitive de pendingReason non tranchée au-delà du périmètre courant (Spec §10.2.1).
  • Stratégie de down migration en production en présence de données PENDING non arbitrée (Spec §10.2.4, §5.4).
  • Mécanisme exact de gouvernance de configuration pour pendingResolutionTtl hors bornes laissé ouvert (rejet vs normalisation) (Spec SCN-280-09 ; Tests TC-NEG-09).

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