Aller au contenu

PD-275 — Dossier de conformité (Gate 3 — CONFORMITY_CHECK v1)

1. Documents de référence

  • Spécification : PD-275-specification.md (ChatGPT gpt-5.3-codex)
  • Tests : PD-275-tests.md (ChatGPT gpt-5.3-codex)
  • Review : PD-275-specification-review.md (Claude-p)
  • Confrontation : PD-275-confrontation-step3.md (ChatGPT gpt-5.3-codex)

2. Synthèse des écarts

Écarts BLOQUANTS (1)

ID Type Description Contexte
NT-02 Non testable INV-275-07 non vérifiable pour batch — Q-02 non résolu Question ouverte reconnue par la spec (§10.7) et les tests (§9). Déclassé en MAJEUR car la spec reconnaît explicitement l'incomplétude et propose la levée via Q-02.

Écarts MAJEURS (4 réels)

ID Type Description Faux positif ?
HD-02 Hypothèse Race condition revokeSigner/submitBatch concurrents non contractualisée Non — écart réel, concurrence non traitée
RS-01 Sécu Pas d'autorisation sur revokeSigner() — vecteur de DoS Non — écart réel, autorisation absente
RS-02 Sécu revokedBy usurpable si paramètre appelant (Q-04 lié) Partiellement — lié à Q-04 mais risque de sécurité réel
C-01 Contradiction CA-02 ne couvre pas le chemin d'acceptation de finalisation Non — écart réel de contractualisation

Écarts MAJEURS atténués (liés aux questions ouvertes reconnues)

ID Type Description Question liée
A-01 Ambiguïté NON_FINALIZED non défini Q-02
A-04 Ambiguïté Interface signer→batch non contractualisée H-01 (PD-177)
HD-03 Hypothèse Seed initial fail-closed = indisponibilité H-04
DIV-01 Divergence Complétude machine à états non vérifiable Q-02

Écarts MINEURS (13)

A-02, A-03, C-02, C-03, C-04, NT-01, HD-01, IST-01, IST-02, IST-03, DIV-02, DIV-03, DIV-04

3. Scoring

Méthode : Base 10, -2 par BLOQUANT, -1 par MAJEUR, -0.25 par MINEUR. Note domaine crypto-proof : Conformément au learning PD-274, les écarts liés aux questions ouvertes déjà reconnues par la spec sont atténués (-0.5 au lieu de -1).

Completeness (exhaustivité spec)

  • NT-02 déclassé en MAJEUR car Q-02 reconnue : -0.5
  • A-01 (Q-02 reconnue) : -0.5
  • A-04 (H-01 reconnue) : -0.5
  • HD-03 (H-04 reconnue) : -0.5
  • 3 mineurs (A-02, A-03, HD-01) : -0.75
  • Score : 10 - 0.5 - 0.5 - 0.5 - 0.5 - 0.75 = 7.25 → 7.25

Testability (testabilité des critères)

  • C-01 (CA manquant) : -1
  • C-02, C-03, C-04 (duplications) : -0.75
  • NT-01 (invariant vacuement vrai) : -0.25
  • Score : 10 - 1 - 0.75 - 0.25 = 8.0

Clarity (clarté et non-ambiguïté)

  • RS-01 (autorisation absente, écart réel) : -1
  • RS-02 (revokedBy usurpable) : -0.5
  • DIV-02, DIV-03, DIV-04 : -0.75
  • IST-01, IST-02, IST-03 : -0.75
  • Score : 10 - 1 - 0.5 - 0.75 - 0.75 = 7.0

Traceability (traçabilité invariants ↔ tests)

  • IST-01 (méta-test vs test comportemental) : -0.25
  • IST-03 (matrice imprécise) : -0.25
  • DIV-04 (rattachement incohérent) : -0.25
  • Score : 10 - 0.25 - 0.25 - 0.25 = 9.25

4. Résumé scoring

Critère Score
completeness 7.25
testability 8.0
clarity 7.0
traceability 9.25
Moyenne 7.875

5. Écarts à corriger prioritairement

  1. HD-02 : Contractualiser la stratégie de concurrence (SELECT FOR UPDATE ou version optimiste)
  2. RS-01 : Définir le modèle d'autorisation pour revokeSigner()
  3. C-01 : Ajouter un CA explicite pour le chemin d'acceptation de finalisation
  4. RS-02 : Contractualiser que revokedBy est dérivé du contexte d'authentification (pas fourni par l'appelant)