Aller au contenu

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

1. Documents de référence

  • Spécification : PD-275-specification.md v2 (ChatGPT gpt-5.3-codex, corrigée)
  • Tests : PD-275-tests.md (ChatGPT gpt-5.3-codex, inchangé depuis v1)
  • Review v2 : PD-275-review-step3-v2.md (Claude-p)
  • Confrontation v2 : PD-275-confrontation-step3-v2.md (ChatGPT gpt-5.3-codex)

2. Écarts v1 corrigés (confirmé P1 + P2)

ID v1 Description Correction v2
HD-02 Race condition revokeSigner/submitBatch INV-275-11 + INV-275-12 (SELECT FOR UPDATE, serialisation)
RS-01 Pas d'autorisation sur revokeSigner() INV-275-09 (ADMIN/SIGNER_ADMIN), CA-04b, ERR-REVOKE-UNAUTHORIZED
C-01 CA-02 ne couvre pas le chemin d'acceptation finalisation CA-02b ajouté
RS-02 revokedBy usurpable si paramètre appelant INV-275-10 (dérivé JWT sub), CA-04c, ERR-REVOKEDBY-SPOOFING

4/4 écarts v1 MAJEURS corrigés.

3. Écarts résiduels v2

Écarts MAJEURS (2 réels + 2 atténués)

ID Type Description Atténué ?
IST-05 Traçabilité Matrice de couverture tests (§2) non mise à jour pour INV-275-09/10/11/12 et CA-02b/04b/04c/05b. Tests T10-T13 existent dans spec mais non mappés dans doc tests Non — écart réel entre spec v2 et tests v1
DIV-01 Divergence TC-NOM-04 GIVEN dit "identité de révocation fournie pour revokedBy" vs INV-275-10 qui impose dérivation JWT Non — divergence réelle spec/tests
A-01 Ambiguïté Modèle batch partiel (NON_FINALIZED non défini) Oui — Q-02 reconnue
A-04 Ambiguïté Interface signer→batch non contractualisée Oui — H-01 (PD-177) reconnue

Note : HD-03 (seed fail-closed / Q-05) identifié par P1 est reclassé MINEUR — c'est une hypothèse opérationnelle reconnue (H-04/Q-05), pas un manque de spec.

Écarts MINEURS (12)

ID Type Description
C-02 Contradiction Duplication tests (spec vs tests)
C-03 Contradiction Duplication critères
C-04 Contradiction Chevauchement CA
A-02 Ambiguïté Terminologie mineure
A-03 Ambiguïté Précision secondaire
IST-01 Traçabilité Méta-test vs test comportemental
IST-02 Traçabilité Mapping INV imprécis
IST-03 Traçabilité Matrice v1 imprécise
IST-04 Traçabilité Référence CA-02 vs CA-02b dans tests
NT-01 Non testable Invariant vacuement vrai
HD-03 Hypothèse Seed initial fail-closed (Q-05)
DIV-04 Divergence Traçabilité CA-02/CA-02b mineures

4. Scoring

Méthode : Base 10, -1 par MAJEUR réel, -0.5 par MAJEUR atténué (question ouverte reconnue), -0.25 par MINEUR.

Completeness (exhaustivité spec)

  • A-01 (Q-02 reconnue) : -0.5
  • A-04 (H-01 reconnue) : -0.5
  • 3 mineurs (A-02, A-03, HD-03) : -0.75
  • Score : 10 - 0.5 - 0.5 - 0.75 = 8.25

Testability (testabilité des critères)

  • IST-05 (matrice tests non à jour pour v2) : -1
  • DIV-01 (TC-NOM-04 contradictoire INV-275-10) : -1
  • C-02, C-03, C-04 (duplications) : -0.75
  • NT-01 (invariant vacuement vrai) : -0.25
  • Score : 10 - 1 - 1 - 0.75 - 0.25 = 7.0

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

  • DIV-04 (traçabilité CA-02/CA-02b) : -0.25
  • IST-01, IST-02, IST-03, IST-04 : -1.0
  • Score : 10 - 0.25 - 1.0 = 8.75

Traceability (traçabilité invariants ↔ tests)

  • IST-05 (4 invariants v2 non mappés) : -1
  • IST-04 (CA-02 vs CA-02b) : -0.25
  • DIV-04 (mapping ambigu) : -0.25
  • Score : 10 - 1 - 0.25 - 0.25 = 8.5

5. Résumé scoring

Critère Score v1 Score v2 Delta
completeness 7.25 8.25 +1.0
testability 8.0 7.0 -1.0
clarity 7.0 8.75 +1.75
traceability 9.25 8.5 -0.75
Moyenne 7.875 8.125 +0.25

6. Analyse convergence

  • Delta = 8.125 - 7.875 = +0.25
  • Delta < 0.5 ET mean >= 7 → STOP — convergence atteinte
  • La spec v2 a corrigé les 4 écarts de sécurité/contractualisation (RS-01, RS-02, HD-02, C-01)
  • Le score testability baisse car la confrontation v2 identifie précisément le décalage tests/spec v2
  • Ce décalage (tests non mis à jour pour les invariants v2) est attendu : les tests seront alignés à l'étape 4 (plan) ou corrigés pre-Gate 5

7. Écarts à reporter

  1. IST-05 : Aligner matrice tests avec INV-275-09/10/11/12 avant Gate 5
  2. DIV-01 : Corriger TC-NOM-04 pour que revokedBy soit dérivé du JWT (pas fourni en entrée)