PD-252 — Plan d'implémentation : Politique des formats de préservation SAE¶
Story : PD-252 Projet : ProbatioVault-doc Domaine : legal-compliance Étape : 4 — Plan d'implémentation Date : 2026-03-11 Statut : DRAFT
1. Découpage en composants¶
PD-252 est une story documentaire pure. Aucune implémentation logicielle n'est produite. Les deux livrables sont des fichiers Markdown dans le dépôt ProbatioVault-doc.
C1 — preservation-format-policy.md (nouveau document)¶
| Propriété | Valeur |
|---|---|
| Chemin cible | docs/sae-manual/preservation-format-policy.md |
| Type | Nouveau fichier Markdown normatif |
| Responsabilité | Contenir l'intégralité de la politique des formats de préservation SAE |
| Agent owner | agent-doc-writer |
Ce document contient :
- Catalogue des formats acceptés (5 catégories, 14 formats — §5.4b de la spec)
- Définitions formelles des niveaux
COMPLETEetBITSTREAM - Tableau des conversions à l'ingestion (documentaire, non bloquant v1)
- Tableau des validations d'ingestion (5 validations minimales + statut implémentation)
- Matrice formats × durées légales (7 types documentaires)
- Modèle d'états et transitions (4 états :
UNCLASSIFIED,COMPLETE,BITSTREAM,REJECTED) - Contrats de données centralisés (§5.1 : 7 champs avec format/regex/comportement si invalide)
- Paramètres numériques avec bornes (§5.2)
- Références normatives et tracabilité
GAP-FINAL-004
C2 — Amendement ch08-conformite.md (fichier existant modifié)¶
| Propriété | Valeur |
|---|---|
| Chemin cible | docs/sae-manual/ch08-conformite.md |
| Type | Modification d'un fichier Markdown existant |
| Responsabilité | Ajouter un lien explicite de ch08 vers preservation-format-policy.md |
| Agent owner | agent-doc-amender |
Modification minimale et ciblée : dans la section §8.4 (GAP-FINAL-004), mettre à jour le statut de Planifie (Q3 2026) → DONE (PD-252) et ajouter un lien Markdown vers ../preservation-format-policy.md.
2. Flux techniques¶
Flux F1 — Rédaction de preservation-format-policy.md¶
1. Créer le fichier à l'emplacement contractuel
docs/sae-manual/preservation-format-policy.md
2. Rédiger l'en-tête normatif
- Titre, statut DRAFT → FINAL, date, lien GAP-FINAL-004, références ISO/NF
3. Rédiger §1 — Contrats de données (source de vérité unique)
- 7 champs : formatName, mimeType, preservationLevel, retentionDuration,
conversionPriority, normativeReference, integrityHashAlgorithm
- Pour chaque champ : format, longueur, regex, comportement si invalide
- Note de distinction normativeReference vs citations documentaires
4. Rédiger §2 — Paramètres numériques contractualisés
- Taille fichier DEFAULT (100 MB)
- 5 durées légales (P10Y, P30Y, P5Y)
- Mention SLA : "Aucune transition temporelle identifiée"
5. Rédiger §3 — Catalogue des formats acceptés
- 5 catégories (Documents textuels, Images, Données structurées, Texte brut, Audio/Video)
- 14 formats avec formatName, mimeType, preservationLevel
- Note de discrimination FACTUR-X / PDF/A-3B (détection XML embarqué)
6. Rédiger §4 — Règles de conversion à l'ingestion
- Tableau source/cible/priorité/statut story séparée
- Mention explicite "non bloquant v1"
- Statuts PLANIFIÉ (PD-NEW) avec note backlog
7. Rédiger §5 — Validations à l'ingestion
- 5 validations : MIME, PDF/A, SHA3-384, taille, malware
- Tableau : validation / règle contractuelle / statut implémentation
- Clause de non-conformité technique pour les validations PLANIFIÉ
8. Rédiger §6 — Matrice formats × durées légales
- 7 types documentaires avec durée, formats acceptés, niveau
- Note P30Y pour mineurs (hypothèse H-03)
9. Rédiger §7 — Modèle d'états et transitions
- 4 états : UNCLASSIFIED, COMPLETE, BITSTREAM, REJECTED
- Tableau des transitions autorisées et interdites
- Transitions inverses explicitement interdites
10. Rédiger §8 — Références normatives et tracabilité
- Références structurées (avec §section) : ISO 14641 §10.1.1, NF Z42-013 §6.2.4
- Citations documentaires : ISO 19005-1/2/3, RFC-PV-PACK
- Lien de tracabilité explicite vers GAP-FINAL-004
11. Marquer règles NON TESTABLE avec justification (Q-252-05)
Flux F2 — Amendement de ch08-conformite.md¶
1. Lire le fichier existant docs/sae-manual/ch08-conformite.md
2. Localiser la section §8.4 — Gaps identifiés,
entrée GAP-FINAL-004 "Politique de formats de préservation non formalisée"
3. Mettre à jour :
- Statut : "Planifié (Q3 2026)" → "DONE (PD-252, Q1 2026)"
- Story : "PD-NEW-FORMAT-POLICY" → "PD-252"
- Ajouter lien Markdown : [Voir preservation-format-policy.md](../preservation-format-policy.md)
4. Mettre à jour §8.5 Plan de remédiation :
- Entrée GAP-FINAL-004 : statut "Planifié" → "DONE"
- Ajouter colonne/note : "PD-252, Q1 2026"
5. Vérifier que le lien Markdown est syntaxiquement correct
(chemin relatif depuis ch08-conformite.md vers preservation-format-policy.md)
Flux F3 — Validation documentaire (revue QA)¶
1. Vérifier présence du fichier à l'emplacement contractuel (CA-01)
2. Compter les catégories (5) et les formats (14) dans §3 (CA-02)
3. Vérifier niveau unique par format (CA-03)
4. Vérifier tableau conversions avec priorité et story séparée (CA-04)
5. Vérifier 5 validations + SHA3-384 explicite (CA-05)
6. Vérifier matrice 7 lignes avec valeurs exactes de la spec §5.7 (CA-06)
7. Vérifier références structurées (regex) + citations documentaires (CA-07)
8. Vérifier lien ch08 → policy (CA-08)
9. Vérifier mention GAP-FINAL-004 (CA-09)
10. Vérifier §5.1 source unique de vérité pour les contrats de données (CA-10)
11. Vérifier tableau transitions avec transitions inverses interdites (CA-11)
12. Vérifier §5.2 avec bornes/unités/hors bornes (CA-12)
2bis. Diagrammes Mermaid¶
Graphe de dépendances des composants¶
graph TD
subgraph "Entrées documentaires"
SPEC["PD-252-specification.md<br/>(§5.1–§5.9)"]
CH08_IN["ch08-conformite.md<br/>(existant, §8.4–§8.5)"]
GAP["GAP-FINAL-004<br/>(audit PD-244)"]
end
subgraph "Livrables PD-252"
C1["C1 — preservation-format-policy.md<br/>(agent-doc-writer)"]
C2["C2 — Amendement ch08-conformite.md<br/>(agent-doc-amender)"]
end
subgraph "Références normatives"
ISO14641["ISO 14641:2018 §10.1.1"]
NFZ42["NF Z42-013:2020 §6.2.4"]
ISO19005["ISO 19005-1/2/3"]
RFC["RFC-PV-PACK"]
end
SPEC -->|"§5.1 contrats données<br/>§5.4b catalogue 14 formats<br/>§5.7 matrice légale"| C1
GAP -->|"tracabilité"| C1
ISO14641 -->|"référence structurée"| C1
NFZ42 -->|"référence structurée"| C1
ISO19005 -->|"citation documentaire"| C1
RFC -->|"citation documentaire"| C1
C1 -->|"doit exister avant<br/>amendement ch08"| C2
CH08_IN -->|"fichier modifié"| C2
C2 -->|"lien Markdown vers"| C1 Séquence de production documentaire¶
sequenceDiagram
participant O as Orchestrateur (Claude)
participant W as agent-doc-writer
participant A as agent-doc-amender
participant QA as Validation QA (F3)
O->>O: Charger spec §5.1–§5.9 + GAP-FINAL-004
rect rgb(230, 245, 255)
Note over O,W: Flux F1 — Rédaction C1
O->>W: Prompt avec spec + références normatives
W->>W: Rédiger §1 (contrats données, 7 champs)
W->>W: Rédiger §2 (paramètres numériques)
W->>W: Rédiger §3 (catalogue 5 catégories, 14 formats)
W->>W: Rédiger §4 (conversions, non bloquant v1)
W->>W: Rédiger §5 (5 validations ingestion)
W->>W: Rédiger §6 (matrice formats × durées légales)
W->>W: Rédiger §7 (modèle 4 états + transitions)
W->>W: Rédiger §8 (références + GAP-FINAL-004)
W-->>O: preservation-format-policy.md
end
rect rgb(255, 245, 230)
Note over O,A: Flux F2 — Amendement C2
O->>A: Prompt avec ch08 existant + lien C1
A->>A: Mettre à jour §8.4 (DONE PD-252)
A->>A: Mettre à jour §8.5 (DONE)
A->>A: Ajouter lien Markdown vers C1
A-->>O: ch08-conformite.md (modifié)
end
rect rgb(230, 255, 230)
Note over O,QA: Flux F3 — Validation documentaire
O->>QA: Checklist 12 points (CA-01 à CA-12)
QA->>QA: Vérifier C1 (existence, catalogue, contrats)
QA->>QA: Vérifier C2 (lien, GAP-FINAL-004)
QA-->>O: Résultat checklist ISO 14641
end 3. Mapping invariants → mécanismes¶
| Invariant ID | Exigence | Mécanisme | Composant | Observable | Risque |
|---|---|---|---|---|---|
| INV-252-01 | Document existe + référencé depuis ch08 | Création du fichier à docs/sae-manual/preservation-format-policy.md + amendement ch08 §8.4 et §8.5 avec lien Markdown | C1 + C2 | Fichier présent ; lien résolvable dans ch08 | Bas — action directe |
| INV-252-02 | Liste exhaustive des formats pour les catégories définies | Section §3 du document C1 avec tableau 5 catégories × 14 formats ; contrôle d'unicité des noms | C1 | 5 catégories + liste exacte 14 formats de §5.4b présents | Bas — contenu figé dans spec |
| INV-252-03 | Chaque format → niveau unique COMPLETE ou BITSTREAM | Colonne preservationLevel avec enum strict dans le tableau §3 | C1 | Chaque ligne a exactement 1 valeur COMPLETE ou BITSTREAM | Bas — enum à 2 valeurs |
| INV-252-04 | Conversions documentées comme recommandations non bloquantes | Section §4 avec tableau source/cible/priorité/statut + mention "non bloquant v1" | C1 | Tableau présent, mention explicite, statuts PD-NEW documentés | Bas — contenu documentaire |
| INV-252-05 | 5 validations d'ingestion explicitement listées avec statut | Section §5 avec tableau 5 validations + SHA3-384 + statuts IMPLÉMEMTÉ/PLANIFIÉ | C1 | 5 lignes avec algorithme SHA3-384 explicite + clause non-conformité technique | Bas |
| INV-252-06 | Contrats de données définis une seule fois en §5.1 | Section §1 du document C1 centralise les 7 champs ; les autres sections referencent sans redéfinir | C1 | §1 complet, aucune redéfinition dans §3-§6 | Moyen — risque de copier-coller |
| INV-252-07 | Modèle d'états explicite avec transitions autorisées/interdites/retours | Section §7 avec tableau d'états-transitions + transitions inverses explicitement interdites | C1 | 4 états, transitions autorisées depuis UNCLASSIFIED, toutes les transitions depuis COMPLETE/BITSTREAM/REJECTED marquées INTERDITES | Bas |
| INV-252-08 | Lien explicit vers GAP-FINAL-004 | Mention textuelle dans section §8 du document C1 + mise à jour ch08 §8.4 | C1 + C2 | "GAP-FINAL-004" présent textuellement + lien de tracabilité | Bas |
| INV-252-09 | Règles non testables marquées NON TESTABLE avec justification | Section dédiée dans C1 pour Q-252-05 (modalité de lien tracable) | C1 | Mention NON TESTABLE + raison + impact présents | Bas |
4. Mapping critères d'acceptation → mécanismes¶
| Critère ID | Mécanisme(s) | Composant | Observable | Risque |
|---|---|---|---|---|
| CA-01 | Création du fichier preservation-format-policy.md à l'emplacement contractuel | C1 | docs/sae-manual/preservation-format-policy.md présent | Bas |
| CA-02 | Section §3 avec tableau 5 catégories + liste canonique 14 formats (§5.4b) | C1 | 5 catégories présentes ; 14 formats exacts listés avec mimeType et preservationLevel | Bas |
| CA-03 | Colonne preservationLevel enum strict + définitions formelles de COMPLETE/BITSTREAM | C1 | Définitions textuelles présentes ; mapping format→niveau exhaustif | Bas |
| CA-04 | Section §4 tableau conversions avec source/cible/priorité/statut story séparée | C1 | Tableau présent, mention "non bloquant v1", PD-NEW avec note backlog | Bas |
| CA-05 | Section §5 tableau validations avec 5 validations et statut implémentation | C1 | MIME + PDF/A + SHA3-384 + taille + malware présents, statuts documentés | Bas |
| CA-06 | Section §6 matrice légale avec valeurs exactes de spec §5.7 (7 lignes) | C1 | 7 types documentaires avec P10Y/P30Y/P5Y, formats et niveaux exacts | Moyen — précision des valeurs critique |
| CA-07 | Section §8 avec références structurées (regex ^[A-Z0-9 .:_-]+ §[0-9.]+$) + citations documentaires textuelles | C1 | ISO 14641 §10.1.1, NF Z42-013 §6.2.4 conformes regex ; ISO 19005-½/3, RFC-PV-PACK présents textuellement | Moyen — regex stricte |
| CA-08 | Amendement ch08 §8.4 avec lien Markdown vers la policy | C2 | Lien [...](../preservation-format-policy.md) présent et syntaxiquement correct | Bas |
| CA-09 | Section §8 du document C1 + amendement ch08 | C1 + C2 | Mention textuelle "GAP-FINAL-004" dans C1 + lien de tracabilité | Bas |
| CA-10 | §1 (contrats de données) est l'unique source ; sections §3-§6 referencent | C1 | Aucune redéfinition de format/regex dans les autres sections | Moyen — risque de duplication |
| CA-11 | Section §7 tableau transitions avec transitions inverses interdites | C1 | Transitions inverses COMPLETE↔BITSTREAM et retours vers UNCLASSIFIED explicitement interdits | Bas |
| CA-12 | Section §2 paramètres numériques avec valeur/min/max/unité/contexte/hors bornes | C1 | Tableau §2 complet, mention "Aucune transition temporelle identifiée" | Bas |
5. Mapping tests (TC-*) → mécanismes + observables¶
| Test ID | Référence spec | Mécanisme(s) | Point(s) d'observation | Niveau de test visé |
|---|---|---|---|---|
| TC-NOM-01 | INV-252-01, CA-01, CA-08 | Vérification existence du fichier + lien ch08 | Présence docs/sae-manual/preservation-format-policy.md ; lien Markdown résolvable dans ch08 | Revue documentaire |
| TC-NOM-02 | INV-252-02, CA-02 | Contrôle §3 : 5 catégories + 14 formats de §5.4b | Comptage des catégories et formats ; correspondance exacte avec liste canonique | Revue documentaire |
| TC-NOM-03 | INV-252-03, CA-03 | Contrôle colonne preservationLevel + définitions formelles | Unicité du niveau par format ; définitions textuelles présentes | Revue documentaire |
| TC-NOM-04 | INV-252-04, CA-04 | Contrôle §4 : tableau conversions source/cible/priorité/story | Toutes les colonnes présentes, mention "non bloquant v1" | Revue documentaire |
| TC-NOM-05 | INV-252-05, CA-05 | Contrôle §5 : 5 validations + SHA3-384 + statuts | 5 validations listées, SHA3-384 explicite, clauses PLANIFIÉ complètes | Revue documentaire |
| TC-NOM-06 | INV-252-06, CA-10 | Vérification unicité des définitions en §1 | Scan de §3-§6 : aucune redéfinition de format/regex | Revue documentaire |
| TC-NOM-07 | INV-252-07, CA-11 | Contrôle §7 : tableau transitions + interdictions | Transitions inverses COMPLETE→BITSTREAM et retours vers UNCLASSIFIED marqués INTERDITES | Revue documentaire |
| TC-NOM-08 | CA-06 | Contrôle §6 : matrice légale 7 lignes avec valeurs exactes | Correspondance exacte avec §5.7 de la spec (P10Y/P30Y/P5Y, formats, niveaux) | Revue documentaire |
| TC-NOM-09 | INV-252-08, CA-07, CA-09 | Contrôle §8 : références structurées + citations + GAP-FINAL-004 | ISO 14641 §10.1.1 et NF Z42-013 §6.2.4 conformes regex ; ISO 19005-½/3 et RFC-PV-PACK textuellement présents ; GAP-FINAL-004 explicite | Revue documentaire |
| TC-NOM-10 | CA-12 | Contrôle §2 : paramètres numériques complets | Tableau §2 avec toutes les colonnes ; mention SLA "Aucune transition temporelle identifiée" | Revue documentaire |
| TC-MEC-01 | §5.9 | Mécanisme de validation = revue documentaire structurée | Checklist ISO 14641 applicable ; aucun moteur applicatif requis | Revue documentaire |
| TC-ERR-01 | ERR-252-01 | Format hors liste → rejet documenté | Règle de réponse ERR-252-01 présente dans C1 | Revue documentaire |
| TC-ERR-02 | ERR-252-02 | mimeType non conforme RFC → rejet | Règle ERR-252-02 + normalisation lowercase documentée | Revue documentaire |
| TC-ERR-03 | ERR-252-03 | preservationLevel hors enum → rejet | Règle ERR-252-03 + enum COMPLETE | BITSTREAM strict |
| TC-ERR-04 | ERR-252-04 | retentionDuration non ISO 8601 mono-composant → rejet | Regex ^P(\d+Y|\d+M|\d+D)$ documentée + règle ERR-252-04 | Revue documentaire |
| TC-ERR-05 | ERR-252-05 | normativeReference mal formée → rejet | Regex ^[A-Z0-9 .:_-]+ §[0-9.]+$ documentée + règle ERR-252-05 | Revue documentaire |
| TC-ERR-06 | ERR-252-06 | Conversion sans priorité → rejet | Règle ERR-252-06 + priorité obligatoire P1 | P2 |
| TC-ERR-07 | ERR-252-07 | Transition non documentée → rejet | Règle ERR-252-07 + tableau §7 exhaustif | Revue documentaire |
| TC-ERR-08 | ERR-252-08 | GAP-FINAL-004 absent → rejet | Règle ERR-252-08 + vérification textuelle | Revue documentaire |
| TC-INV-09 | INV-252-09 | Règles NON TESTABLE marquées avec justification | Section dédiée dans C1 pour Q-252-05 | Revue documentaire |
| TC-NR-01 | Non-regression | Stabilité catalogue 14 formats / 5 catégories | Baseline = liste §5.4b de la spec (immuable) | Revue documentaire |
| TC-NR-02 | Non-regression | Aucun changement de niveau sans versionnage | Tableau §3 : niveaux conformes à §5.4b ; pas de reclassification | Revue documentaire |
| TC-NR-03 | Non-regression | Stabilité matrice légale (7 lignes §5.7) | Valeurs P10Y/P30Y/P5Y identiques à la spec | Revue documentaire |
| TC-NR-04 | Non-regression | Stabilité des références normatives | ISO/NF/GAP toujours présents après toute modification de forme | Revue documentaire |
| TC-NEG-01 | Adversarial | formatName=pdf/a (minuscules) → rejet | Règle regex ^[A-Z0-9/+.-]{1,32}$ documentée | Revue documentaire |
| TC-NEG-02 | Adversarial | mimeType=Application/PDF → normalisation puis validation | Contrat de normalisation lowercase documenté en §1 | Revue documentaire |
| TC-NEG-03 | Adversarial | retentionDuration=P1Y2M → rejet | Regex mono-composant documentée | Revue documentaire |
| TC-NEG-04 | Adversarial | conversionPriority=P4 → rejet | Enum P1 | P2 |
| TC-NEG-05 | Adversarial | normativeReference sans §section → rejet | Regex §section obligatoire documentée | Revue documentaire |
| TC-NEG-06 | Adversarial | Transition BITSTREAM→COMPLETE → rejet | Transition inverse interdite explicitement dans §7 | Revue documentaire |
6. Gestion des erreurs¶
PD-252 est une story documentaire. La "gestion des erreurs" s'applique à la conformité du document produit, pas à un runtime applicatif.
| Code erreur | Cas | Règle documentée | Observable |
|---|---|---|---|
| ERR-252-01 | Format hors liste | Rejet de l'entrée + policy non conforme jusqu'à correction | Section §cas d'erreur dans C1 |
| ERR-252-02 | mimeType non conforme RFC après normalisation | Rejet | Règle + regex présentes dans §1 et §cas d'erreur |
| ERR-252-03 | preservationLevel hors enum | Rejet | Enum strict + règle présents |
| ERR-252-04 | retentionDuration non ISO 8601 mono-composant | Rejet sans interprétation implicite | Regex + règle présents |
| ERR-252-05 | normativeReference absente ou mal formée | Rejet | Regex §section obligatoire + règle présents |
| ERR-252-06 | Conversion sans priorité | Rejet | Règle présente dans §conversions |
| ERR-252-07 | Transition d'état non documentée | Rejet | Tableau §transitions exhaustif |
| ERR-252-08 | GAP-FINAL-004 absent | Rejet, aucun verdict GO possible | Mention tracabilité obligatoire |
Mécanisme de validation : revue documentaire structurée (checklist) appliquée lors de l'audit ISO 14641. Aucun moteur applicatif n'est introduit par PD-252. La granularité de rejet est au niveau de l'entrée concernée (ligne/format), la policy dans son ensemble est déclarée non conforme tant qu'au moins un cas d'erreur non résolu subsiste.
7. Impacts sécurité¶
| Aspect | Détail | Statut |
|---|---|---|
| Pas de code implémenté | PD-252 ne modifie aucun code backend, aucune API, aucune route | Hors périmètre |
| Références normatives | Garantir la présence de SHA3-384 comme algorithme d'intégrité (INV-252-05) — empêche une dérive vers un algorithme faible | À vérifier à la rédaction |
| Confidentialité | Le document est normatif et public dans le dépôt doc — aucune donnée sensible | N/A |
| Tracabilité audit | La mention GAP-FINAL-004 + les références ISO/NF permettent la traçabilité lors d'un audit externe | Requis |
| PLANIFIÉ PD-NEW | La clause de non-conformité technique (validations PLANIFIÉ) protège contre un claim de conformité prématuré — à rédiger avec soin | Critique |
| trustedRoots | Non applicable (story documentaire, pas de code de vérification de certificats) | N/A |
8. Hypothèses techniques¶
| ID | Hypothèse | Impact si faux |
|---|---|---|
| H-01 | Les 5 catégories de formats et les 14 formats de §5.4b sont stables pour v1 | Révision de la policy, des CA et des tests TC-NOM-02, TC-NR-01 |
| H-02 | L'algorithme d'intégrité de référence reste SHA3-384 | Mise à jour de §1 (integrityHashAlgorithm), §5 (validation hash), et tous les tests référençant SHA3-384 |
| H-03 | Les durées légales du §5.7 sont validées juridiquement (P30Y pour mineurs, P10Y pour factures/contrats, P5Y pour données techniques) | Risque de non-conformité réglementaire — révision de §6 et TC-NOM-08, TC-NR-03 |
| H-04 | Le chapitre ch08-conformite.md est modifiable sans blocage de merge (pas de protection de branche empêchant la modification) | Tracabilité documentaire incomplète — CA-08 non satisfait |
| H-05 | La policy documente les validations attendues y compris celles non encore implémentées (PLANIFIÉ PD-NEW), et ne constitue pas une déclaration de conformité technique | Si interprété comme déclaration de conformité → risque d'écart d'audit |
| H-06 | La modalité exacte du lien vers GAP-FINAL-004 (mention textuelle) est suffisante pour l'audit (Q-252-05 est NON TESTABLE en v1) | Si l'auditeur exige un URL ou un identifiant d'audit structuré → non-conformité partielle CA-09 |
9. Points de vigilance (risques, dette, pièges)¶
9.1 Unicité des définitions (INV-252-06)¶
Risque : En rédigeant les sections §3 (catalogue formats), §6 (matrice légale) et §7 (transitions), il est tentant de répéter les regex ou formats directement. INV-252-06 l'interdit formellement — les autres sections DOIVENT référencer §1 sans redéfinir.
Mitigation : Toute valeur de format, regex, enum dans §3-§7 doit être précédée d'un renvoi du type « (voir §1 — contrats de données) ».
9.2 Précision des valeurs de la matrice légale¶
Risque : Une erreur de valeur (ex: P15Y pour factures au lieu de P10Y) invalide TC-NOM-08 et TC-NR-03. Les valeurs sont fixées contractuellement dans §5.7 de la spec.
Mitigation : Copier-coller exact depuis §5.7 de la spec, puis relire ligne par ligne.
9.3 Conformité regex des références normatives¶
Risque : Écrire ISO 14641 10.1.1 (sans le §) échoue TC-NEG-05 et TC-ERR-05. La regex ^[A-Z0-9 .:_-]+ §[0-9.]+$ est stricte.
Mitigation : Vérifier systématiquement la présence du symbole § avant le numéro de section pour toutes les références structurées.
9.4 Distinction normativeReference vs citations documentaires¶
Risque : Appliquer la regex à ISO 19005-1 (citation documentaire sans section) produit un faux-positif. La distinction est contractuellement importante (spec §5.1, note).
Mitigation : Citations documentaires (ISO 19005-1/2/3, RFC-PV-PACK) n'ont PAS de regex — leur présence est vérifiée par existence textuelle uniquement.
9.5 Clause de non-conformité technique (validations PLANIFIÉ)¶
Risque : Omettre la clause ou la formuler de façon ambiguë peut amener un auditeur à interpréter PLANIFIÉ comme une déclaration de conformité imminente.
Mitigation : Inclure la clause exacte de la spec §5.6 : « Les validations en statut PLANIFIÉ (PD-NEW) sont des exigences cibles documentées, et non des déclarations de conformité technique. »
9.6 Chemin relatif du lien Markdown dans ch08¶
Risque : Si le lien est écrit ./preservation-format-policy.md depuis ch08-conformite.md (même dossier docs/sae-manual/), le lien est correct. Un chemin absolu ou erroné casse TC-NOM-01.
Mitigation : Lien relatif [Politique des formats de préservation](./preservation-format-policy.md) depuis ch08-conformite.md.
9.7 Absence de livrable de code¶
Ce plan ne produit aucun artefact de code. Toute tentative de générer du code TypeScript, SQL ou de modifier des fichiers backend serait hors périmètre et invalide.
10. Hors périmètre¶
Explicitement exclu de PD-252 :
| Élément | Justification |
|---|---|
| Implémentation logicielle des conversions de formats | Story documentaire — hors scope PD-252 ; couvert par story PD-NEW future |
| Modification du code backend (NestJS, TypeORM, PostgreSQL) | PD-252 ne touche que ProbatioVault-doc |
Modification des règles MIME/taille dans DocumentCategoryConfig | Hors périmètre explicite de la spec §2 |
| Déploiement ou achat d'outils (VeraPDF, ClamAV) | Hors périmètre explicite |
| Migration rétroactive des archives existantes | Hors périmètre explicite |
| Toute évolution DDL | Hors périmètre explicite |
Redéfinition des catégories backend (DEFAULT, B2C_EVIDENCE_MINOR) | Hors périmètre explicite spec §2 |
Bornes min/max de taille pour les catégories hors DEFAULT | Hors périmètre explicite spec §2 |
| Formalisation de la modalité exacte du lien tracable vers GAP-FINAL-004 (Q-252-05) | NON TESTABLE v1 — clarification à documenter |
| Tests unitaires, d'intégration ou E2E de code applicatif | Story documentaire — aucun code produit |
Périmètre de test¶
| Niveau de test | In scope | Hors scope (justification) |
|---|---|---|
| Revue documentaire structurée | Tous les TC-NOM, TC-ERR, TC-INV, TC-NR, TC-NEG définis dans PD-252-tests.md | — |
| Unitaire (code) | Hors scope | Story documentaire — aucun code produit (spec §2 explicite) |
| Intégration (code) | Hors scope | Story documentaire — aucune modification de module applicatif |
| E2E | Hors scope | Story documentaire — aucun flux applicatif concerné |
Tous les niveaux de test sont des revues documentaires (checklist ISO 14641). La couverture minimale de 80% s'applique au périmètre des CAs et invariants vérifiés par revue documentaire : 12 CA × 9 INV = 100% couverts par les tests définis.
Mécanismes cross-module¶
Aucune modification d'autres modules. PD-252 ne produit que des fichiers Markdown dans ProbatioVault-doc. Aucun guard, middleware, intercepteur, route ou schéma de base de données n'est ajouté ou modifié.
Références¶
- Spec :
PD-252-specification.md - Tests :
PD-252-tests.md - Code contracts :
PD-252-code-contracts.yaml - ch08 existant :
docs/sae-manual/ch08-conformite.md - Norme ISO 14641:2018 §10.1.1 — tracabilité GAP-FINAL-004
- NF Z42-013:2020 §6.2.4
- RFC interne
RFC-PV-PACK.md - Audit PD-244 (source de GAP-FINAL-004)