Aller au contenu

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

Story : PD-293 — One Ring : orchestration multi-stories via claude-peers + contrôle iPhone Gate : 3 — CONFORMITY_CHECK Itération : v1 Date : 2026-03-30 P1 (Review) : Claude -p P2 (Confrontation) : ChatGPT (gpt-5.3-codex)

1. Documents audités

Document Auteur Taille
PD-293-specification.md ChatGPT 15KB
PD-293-tests.md ChatGPT 15KB

2. Synthèse des écarts

Écarts de la Review (Phase 1 — Claude)

ID Type Gravité Description
ÉCART-01 AMB MAJEUR Regex story_id ^PD-[0-9]{1,4}$ incohérente avec contrainte "5-9 chars"
ÉCART-02 AMB MINEUR Sémantique start avec même story_id mais idempotency_key différente non contractualisée
ÉCART-03 AMB MINEUR peer_id "printable UTF-8" non défini formellement
ÉCART-04 AMB MINEUR Double source de vérité case-sensitivity (textuel vs regex)
ÉCART-05 AMB MAJEUR Seuil 30s crash vs fréquence polling 10s — détection réelle 10-20s non contractualisée
ÉCART-06 AMB BLOQUANT État ESCALADE_PENDING dans spec textuelle absent du diagramme Mermaid
ÉCART-07 AMB MAJEUR Commande PAUSE/RESUME sans skill /gov-lord correspondant
ÉCART-08 AMB MAJEUR Timeout création Ringbearer 30s vs découverte post-start non contractualisée
ÉCART-09 AMB MAJEUR Persistance .gov-lord-state.json format exact non spécifié
ÉCART-10 AMB MINEUR Comportement reconnexion broker après crash non spécifié
ÉCART-11 AMB MAJEUR Validation format message — critère "rejet avec log" sans format de log
ÉCART-12 AMB MINEUR CA-06 (/remote-control iPhone) non testable unitairement
ÉCART-13 AMB MAJEUR Ordre de vérification des gardes (quota vs doublon vs format) non spécifié
ÉCART-14 AMB BLOQUANT État ESCALADE_EXPIRED mentionné §5.1 sans intégration dans la machine d'états
ÉCART-15 AMB MINEUR project_code enum ne contient pas "ia-governance" (projet de la story)
ÉCART-16 AMB MAJEUR Comportement multi-escalade simultanée (file vs remplacement) non spécifié
ÉCART-17 AMB MINEUR Version claude-peers-mcp non verrouillée

Écarts de la Confrontation (Phase 2 — ChatGPT)

ID Type Gravité Description
DIV-01 DIV MAJEUR Référence epic incohérente entre spec ("non fournie") et tests ("EPIC-XX")
DIV-02 DIV MAJEUR Exemple ia-gov invalide selon enum project_code
DIV-03 DIV MAJEUR État ESCALADE_EXPIRED introduit sans intégration machine d'états (confirme ÉCART-14)

Zones d'ombre

  • ZO-01 : Contrat mobile iPhone non borné (matrice iOS/Safari non définie)
  • ZO-02 : Format peer_id volontairement opaque — pas de critère d'interopérabilité
  • ZO-03 : Politique reprise One Ring après crash = question ouverte (Q-293-04)
  • ZO-04 : Sémantique PAUSE/RESUME sans commande /gov-lord explicite

3. Scoring

Critères CONFORMITY_CHECK (Gate 3) :

Critère Score Justification
completeness 6.5 2 BLOQUANTS (ÉCART-06, ÉCART-14 : états machine non intégrés), 2 MAJEURS supplémentaires sur complétude (ÉCART-07, ÉCART-09)
testability 7.0 Tests couvrent bien les invariants mais CA-06 non testable, 1 MINEUR (ÉCART-12)
clarity 6.0 8 MAJEURS d'ambiguïté au total, regex incohérente (ÉCART-01), double source vérité
traceability 7.5 DIV-01 (epic ref manquante), DIV-02 (exemple invalide), le reste bien tracé

Décompte : 2 BLOQUANTS × (-2) = -4, 11 MAJEURS × (-1) = -11, 7 MINEURS × (-0.25) = -1.75 Score brut moyen : (6.5 + 7.0 + 6.0 + 7.5) / 4 = 6.75

4. Verdict attendu

  • Moyenne 6.75 < 7 → NON_CONFORME
  • completeness 6.5 et clarity 6.0 < 8 → confirme NON_CONFORME