PD-297 — Rapport de confrontation (Étape 3)¶
Ce rapport est produit par l'orchestrateur Claude avant chaque gate PMO.
Il confronte les documents produits pour identifier convergences, divergences et zones d'ombre.
1. Sources confrontées¶
- Document d'entrée SPECIFICATION : PD-297 — Boucle d’enrichissement formel contractuelle (capitalisation inter-stories) (étape Spécification)
- Document d'entrée TESTS : PD-297 — Scénarios de tests contractuels (étape QA/Validation)
2. Convergences¶
- FSM contractuelle alignée (mêmes états et rejets des transitions hors contrat). Réf : SPEC
INV-297-09..19, §5.5 ; TESTS §2 (INV-297-09..19),TC-ERR-10,TC-ERR-11. - Append-only et interdiction de mutation/suppression alignés. Réf : SPEC
INV-297-01,ERR-297-05; TESTSTC-ERR-05,TC-NR-01. - Traçabilité
story_id + trace_sourcealignée. Réf : SPECINV-297-02,D-297-16; TESTSTC-NOM-02,TC-NEG-01. - Idempotence stricte alignée (replay identique, collision refusée). Réf : SPEC
INV-297-03, §5.6 ; TESTSTC-NOM-05,TC-ERR-03. - Obligation des 4 formalismes alignée. Réf : SPEC
INV-297-07,F-297-03; TESTSTC-NOM-03,TC-NEG-03. - Fail-closed aligné (outil indisponible/timeout/erreur interne =>
FAIL). Réf : SPECINV-297-05,ERR-297-07,ERR-297-08; TESTSTC-ERR-07,TC-ERR-08,TC-ERR-13. - Scopes
contracts|code|fullalignés surGO|FAILuniquement,SKIPinterdit. Réf : SPECINV-297-06,F-297-05; TESTSTC-NOM-04,TC-ERR-09. - Guard de clôture step 10 aligné (
job_state != DONE=> clôture refusée). Réf : SPECINV-297-21; TESTSTC-NOM-07,TC-NEG-04. - Mécanismes distribués globalement alignés (lock, idempotence, réconciliation, rate-limit, clearing). Réf : SPEC §5.6 ; TESTS
TC-ERR-02,TC-NR-03,TC-NR-04,TC-NEG-09.
3. Divergences¶
⚠️ Les conflits ne doivent JAMAIS être lissés. Chaque divergence est rendue visible.
-
DIV-01 : Référence épique incohérente.
Source A (SPECIFICATION) : Références = « Epic : Référence épique non fournie », +Q-297-01.
Source B (TESTS) : §1 Références = « Epic : EPIC-XX ».
Impact : traçabilité PMO/Jira non univoque. -
DIV-02 : Contradiction sur la testabilité globale du contrat.
Source A (SPECIFICATION) :INV-297-22impose la testabilité de toute règle (sinon hors périmètre).
Source B (TESTS) : §10 Verdict QA = « Testable intégralement : Non » ; §9 liste 5 éléments non testables.
Impact : conflit de lecture pour la gate (contrat annoncé vérifiable vs validation partielle). -
DIV-03 : Exigence de signature d’audit présente dans TESTS mais non contractualisée dans la SPEC.
Source A (SPECIFICATION) : traçabilité définie (D-297-16,D-297-21) sans contrat de signature explicite.
Source B (TESTS) :TC-NOM-01exige « Audit signé » ; §8 exige « Événement signé / horodaté ».
Impact : critère QA non rattaché à un format/protocole contractuel. -
DIV-04 : Incohérence de traçabilité invariant/critère dans la matrice TESTS.
Source A (SPECIFICATION) :INV-297-11= entrée uniquePENDING -> EXTRACTING;CA-297-15= guard de clôture.
Source B (TESTS) : §2 associeINV-297-11àCA-297-15tout en commentant l’entrée nominale unique.
Impact : preuve de couverture ambiguë en audit.
4. Zones d'ombre¶
- Routage canonique
story_id -> normenon spécifié opérationnellement. - Format sémantique canonique de
detailsdansformal_result_jsonnon défini. - Stratégie inter-repo de versionnement/résolution de conflits append-only non définie.
- Portée globale Jira
Donevs guard localjob_state != DONEnon tranchée. - Sémantique lock au retour
FAILED_BLOCKING -> PENDING(maintien/libération/réacquisition) non explicitée. - Politique de conservation long terme des métadonnées d’idempotence non couverte.
5. Recommandation¶
- Procéder — convergence confirmée, aucun conflit bloquant
- Rework nécessaire — divergences à résoudre avant de continuer
- Escalade — décision humaine requise sur un point structurant