Aller au contenu

PD-299 — 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

  • PD-299-specification.md (document d'entrée SPEC, base contractuelle)
  • PD-299-tests.md (document d'entrée TESTS, scénarios contractuels QA)

2. Convergences

  • Les deux documents convergent sur 45 tests contractuels sharing et couverture src/sharing/ >= 80% (INV-299-01/02, CA-299-01/02 ; TC-NOM-01/02, TC-NR-01).
  • Les deux documents convergent sur la garde propriétaire du CTA “Partager” (INV-299-03, F-299-02 ; TC-NOM-03, TC-ERR-02, TC-NEG-06).
  • Les deux documents convergent sur l’authentification réelle des appels sharing via Authorization: Bearer, avec annulation si token/header invalide (INV-299-04 ; TC-NOM-04, TC-ERR-03/04, TC-NEG-02).
  • Les deux documents convergent sur la télémétrie PII-free avec allowlist stricte et rejet Zod hors schéma (INV-299-05, D-299-09 ; TC-NOM-05, TC-ERR-05, TC-NEG-01).
  • Les deux documents convergent sur le fallback maskIp exact IP masquée indisponible sur entrée invalide (INV-299-06 ; TC-NOM-06, TC-ERR-06, TC-NEG-03).
  • Les deux documents convergent sur le blocage offline fail-closed (INV-299-07, F-299-06 ; TC-NOM-07, TC-ERR-07).
  • Les deux documents convergent sur 6c.bis après 6c et blocage step 7 si point cross-module manquant (INV-299-10/11 ; TC-NOM-09/10, TC-ERR-09).
  • Les deux documents convergent sur la règle Gate 8 zéro test app/backend: cap 6.0 + transition forcée CHECKING -> NON_CONFORME (INV-299-12/13 ; TC-NOM-11/12, TC-ERR-08, TC-NR-03).
  • Les deux documents convergent sur l’injection companion (arbitrages + invariants source) et la contrainte <= 2 KiB (INV-299-14, D-299-19 ; TC-NOM-13, TC-ERR-11, TC-NEG-04).
  • Les deux documents convergent sur detect-plan-extensions bloquant Gate 5 en présence d’UNRATIFIED (INV-299-17 ; TC-NOM-16/17, TC-ERR-10, TC-NR-05).
  • Les deux documents convergent sur A8 conforme uniquement avec preuve PO+LEGAL pour ARB-7/ARB-8/RGPD-90J (INV-299-09 ; TC-NOM-18, TC-ERR-12).
  • Les deux documents convergent sur FSM fermée et états terminaux sans sortie (INV-299-18 ; TC-NOM-19/20, TC-ERR-14, TC-NR-07).

3. Divergences

⚠️ Les conflits ne doivent JAMAIS être lissés. Chaque divergence est rendue visible.

  • DIV-01 : Référence Epic incohérente/non stabilisée.
    Source A (SPEC) : Q-299-01 + Références = Epic non renseignée.
    Source B (TESTS) : §1 Références = Epic : EPIC-XX.
    Impact : traçabilité portefeuille/Jira non alignée.

  • DIV-02 : Position de testabilité globale non alignée avec le cadrage périmètre.
    Source A (SPEC) : §2 indique « Toute règle non testable est hors périmètre » + A8 annoncé testable.
    Source B (TESTS) : §9 liste plusieurs règles non testables (impact majeur), §10 conclut « Testable partiellement ».
    Impact : statut de conformité pré-gate ambigu (testabilité contractuelle non totalement objectivable).

  • DIV-03 : Règle de calcul du cap zéro-test ambiguë.
    Source A (SPEC) : INV/CA/ERR imposent un forçage à 6.0, mais le diagramme de séquence indique min(raw_test_coverage, 6.0).
    Source B (TESTS) : TC-NOM-11 et TC-NR-03 valident un score final exactement 6.0.
    Impact : comportement non déterministe possible pour le cas raw_test_coverage < 6.0.

  • DIV-04 : Gestion de plan_extension_item.kind invalide non alignée.
    Source A (SPEC) : D-299-20 borne kind à {endpoint,header,timeout} et explicite le blocage sur UNRATIFIED, sans traitement explicite d’un kind hors enum.
    Source B (TESTS) : TC-NEG-05 impose kind="cookie" => rejet + blocage check.
    Impact : risque d’écart implémentation vs oracle QA sur données malformées.

  • DIV-05 : correlation_id requis par TESTS mais absent du contrat de données SPEC.
    Source A (SPEC) : D-299-01..D-299-21 ne définit pas correlation_id.
    Source B (TESTS) : §8 impose un événement signé/horodaté avec correlation_id.
    Impact : incertitude sur le caractère contractuel de ce champ pour l’audit/probatoire.

4. Zones d'ombre

  • Source canonique des arbitrages PO pour companion non définie (Q-299-04).
  • Format normatif de ratification PO non défini (Q-299-07).
  • Emplacement canonique de l’artefact Legal A8 non défini (Q-299-08).
  • Périmètre exact du comptage zéro-test non tranché (Q-299-03: *.test.ts vs *.test.tsx/*.spec.ts).
  • Composant exact ciblé pour le guard propriétaire non stabilisé (Q-299-05).
  • État initial de l’allowlist telemetry non verrouillé (Q-299-06).
  • Priorité normative finale cap zéro-test vs scoring arithmétique reste ambiguë (Q-299-02).

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