PD-284 — 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¶
- Spécification fonctionnelle :
PD-284 — UX de scellement urgent et suivi temps réel(Étape 1) - Plan de tests contractuels :
PD-284 — Scénarios de tests contractuels(Étape 2)
2. Convergences¶
- Couverture forte des invariants non négociables
INV-284-01àINV-284-09entre spécification (§4, §5.7, §6, §7) et tests (matrice §2, tests dédiés §5). - Alignement explicite sur la machine d’états monotone et les transitions interdites (
RECEIVED -> ... -> SEALED/FAILED_TIMEOUT) entre spec §5.7 et testsTC-NOM-05,TC-ERR-04,TC-ERR-06,TC-NEG-04. - Convergence sur la stratégie de résilience réseau : reconnection SSE, bascule polling après 3 échecs, retour à SSE, conservation du dernier état + badge
Hors ligne(spec §5.2, INV-284-07, §6 ; testsTC-NOM-08/09/14). - Convergence sur les notifications terminales et deep-linking (
SEALED/FAILED_TIMEOUT) entre spec §5.5, INV-284-08, CA-284-08/09 et testsTC-NOM-06/07,TC-NR-04. - Convergence sur le mode expert progressif et le masquage des données invalides (spec §5.4, §5.6, §6, CA-284-11/12 ; tests
TC-NOM-11/12,TC-ERR-07,TC-NEG-05/06). - Convergence sur les contraintes de performance (
P95 <= 100 ms) entre spec §5.8, CA-284-10 et testTC-NOM-13+ non-régressionTC-NR-06. - Convergence explicite sur les limites connues : les mêmes points non testables sont reconnus dans les deux artefacts (spec §10
Q-284-03/04/05/06/08, tests §9).
3. Divergences¶
⚠️ Les conflits ne doivent JAMAIS être lissés. Chaque divergence est rendue visible.
- DIV-01 : statut du fallback email défini côté spec mais seulement indirectement vérifiable côté tests.
- Source A (spécification) : Flux E/§6 impose
push indisponible -> fallback email(comportement contractuel attendu). - Source B (tests) :
TC-ERR-08ne valide pas la réception email utilisateur, seulement un “signal backend observable (événement/trace)”. -
Impact : validation partielle de l’exigence utilisateur finale de notification alternative (preuve d’exécution fonctionnelle incomplète).
-
DIV-02 : terminalité métier stricte vs arrêt opérationnel des canaux de suivi.
- Source A (spécification) : §5.7 interdit les transitions sortantes depuis
SEALED/FAILED_TIMEOUT, sans exiger explicitement l’arrêt SSE/polling. - Source B (tests) :
TC-NOM-06affirme qu’“aucun polling/SSE supplémentaire n’est requis”. -
Impact : interprétation potentiellement plus stricte côté QA que le contrat écrit (risque de rejet d’implémentation conforme au strict minimum contractuel).
-
DIV-03 : caractère “non applicable front-only” de l’invariant inter-modules vs testabilité revendiquée.
- Source A (spécification) :
INV-284-10et §5.10 posent “aucune contrainte inter-module backend supplémentaire” dans un scope front-only/non applicable côté UI. - Source B (tests) :
TC-INV-10tente une vérification par traçage réseau mais admet une couverture “Partielle”. - Impact : critère de conformité difficilement décidable de manière binaire en gate (risque de verdict hétérogène selon l’interprétation).
4. Zones d'ombre¶
- Contrat exact
POST /seals/urgent(payload/réponses/codes métier) non formalisé de façon exploitable pour assertions exhaustives. - Schéma SSE versionné incomplet (types d’événements, champs obligatoires, format strict
event_id). - Format contractuel de
tsa_token_refnon défini (regex/casse/contraintes de rendu). - Bornes heartbeat/TTL SSE côté client absentes (paramètres temporels incomplets).
- Politique iOS hors foreground non tranchée (notification locale vs push distante).
- Valeurs de quota max par plan (
standard/premium/enterprise) non documentées. - Identifiant Epic réel non finalisé (
à compléter/EPIC-XX). - SLA détaillés “étape par étape” non fournis (spec §5.9 reste partiellement “à clarifier”).
- Structure exacte du
proof packageexpert non contractualisée (présence évoquée, format non précisé).
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