PD-284 — Dossier de conformité Gate 3 (v3)¶
Date : 2026-03-13 Gate : CONFORMITY_CHECK Itération : v3 P1 (Review) : Claude — PD-284-review-step3-v3.md P2 (Confrontation) : ChatGPT (via OpenCode, prompt condensé — fallback Ollama agentic) — PD-284-confrontation-step3-v3.md
Corrections v3 appliquées (14 écarts v2 traités)¶
- Endpoint POST urgent formalisé
POST /seals/urgent { document_id }+ ref H-284-01/PD-80 ✅ - Cache event_id : politique FIFO explicite (pas LRU) ✅
- Mapping INV-284-05 → CA-284-11 (était CA-284-07) ✅
- Fenêtre de grâce 200ms avant détection gap sequence_number ✅
- Plafond cumulé backoff
sse_reconnect_max_cumulative_delay30s ✅ tsa_token_ref: format ASCII (était "UTF-8") ✅- Mapping TC-NOM-04 → CA-284-05 (était CA-284-04) ✅
- Mapping TC-NOM-15 → CA-284-04 (était CA-284-03) ✅
- Enum
degradation_flagformalisé :none | delayed | critical✅ - Politique purge artefacts sensibles Keychain : logout + deleteAccount + iCloud-proof ✅
- Re-tentative SSE depuis polling : tentative à chaque cycle polling ✅
- Déduplication silencieuse : telemetry debug only, pas de toast ✅
- TTL heartbeat SSE formalisé : 30s défaut (H-284-02) ✅
- Règle
tsa_token_ref→ testable (format ASCII + regex formalisés) ✅
Écarts résiduels v3¶
| # | Type | Gravité | P1 | P2 | Description |
|---|---|---|---|---|---|
| E-01 | Incohérence Spec↔Tests | MAJEUR | Majeur | CONFIRMÉ Majeur | 4 refs CA croisées incorrectes dans matrice (INV-284-08→CA-284-08/09, INV-284-09→CA-284-06) |
| E-02 | Incohérence Tests | Mineur | Mineur | INFIRMÉ | Header TC-INV-09 dit "INV-284-09" mais teste INV-284-10 (matrice correcte) |
| E-03 | Ambiguïté | MAJEUR | Majeur | CONFIRMÉ Majeur | Échec GET /seals/{id}/status post-POST non couvert dans §6 ni tests |
| E-04 | Hypothèse dangereuse | MAJEUR | Majeur | CONFIRMÉ Bloquant | Défaut false pour has_active_urgent_seal invalide (fail-open). Atténuation : PD-80 assure idempotence backend. |
| E-08 | Ambiguïté | Mineur | Mineur | CONFIRMÉ Mineur | degradation_flag inconnu : "trace telemetry" (§5.3) vs "toast 5s" (§3 erreur contrôlée) |
| E-10 | Hypothèse dangereuse | Mineur | Mineur | CONFIRMÉ Mineur | Re-tentative SSE depuis polling sans backoff ni plafond |
| E-11 | Incohérence Spec↔Tests | Mineur | Mineur | CONFIRMÉ Mineur | Attribut Keychain iCloud-proof (kSecAttrAccessibleWhenUnlockedThisDeviceOnly) non testé dans TC-INV-09 |
Écarts P1 retirés après confrontation P2 : E-05 (contradiction non démontrée), E-06 (test non vérifiable), E-07 (CA potentiellement dans spec complète), E-09 (champ non dans extraits fournis).
Scoring v3¶
| Critère | v1 | v2 | v3 | Delta v2→v3 |
|---|---|---|---|---|
| completeness | 7.0 | 8.0 | 8.5 | +0.5 |
| testability | 6.0 | 7.5 | 8.0 | +0.5 |
| clarity | 7.0 | 8.0 | 8.5 | +0.5 |
| traceability | 7.25 | 7.5 | 7.5 | 0.0 |
| Moyenne | 6.81 | 7.75 | 8.13 | +0.38 |
Justification scoring : - completeness 8.5 : 0 bloquant (vs 2 en v1), endpoint formalisé, heartbeat TTL documenté, purge Keychain ajoutée. -0.5 pour GET status post-POST non couvert (E-03). - testability 8.0 : tsa_token_ref maintenant testable, dédup clarifiée. -0.5 pour TC-INV-11 sans GWHT, attribut Keychain non testé (E-11). - clarity 8.5 : FIFO tranché, degradation_flag enum formalisé, re-tentative SSE documentée. -0.5 pour ambiguïté toast vs trace (E-08). - traceability 7.5 : Mappings INV-284-05, TC-NOM-04, TC-NOM-15 corrigés. Mais 4 refs CA croisées encore incorrectes (E-01). -0.5.
Verdict préliminaire¶
Moyenne 8.13 >= 8.0 : tous critères >= 7.0, trois critères >= 8.0, un critère = 7.5 (traceability).
→ RESERVE (traceability < 8.0 à cause de E-01 : matrice de couverture INV-284-08/09 avec CA incorrects).
Réserves¶
- R-01 : Matrice couverture INV-284-08→CA-284-08/09 et INV-284-09→CA-284-06 (devrait être CA-284-12/13 et CA-284-10) — corrigeable immédiatement sans impact fonctionnel.
- R-02 : Échec GET status post-POST — cas d'erreur ajouté dans §6 comme "retry 1 fois puis abandon carte" — à formaliser.
- R-03 : Défaut
has_active_urgent_sealinvalide →false(fail-open) — acceptable si PD-80 backend idempotent (hypothèse H-284-07 à ajouter).