[0m
build · gpt-5.3-codex [0m
PD-282 — Plan d’implémentation : Revue¶
1. Références¶
- Spécification : PD-282-specification.md
- Tests contractuels : PD-282-tests.md
- Plan d’implémentation : PD-282-plan.md
- Date de revue : 2026-03-02
- Reviewer : Auditeur technique indépendant (conformité contractuelle)
2. Constatations (écarts)¶
| Type | Référence (Spec/Test/Plan) | Description | Impact | Gravité (BLOQUANT/MAJEUR/MINEUR) |
|---|---|---|---|---|
| Non-conformité Spec | Spec §6 ERR-05 / Plan §3 (Reserve ECT-02), §4.3 étape 4 | Le plan impose un rejet systématique si status=revoked, alors que la spec ne contractualise explicitement que le mode dégradé OCSP_UNAVAILABLE en cas d’indisponibilité/timeout OCSP. | Ajout de règle métier non spécifiée contractuellement. | MAJEUR |
| Couverture manquante | Invariant INV-282-07 / Plan §5 (ligne INV-282-07), Code contract envelope-seal-pipeline | Le mécanisme décrit pour INV-282-07 (“hash non réversible, clé dans HSM”) ne couvre pas l’exigence contractuelle “tout artefact crypto temporaire chiffré au repos”. | Invariant non négociable non démontré sur son périmètre réel (DB/blobs/temp files). | BLOQUANT |
| Test irréalisable | TC-INV-07 / Plan §7 (stratégie de tests) | Le plan ne définit pas de dispositif d’observabilité/audit de chiffrement au repos des artefacts temporaires permettant d’exécuter TC-INV-07 tel que défini. | Le test d’invariant constitutionnel ne peut pas être démontré. | BLOQUANT |
| Test irréalisable | TC-NOM-08 / Spec §5.5 / Plan §7 | Le scénario crash pre-commit/post-commit n’a pas de mécanisme de simulation ni points d’observation explicités dans le plan de test. | Validation de l’atomicité multi-composant non objectivable. | BLOQUANT |
| Non-conformité Spec | Spec §1, §3 (Mode B) / Code contract offline-verification (invariant “Mode B ... vérification en ligne optionnelle”) | Le caractère “optionnel” de la vérification en ligne en Mode B affaiblit la définition contractuelle du Mode B comme vérification online publique. | Affaiblissement d’un comportement spécifié. | MAJEUR |
| Hypothèse implicite | Spec §9 H-01, §10.2 Q-05 / Plan §2 DA-06, §4.3 | La disponibilité/portée du trust-store et l’inclusion effective de la chaîne nécessaire au tiers restent dépendantes d’hypothèses d’environnement non fermées dans le plan. | Vérification tierce Mode A potentiellement non reproductible malgré enveloppe conforme. | MAJEUR |
| Code Contract — Invariant | Code contracts (modules C1, C5, C8, C11, C12) / Spec §4 | Plusieurs “invariants” de code contracts ne sont pas des sous-ensembles des invariants spec (contraintes d’implémentation, conventions techniques internes). | Dérive contractuelle et ambiguïté d’audit entre exigence normative et choix technique. | MAJEUR |
| Code Contract — Forbidden | Code contracts envelope-seal-pipeline (ex. interdiction Math.random) | Des patterns “forbidden” ne sont pas explicitement justifiés par la spec ou une exigence sécurité formulée dans les documents contractuels fournis. | Extension de contraintes hors base contractuelle explicite. | MINEUR |
| Contrainte technique non documentée | Plan §7 | Le framework de test (Jest ou Vitest) n’est pas explicitement choisi. | Ambiguïté d’exécution des suites contractuelles et de compatibilité tooling. | MAJEUR |
| Contrainte technique non documentée | Plan §6, §7 | Compatibilité ESM/CJS non documentée alors que de nouvelles dépendances (@peculiar/*) sont introduites. | Risque d’échec runner/tests selon mode module. | MAJEUR |
| Contrainte technique non documentée | Plan §7 | Variables CI nécessaires aux tests d’intégration non documentées (DATABASE_URL, CI=true, etc.). | Reproductibilité CI partielle, diagnostic plus difficile. | MINEUR |
3. Synthèse¶
- Nombre d’écarts par gravité : BLOQUANT: 3, MAJEUR: 6, MINEUR: 2
- Points critiques :
- Invariant non négociable INV-282-07 non couvert de manière démontrable.
- Scénarios TC-INV-07 et TC-NOM-08 non réalisables avec le niveau de définition actuel.
- Écarts de stricte conformité sur règles OCSP revocation et portée du Mode B.
4. Verdict de la revue¶
- Statut : ⛔ Rejeté
- Motif synthétique : Présence d’écarts BLOQUANTS sur couverture d’invariants non négociables et testabilité contractuelle, avec en plus des divergences de conformité stricte à la spécification.