Aller au contenu

PD-296 — Plan d’implémentation : Revue

1. Références

2. Constatations (écarts)

Type Référence (Spec/Test/Plan) Description Impact Gravité (BLOQUANT/MAJEUR/MINEUR)
Non-conformité Spec Spec INV-296-01, D-296-03/04/05, §5.5 / Plan §Résolution, §3 (INV-296-01), §413-424 Le plan redéfinit le contrat à 6 checkpoints et introduit GATE3_SPEC_FORMAL, GATE3_REVIEW_START, formal_spec, absents du modèle canonique. Rupture de conformité du modèle contractuel et des enums de données. BLOQUANT
Non-conformité Spec Spec §5.4 (PASSED -> * interdit), INV-296-13 / Plan §2.3, H-PLAN-06 Le plan autorise PASSED -> PENDING via --force-recheck. FSM contractuelle non fermée, transition interdite rendue possible. BLOQUANT
Non-conformité Spec Spec D-296-10 / Plan H-PLAN-02, §7 (artifact_path) Le plan remplace la regex canonique artifact_path par une regex dynamique basée sur GOV_WORKSPACE_ROOT. Contrat de donnée D-296-10 modifié unilatéralement. MAJEUR
Non-conformité Spec Spec INV-296-09, ERR-296-13 / Plan §3 (INV-296-09), §4 (CA-296-08), §7 Le plan étend le blocage à DONE_ANOMALY et REJECTED alors que la spec contractualise Done. Règle supplémentaire non spécifiée. MAJEUR
Couverture manquante INV-296-18, INV-296-10 / Plan §9.2, §Périmètre de test Le plan place l’exhaustivité 8 projets hors scope E2E et retient un échantillonnage ≥2. Couverture intégrale des invariants non démontrable. BLOQUANT
Test irréalisable TC-NOM-07 (tests §3, §2 matrice) / Plan §5.1 (TC-NOM-07), §394, §413-424 TC-NOM-07 exige 8 stories et exactement 5 checkpoints; le plan vise 6 checkpoints et un échantillonnage. TC contractuel inexécutable tel que défini. BLOQUANT
Test irréalisable TC-NOM-09 / Plan §413-424 TC-NOM-09 suppose une exécution complète à 5 checkpoints PASSED; le plan contractualise 6 checkpoints. Incohérence directe scénario vs mécanisme. BLOQUANT
Test irréalisable TC-NEG-12, INV-296-13 / Plan §2.3, H-PLAN-06 TC-NEG-12 impose le rejet de toute sortie depuis PASSED; le plan autorise un cas de sortie. Test d’invariant FSM non passable. BLOQUANT
Test irréalisable TC-NOM-08, Tests §8 (observabilité) / Plan §5.1 (TC-NOM-08), §7 Le plan se limite à grep documentaire et ne décrit ni export probatoire vérifiable ni événement signé/hashé. Points d’observabilité contractuels absents pour la preuve. BLOQUANT
Hypothèse implicite Spec §5.6 (reconciliation_interval_sec) / Plan §3 (INV-296-15), H-PLAN-05 Le mécanisme “cron-like scan” suppose un scheduler opérationnel non décrit contractuellement. Réconciliation potentiellement non exécutée en conditions réelles. MAJEUR
Hypothèse implicite Plan §2.1, §6 / Absence section Contraintes techniques Disponibilité de uuidgen, sha256sum, timeout, flock, jq, claude, swipl, alloy supposée. FAIL_CLOSED systématique ou comportement non déterministe selon environnement. MAJEUR
Risque sécu/conformité Tests §8 (événement signé/export probatoire) / Plan §7 (.gov-local.json append-only) L’audit repose sur un fichier local modifiable sans preuve d’intégrité cryptographique décrite. Rupture d’auditabilité et de probativité externe. MAJEUR
Risque sécu/conformité Spec §5.7 (“aucun bypass”) / Plan §3-§4 (risque “transition Jira hors workflow”) Le contrôle repose sur des guards locaux /gov; le contournement hors commandes est explicitement reconnu comme risque. Invariants bloquants potentiellement contournables. MAJEUR
Code Contract — Invariant Code contracts C2/C6 / Spec INV-296-01, D-296-03/04/05 Les invariants de contrats imposent 6 checkpoints / 6 triggers, non conformes au référentiel canonique. Invariants de code contracts hors sous-ensemble de la spec. BLOQUANT
Code Contract — Invariant Code contracts C2 (PASSED→* sans flag --force-recheck) / Spec §5.4 Le contrat introduit une exception --force-recheck sur un état terminal contractuel. Contradiction directe avec la machine d’états canonique. BLOQUANT
Code Contract — Complétude Plan §3 (INV-296-05 mention gov-impl.md) / Code contracts C4 files gov-impl.md est utilisé dans le plan mais absent du périmètre de fichiers contracté C4. Frontière de responsabilité incomplète pour audit tiers. MAJEUR
Code Contract — Forbidden Code contracts C1 (“artifact_path hardcodé” interdit) / Spec D-296-10 Le pattern “forbidden” contredit une exigence explicite de la spec (regex hardcodée). Règle forbidden non justifiée par le contrat canonique. MAJEUR
Contrainte technique non documentée Plan (absence section “Contraintes techniques”) Les dépendances inter-PD avec statut DONE/TODO/STUB ne sont pas documentées. Traçabilité de dépendances incomplète. MINEUR
Contrainte technique non documentée Plan (absence section “Contraintes techniques”) Aucun choix explicite Jest ou Vitest. Ambiguïté de runner de tests. MAJEUR
Contrainte technique non documentée Plan (absence section “Contraintes techniques”) Compatibilité ESM/CJS et dépendances ESM-only non documentées. Risque d’échec d’exécution des tests/outils selon runtime. MAJEUR
Contrainte technique non documentée Plan (absence section “Contraintes techniques”) Variables CI (DATABASE_URL, CI=true, etc.) non documentées. Reproductibilité CI partielle. MINEUR

3. Synthèse

  • Nombre d’écarts par gravité : BLOQUANT = 9, MAJEUR = 10, MINEUR = 2.
  • Points critiques :
  • Écarts contractuels structurants (5 checkpoints canonique, FSM terminale) non respectés.
  • Plusieurs tests contractuels deviennent inexécutables (TC-NOM-07, TC-NOM-09, TC-NEG-12, observabilité probatoire).
  • Code contracts non alignés sur le sous-ensemble d’invariants de la spec.
  • Contraintes techniques attendues non documentées.

4. Verdict de la revue

  • Statut : ⛔ Rejeté
  • Motif synthétique : non-conformités contractuelles bloquantes + tests contractuels irréalisables + incohérences code contracts/spec.

Note d’exécution : le sandbox est en lecture seule (Operation not permitted), je ne peux pas écrire physiquement PD-296-plan-review.md dans le workspace.