Aller au contenu

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

Gate : CONFORMITY_CHECK

Story : PD-180 — Webhooks événements utilisateur

Date : 2026-03-07


1. Documents évalués

  • PD-180-specification.md (auteur: ChatGPT gpt-5.3-codex)
  • PD-180-tests.md (auteur: ChatGPT gpt-5.3-codex)
  • PD-180-besoin.md (référence)

2. Sources d'analyse

  • Review P1 (Claude) : 15 constats
  • Confrontation P2 (ChatGPT) : 2 divergences, 10 zones d'ombre

3. Écarts identifiés

BLOQUANTS (4)

ID Type Description Source
ECT-01 Ambiguïté Codes HTTP de succès livraison non définis (200 seul ? 2xx ?) — impossible de déterminer DELIVERED vs RETRY R-02
ECT-02 Contradiction INV-07 (append-only, aucun DELETE) vs CA-08 (rétention 30j) — mutuellement contradictoires R-03
ECT-03 SEC Protection SSRF incomplète — URLs vers IP privées (RFC 1918, loopback, link-local) non bloquées R-05
ECT-04 Ambiguïté Canonicalisation JSON pour signature HMAC non définie — vérification non reproductible R-06

MAJEURS (7)

ID Type Description Source
ECT-05 Contradiction ERR-05/ERR-06 décrivent comportement récepteur, pas émetteur R-01
ECT-06 Incohérence 6 tests d'invariants (TC-INV-*) dans la matrice sans scénario GWT R-04
ECT-07 Hypothèse Race condition rotation secret vs worker BullMQ ayant lu l'ancien secret R-09
ECT-08 Ambiguïté INV-01 (zero-knowledge) non vérifiable sans schéma JSON contractuel du payload R-10
ECT-09 Ambiguïté Encodage data.hash non spécifié (hex/base64/base64url) — impact signature R-12
ECT-10 Ambiguïté Politique retry: seules 4 tentatives sur 10 ont un délai défini R-13
ECT-11 SEC Secret HMAC sans longueur minimale ni exigence CSPRNG — brute-force possible R-14

MINEURS (4)

ID Type Description Source
ECT-12 Ambiguïté Code quota dépassé: "409 ou 422" — contrat doit fixer un seul code R-07
ECT-13 Contradiction État DELETED "terminal" mais "résolution manuelle" mentionnée R-08
ECT-14 Ambiguïté Fenêtre rate-limit: glissante vs fixe non définie R-11
ECT-15 Incohérence TC-NEG-01 teste ftp:/javascript: non spécifiés dans INV-04 R-15

4. Scoring par critère

Critère Écarts assignés Score
completeness ECT-01 (BLOQ), ECT-09 (MAJ), ECT-10 (MAJ), ECT-11 (MAJ) 10 - 2 - 3 = 5.0
testability ECT-06 (MAJ), ECT-08 (MAJ), ECT-15 (MIN) 10 - 2 - 0.25 = 7.75
clarity ECT-02 (BLOQ), ECT-04 (BLOQ), ECT-05 (MAJ), ECT-07 (MAJ), ECT-12 (MIN), ECT-13 (MIN) 10 - 4 - 2 - 0.5 = 3.5
traceability ECT-03 (BLOQ), ECT-14 (MIN) 10 - 2 - 0.25 = 7.75

Moyenne : (5.0 + 7.75 + 3.5 + 7.75) / 4 = 6.0

5. Verdict attendu

  • Moyenne 6.0 < 7 → NON_CONFORME
  • completeness 5.0 < 6 → NON_CONFORME (score < 6 = NON_CONFORME systématique)
  • clarity 3.5 < 6 → NON_CONFORME