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é)
- 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
- AMB-02 : Figer l'ordre de tri GRH (recommandé : tri lexicographique sur hex lowercase des merkle_root)
- SEC-03 : Ajouter signature SHA-3 du manifest + stockage WORM ou registre tiers
- AMB-04 : Définir lisibilité opérationnellement (ouverture fichier + MIME + head 1KB sans erreur)
- ECT-11 : Fournir JSON Schema du manifest et de l'attestation
- AMB-06 : Figer precheck_ttl max à 72h (raisonnable) ou exiger snapshot incrémental