PD-283 — Revue d'acceptabilité (post-correction)¶
1. Références¶
- Spécification : PD-283-specification.md
- Tests contractuels : PD-283-tests.md
- Acceptabilité existante : PD-283-acceptability.md
- Date de revue : 2026-03-09
- Reviewer : ChatGPT (auditeur indépendant, temperature 0.1)
2. Suivi des écarts (append-only)¶
[2026-03-09] — Suivi S-01¶
- Statut précédent : OUVERT
- Statut actuel : OUVERT
- Justification factuelle :
purgeStale()existe danstemp-file-manager.ts(lignes 121-136) mais n'est toujours pas invoqué au début destartExport()dansorchestrator.ts(lignes 84-224).- Seul
purgeAll()est appelé dans les blocs d'erreur (lignes 216, 261, 368) — nettoyage réactif, pas proactif. - Conséquence : après un crash applicatif, des fichiers clairs temporaires issus d'un export précédent peuvent persister en sandbox jusqu'au prochain export échoué.
- Le stub documenté mentionne
STUB: PD-XXX— aucune story Jira de destination n'est assignée. - Preuve de vérification :
- Aucun commit correctif postérieur à
4090913(docs(PD-283): acceptability step 7). - Lecture directe de
orchestrator.ts:purgeStaleabsent du fluxstartExport(). - INV-283-05 reste en RESERVE.
[2026-03-09] — Suivi S-03¶
- Statut précédent : OUVERT
- Statut actuel : OUVERT
- Justification factuelle :
integrityHashest validé en format uniquement (regex^[a-f0-9]{64}$dansschemas.tslignes 26-29).- Aucune comparaison entre le hash du fichier téléchargé/déchiffré et
integrityHashfourni par l'API. - L'intégrité repose exclusivement sur HTTPS (transport security), sans vérification applicative.
orchestrator.tsprocessOneProof()(lignes 278-313) : télécharge et déchiffre mais ne hash jamais le contenu pour comparaison.file-downloader.ts: aucune logique de vérification de hash.- Le stub documenté mentionne
STUB: PD-XXX— aucune story Jira de destination n'est assignée. - Preuve de vérification :
- Aucun commit correctif postérieur à
4090913. - Lecture directe des fichiers sources : aucune invocation de hash sur le contenu téléchargé.
[2026-03-09] — Suivi T-01¶
- Statut précédent : OUVERT
- Statut actuel : OUVERT
- Justification factuelle :
file-downloader.ts(lignes 13-23) : le statut HTTP 403 est détecté commeURL_EXPIREDet lève uneExportError.file-downloader.ts(lignes 25-30) :URL_EXPIREDest classé comme erreur non-retryable (isNonRetryableError).- Aucune logique de refresh automatique des URLs signées (pas de rappel à
POST /exports/complaint-file). - Le flux F-03 (CA-03) de la spécification exige un refresh API automatique puis reprise — ceci n'est pas implémenté.
- Le stub documenté mentionne
STUB: PD-XXX— aucune story Jira de destination n'est assignée. - Preuve de vérification :
- Aucun commit correctif postérieur à
4090913. - TC-NOM-04 (URL refresh) : non implémenté dans la suite de tests — le test vérifie uniquement la propagation correcte de l'erreur, pas le refresh.
3. Verdict d'acceptabilité (courant)¶
Verdict actuel : ⚠️ ACCEPTÉ AVEC RÉSERVES Date : 2026-03-09 Motif synthétique : 3 écarts MAJEURS ouverts (S-01 purgeStale, S-03 integrityHash, T-01 URL refresh) — tous documentés comme limitations v1 mais sans story Jira de destination assignée (stubs PD-XXX). Les 13 invariants de sécurité sont couverts (1 avec réserve INV-283-05). 191/191 tests passent. Coverage 77.18% avec justification des fichiers à faible couverture.
4. Historique des verdicts¶
| Date | Verdict | Version / commit | Commentaire |
|---|---|---|---|
| 2026-03-09 | ⚠️ ACCEPTÉ AVEC RÉSERVES | 4090913 | 3 MAJEURS ouverts (S-01, S-03, T-01), stubs sans PD assigné. 191/191 tests OK. |