Aller au contenu

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)

  1. Endpoint POST urgent formalisé POST /seals/urgent { document_id } + ref H-284-01/PD-80 ✅
  2. Cache event_id : politique FIFO explicite (pas LRU) ✅
  3. Mapping INV-284-05 → CA-284-11 (était CA-284-07) ✅
  4. Fenêtre de grâce 200ms avant détection gap sequence_number ✅
  5. Plafond cumulé backoff sse_reconnect_max_cumulative_delay 30s ✅
  6. tsa_token_ref : format ASCII (était "UTF-8") ✅
  7. Mapping TC-NOM-04 → CA-284-05 (était CA-284-04) ✅
  8. Mapping TC-NOM-15 → CA-284-04 (était CA-284-03) ✅
  9. Enum degradation_flag formalisé : none | delayed | critical
  10. Politique purge artefacts sensibles Keychain : logout + deleteAccount + iCloud-proof ✅
  11. Re-tentative SSE depuis polling : tentative à chaque cycle polling ✅
  12. Déduplication silencieuse : telemetry debug only, pas de toast ✅
  13. TTL heartbeat SSE formalisé : 30s défaut (H-284-02) ✅
  14. 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

  1. 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.
  2. R-02 : Échec GET status post-POST — cas d'erreur ajouté dans §6 comme "retry 1 fois puis abandon carte" — à formaliser.
  3. R-03 : Défaut has_active_urgent_seal invalide → false (fail-open) — acceptable si PD-80 backend idempotent (hypothèse H-284-07 à ajouter).