Aller au contenu

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

Date : 2026-03-13 Story : PD-254 — Protocole migration probatoire Gate : 3 — CONFORMITY_CHECK Itération : v1 Reviewers : Claude (P1 review), ChatGPT (P2 confrontation)


1. Documents analysés

Document Auteur Taille
PD-254-specification.md ChatGPT 21KB
PD-254-tests.md ChatGPT 542 lignes

2. Écarts identifiés

Bloquants (3)

ID Type Constat Source Impact
ECT-01 Contradiction Machine d'états incomplète : 5 statuts référencés hors §5.2 (INVALID_INPUT, INVALID_MANIFEST, CONCURRENT_EXECUTION_DENIED, ATTESTATION_FAILED, PRECHECK_EXPIRED) P1-C01, P2-DIV-02 INV-254-10 violé — transitions non définies
AMB-02 Ambiguïté Ordre de tri du Global Root Hash non défini (lexicographique hex ? par doc_id ?) P1-C02 INV-254-03, INV-254-09 non vérifiables — reproductibilité compromise
SEC-03 Sécurité Manifest non protégé contre altération — pas de signature, pas de WORM, pas de hash tiers P1-C06 INV-254-01 à 05 contournables — conformité NF Z42-013 §12.1 compromise

Majeurs (8)

ID Type Constat Source Impact
AMB-04 Ambiguïté « Lisibilité » non définie opérationnellement (quels critères objectifs ?) P1-C03 INV-254-05, CA-07 non vérifiables
AMB-05 Ambiguïté Dry-run postcheck : sémantique de « simulation F3 » non définie P1-C04 CA-08 non interprétable
AMB-06 Hypothèse dangereuse TOCTOU 720h entre precheck et cutover — aucun mécanisme de gel P1-C05 INV-254-01 à 05 faussement satisfaits
AMB-07 Ambiguïté INV-254-11 (envelope encryption) sans applicabilité dans PD-254 P1-C07 TC-INV-11 tautologique
AMB-08 Ambiguïté « Artefacts logiques » non défini pour idempotence P1-C08 TC-INV-09, TC-NEG-07 sans critère objectif
ECT-09 Incohérence Spec↔Tests Clearing conditionnel 3 cycles sans test dédié P1-C09 Mécanisme non vérifié
ECT-10 Incohérence Spec↔Tests protocol_version en hypothèse mais absent du modèle de données P1-C13 Reproductibilité non traçable
ECT-11 Incohérence Spec↔Tests Schéma JSON manifest/attestation non défini formellement P1-C15, P2-DIV-04 CA-02, CA-09 non exécutables

Mineurs (3)

ID Type Constat Source Impact
AMB-12 Ambiguïté Événement WORM non nommé (TC-INV-06 introduit WORM_VIOLATION_BLOCKED) P1-C10 Risque de divergence nommage
AMB-13 Ambiguïté « Initiateur » non défini pour rate-limiting P1-C11 Contournement rate-limit possible
AMB-14 Structurel Transitions retour documentées sous le mauvais état source P1-C12 Lisibilité dégradée

Divergences P1↔P2 additionnelles

ID Divergence Impact
DIV-01 Règle de sortie attestation : rollback obligatoire (spec) vs rollback OU incident (tests) Comportement non déterministe
DIV-03 Hors bornes readability_sample_count : clamp (spec) vs clamp ou rejet (tests) Résultat CI divergent

3. Scoring

Critère Score Justification
Completeness 5.5 5 états manquants dans la machine d'états, manifest non protégé, lisibilité non définie, schéma JSON absent
Testability 6.0 Matrice couverture complète mais 5 Q-points non figés, clearing non testé, dry-run postcheck non interprétable
Clarity 6.5 Structure solide mais 8 ambiguïtés majeures, termes non définis (lisibilité, artefacts logiques, initiateur)
Traceability 7.5 Bonne traçabilité INV→CA→TC, protocole_version manquant, références NF Z42-013 présentes

4. Verdict préliminaire

  • Moyenne : 6.375
  • Score min : 5.5 (Completeness)
  • Règle : Moyenne < 7 → NON_CONFORME
  • Score < 6 : Completeness = 5.5 → NON_CONFORME confirmé

5. Recommandations de correction (priorité)

  1. ECT-01 : Clarifier les 5 statuts — soit les intégrer comme états avec transitions, soit les déclarer codes d'erreur métier distincts de la machine d'états
  2. AMB-02 : Figer l'ordre de tri GRH (recommandé : tri lexicographique sur hex lowercase des merkle_root)
  3. SEC-03 : Ajouter signature SHA-3 du manifest + stockage WORM ou registre tiers
  4. AMB-04 : Définir lisibilité opérationnellement (ouverture fichier + MIME + head 1KB sans erreur)
  5. ECT-11 : Fournir JSON Schema du manifest et de l'attestation
  6. AMB-06 : Figer precheck_ttl max à 72h (raisonnable) ou exiger snapshot incrémental