Aller au contenu

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

Gate : CONFORMITY_CHECK | Story : PD-276 | Itération : v1

1. Documents de référence

Document Source Étape
PD-276-specification.md ChatGPT gpt-5.3-codex 1
PD-276-tests.md ChatGPT gpt-5.3-codex 2
PD-276-review-step3.md Claude (claude -p) 3.1
PD-276-confrontation-step3.md ChatGPT gpt-5.3-codex 3.2

2. Synthèse des écarts

BLOQUANT (1)

ID Type Référence Description Source
ECT-01 Contradiction INV-276-08 vs §2 "hors périmètre" vs §9 INV-276-08 (secrets en clair) maintenu comme exigence obligatoire alors que les règles non testables sont déclarées hors périmètre ; tests reconnaissent l'impossibilité de preuve exhaustive. Contradiction sur le statut même de cet invariant. Review #1 + DIV-01 + ZO-3

MAJEUR (7)

ID Type Référence Description Source
ECT-02 Contradiction INV-276-01 vs INV-276-09 (deriveKey) Le fait Prolog service_method(argon2, deriveKey) contredit le principe "validation seule" (zero-knowledge). Frontière "nom formel" vs "comportement interdit" non explicitée. Review #2 + ZO-2
ECT-03 Contradiction E-06 (403) vs H-276-05 / Q-276-03 Code HTTP 403 fixé dans E-06 mais déclaré "à clarifier" dans les hypothèses. Risque de faux négatifs QA si l'assertion HTTP est figée différemment. Review #3 + DIV-02
AMB-04 Ambiguïté Q-276-02 (LEGACY phase 1) Politique d'accès aux enveloppes LEGACY (autoriser, forcer rotation, bloquer) non définie. Pas d'oracle unique pour les tests de compatibilité transitoire. Review #4 + DIV-03
ECT-05 Incohérence Spec↔Tests INV-276-11 (LEGACY→TAMPERED) Transition autorisée dans la spec mais aucun test ne la couvre. Review #5
ECT-06 Incohérence Spec↔Tests CA-276-12 vs §9 tests CA présenté comme testable mais tests le classent "partiel/probatoire". Review #6
SEC-07 Risque sécu/conformité Journaux d'audit signés Requis dans les tests comme prérequis d'observabilité mais non contractualisé dans les invariants spec. Review #9
ECT-08 Hypothèse dangereuse H-276-02 (atomicité Prolog) Le 24/24 dépend entièrement de l'hypothèse que les checks ne consomment que des faits générés. Contrôle d'intégrité des règles Prolog sans protocole opérationnel. Review #8 + ZO-4

MINEUR (3)

ID Type Référence Description Source
AMB-09 Non testable "Rejet immédiat" (F4, E-06) Pas de borne temporelle définie pour "immédiat". Review #10
ECT-10 Traçabilité Epic "non fournie" vs "EPIC-XX" Référence épique incohérente entre spec et tests. Review #11 + ZO-1
ECT-11 Non testable Triggers existants Pas de baseline comportementale ni d'oracle pour "aucun changement de comportement". Review #7

3. Convergences confirmées (Phase 2)

  • Objectif 24/24 checks Prolog sans modification des règles
  • Contrat Argon2id serveur : validation uniquement, bornes OWASP
  • Configuration centralisée exposée par endpoint
  • Metadata binding : metadata_tag 32 bytes, vérification avant accès
  • Migration 2 phases (NULL → NOT NULL) avec rollback
  • Machine à états : interdiction downgrade BOUND→LEGACY, terminalité TAMPERED

4. Scoring

Critère Score Justification
completeness 6.0 1 BLOQUANT (INV-276-08 contradictoire), politique LEGACY non définie, journaux d'audit non contractualisés
testability 5.5 1 BLOQUANT testabilité (INV-276-08), transition LEGACY→TAMPERED non testée, CA-276-12 partiel, "immédiat" sans borne
clarity 6.5 Sémantique deriveKey ambiguë, code 403 contradictoire, LEGACY indéterminé
traceability 7.0 Référence épique incohérente, journaux d'audit non tracés comme invariant

Score moyen : 6.25

5. Verdict préliminaire

Avec un score moyen de 6.25 (< 7) et deux scores < 6 (testability = 5.5), le verdict attendu est NON_CONFORME.


Dossier assemblé par l'orchestrateur Claude le 2026-02-28.