PD-298 — Dossier de conformité Gate 3 (v1)¶
Story : [APP] UI de création et gestion des liens de partage sans compte Gate : 3 — CONFORMITY_CHECK Itération : v1 Date : 2026-04-22
1. Documents audités¶
PD-298-specification.md(459 lignes, 17 invariants, 15 CA)PD-298-tests.md(520 lignes, matrice couverture 17/17 INV)PD-298-besoin.md(document de référence)
2. Synthèse review (Phase 1 — Claude)¶
4 bloquants signalés, 32 majeurs, 21 mineurs. Analyse détaillée dans PD-298-review-step3.md.
3. Synthèse confrontation (Phase 2 — Codex/ChatGPT)¶
14 convergences confirmées, 4 divergences, 7 zones d'ombre. Détail dans PD-298-confrontation-step3.md.
4. Écarts après confrontation¶
Écarts reclassés (faux positifs P1)¶
| ID | Écart P1 | Reclassification | Justification |
|---|---|---|---|
| A-01 | Regex D-287-03 absente | MINEUR (pas bloquant) | La regex existe dans PD-287 §5.1 D-287-03. Le besoin PD-298 la référence. La spec peut l'inclure pour autonomie documentaire mais ce n'est pas bloquant — le plan d'implémentation y aura accès. |
| A-05 | Textes ARB-7/ARB-8 absents | MINEUR | ARB-7 est cité textuellement dans PD-298-besoin.md §OBJ-4 et INV-298-02. ARB-8 est décrit dans ARB-5. Les textes existent et sont traçables. |
| NT-03 | Non-testabilité ARB-⅞ | ANNULÉ | Conséquence directe de A-05 reclassé. Les textes sont disponibles dans le corpus PD-287+PD-298. |
Écarts confirmés¶
| ID | Type | Gravité | Description |
|---|---|---|---|
| A-02 | AMB | MAJEUR | Masquage IPv6 non canonique — pas de règle de rendu standard citée |
| A-03 | AMB | MAJEUR | drmWarningSeen : mécanisme de stockage non spécifié (AsyncStorage vs MMKV), politique reset au logout/reinstall |
| A-04 | AMB | MAJEUR | Contenu RGPD : champs minimaux (finalité, base légale, durée, droits) non listés explicitement dans la spec |
| A-06 | AMB | MAJEUR | Borne max maxViews backend non fournie |
| A-07 | AMB | MAJEUR | Mapping eventType backend→UI non figé (labels FR) |
| C-03 | ECT | MAJEUR | FSM UI simplifiée vs FSM backend PD-287 (OTP_BLOCKED→ACTIVE absent côté UI) |
| S-07 | SEC | MAJEUR | Aucun rate-limit/throttling UI (anti-spam création) |
| S-08 | SEC | MAJEUR | Message d'erreur 403 non normalisé (risque de fuite backend) |
| A-08 | AMB | MINEUR | Normalisation email (trim, lowercase) non contractualisée explicitement |
| A-10 | AMB | MINEUR | Durée notificationsEnabled feedback (toast vs inline) non spécifiée |
| C-06 | ECT | MINEUR | Self-loops absents de la matrice §5.5 |
| C-07 | ECT | MINEUR | Diagramme séquence incomplet (manque révocation + pagination) |
| DIV-01 | DIV | MINEUR | Epic reference incohérente (non fournie vs EPIC-XX placeholder) |
5. Scoring¶
| Critère | Score | Justification |
|---|---|---|
| completeness | 8.0 | 17 invariants couverts, matrice exhaustive, mais 5 données manquantes (regex, maxViews, eventType, IPv6, RGPD texte) |
| testability | 7.5 | Matrice 17/17 mais 7 règles marquées "non testables" par Codex (la plupart reclassées après confrontation — 2 réelles : IPv6 et RGPD texte exact) |
| clarity | 8.0 | Spec bien structurée, sections canoniques, diagrammes Mermaid. Quelques ambiguïtés mineures (stockage local, normalisation email) |
| traceability | 8.5 | INV→CA→TC traçés dans la matrice, flux numérotés, références PD-287 explicites. Epic placeholder à corriger. |
Moyenne : (8.0 + 7.5 + 8.0 + 8.5) / 4 = 8.0
6. Déviations restantes¶
- 0 BLOQUANT (après reclassification)
- 8 MAJEUR
- 5 MINEUR
Dossier établi par l'orchestrateur Claude — Gate 3 v1.