PD-244 — Plan d'implémentation v2 (audit documentaire)¶
Changelog v1 → v2¶
| Écart | Correction appliquée |
|---|---|
| ECT-02 | Ajout TASK-12 : Validation schéma YAML |
| ECT-04 | TASK-½ : Ajout contrôle d'unicité |
| ECT-05 | TASK-6 : Valeurs contractuelles reprises |
| ECT-06 | TASK-⅞/9 : Mécanisme vérification YAML→MD |
| ECT-07 | TASK-5 : Attributs preuves complétés |
| ECT-08 | TASK-11 : Structure corporate_claims définie |
| ECT-09 | TASK-½ : Mécanisme anti-citation explicité |
1. Nature de la story¶
PD-244 est une story documentaire : elle produit des matrices de conformité, pas du code. L'implémentation consiste à extraire, analyser et documenter les exigences normatives.
2. Sources normatives¶
| Norme | Version | Fichier source | Sections principales |
|---|---|---|---|
| ISO 14641 | 2018 | docs/normes/ISO-14641-2018.txt | 14 sections (§1-§14) + 3 annexes |
| NF Z42-013 | 2020 | docs/normes/Z42-013.pdf | À analyser |
3. Tâches d'implémentation¶
TASK-1 : Extraction inventaire ISO 14641:2018¶
Agent : Claude (orchestrateur) INV/CA couvert : INV-PD244-01, CA-PD244-01, INV-PD244-08
Description : Parcourir ISO 14641:2018.txt et extraire chaque exigence normative avec :
- Identifiant de section (ex: 5.5.1, 10.1.2)
- Texte de l'exigence (paraphrasé, pas de citation verbatim)
- Niveau d'exigence (SHALL/SHOULD/MAY → obligatoire/recommandé/optionnel)
Contrôle anti-citation (INV-PD244-08) :
- Chaque texte DOIT être reformulé, jamais copié verbatim
- Vérification : aucune phrase > 10 mots identiques au PDF source
- Revue finale par l'orchestrateur avant génération des matrices
Contrôle d'unicité (INV-PD244-01) :
- Chaque
requirement_idDOIT être unique dans l'inventaire - Format :
ISO-14641-{section}(ex:ISO-14641-5.5.1) - Vérification : script de dédoublonnage avant TASK-3
Output : Section ISO de PD-244-inventaire-reference.yaml
Estimation : ~80-120 exigences
TASK-2 : Extraction inventaire NF Z42-013:2020¶
Agent : Claude (orchestrateur) INV/CA couvert : INV-PD244-01, CA-PD244-02, INV-PD244-08
Description : Analyser NF Z42-013:2020.pdf (via extraction texte) et extraire les exigences. Structure attendue similaire à ISO 14641 (norme française dérivée).
Contrôle anti-citation (INV-PD244-08) :
- Identique à TASK-1
- Double attention car PDF (risque OCR copie exacte)
Contrôle d'unicité (INV-PD244-01) :
- Format :
NF-Z42013-{section}(ex:NF-Z42013-6.2.1) - Pas de collision inter-normes (préfixes distincts)
Output : Section NF de PD-244-inventaire-reference.yaml
Dépendance : Aucune (parallélisable avec TASK-1)
TASK-3 : Filtrage d'applicabilité SAE B2C¶
Agent : Claude (orchestrateur) INV/CA couvert : INV-PD244-05, CA-PD244-08
Description : Pour chaque exigence de l'inventaire, qualifier :
applicable: true→ exigence pertinente pour un SAE B2Capplicable: false→ exigence hors périmètre (tiers archiveur, B2B, etc.)
Chaque exclusion DOIT porter une justification testable.
Output : Champ applicable + applicability_justification par exigence
Dépendance : TASK-1, TASK-2
TASK-4 : Mapping exigences → stories ProbatioVault¶
Agent : Claude (orchestrateur) INV/CA couvert : INV-PD244-02, INV-PD244-04, CA-PD244-03, CA-PD244-04
Description : Pour chaque exigence applicable, identifier :
- Les stories ProbatioVault qui la couvrent (PD-XX)
- Le statut de couverture parmi les valeurs contractuelles :
CONFORME: couverture intégrale avec preuvesPARTIEL: couverture incomplète, plan de remédiation requisNON_IMPLEMENTE: aucune couverture, story gap obligatoireHORS_PERIMETRE: non applicable (déjà filtré en TASK-3)
Stories à analyser (depuis le besoin) :
- Backend : PD-37, PD-39, PD-40, PD-60, PD-31
- Infra : PD-4, PD-5, PD-6, PD-44, PD-7
- App : PD-33, PD-34, PD-42, PD-54
- Blockchain : PD-52, PD-53, PD-245
Méthode :
- Lire les specs/REX de chaque story dans
data/specs-index/ - Identifier les invariants/fonctionnalités correspondant à l'exigence
- Qualifier le niveau de couverture selon les règles section 5 de la spec
Output : Champs stories, status, status_justification par exigence
Dépendance : TASK-3
TASK-5 : Collecte des preuves¶
Agent : Claude (orchestrateur) INV/CA couvert : INV-PD244-03, CA-PD244-03
Description : Pour chaque exigence CONFORME ou PARTIEL, documenter au moins une preuve avec les attributs obligatoires (schéma section 4.2) :
evidence:
- evidence_id: "EVD-{requirement_id}-{N}" # Identifiant unique
type: "code" | "test" | "doc" | "architecture_decision" | "ticket"
path: "<chemin relatif ou identifiant artefact>"
locator: "<fonction, section, test case, ancre doc>"
version: "<commit hash ou version doc>"
verifiable: true
verified_date: "YYYY-MM-DD"
Règle : Aucune exigence CONFORME sans preuve verifiable: true.
Output : Champ evidence[] par exigence
Dépendance : TASK-4
TASK-6 : Identification et documentation des gaps¶
Agent : Claude (orchestrateur) INV/CA couvert : INV-PD244-04, CA-PD244-04, CA-PD244-07
Description : Pour chaque exigence PARTIEL ou NON_IMPLEMENTE :
- Créer un gap dans
PD-244-gaps.yaml - Attribuer une sévérité selon la table contractuelle section 4.5 :
| Sévérité | Définition | Délai cible |
|---|---|---|
| CRITICAL | Non-conformité majeure bloquant fiabilité/sécurité/audit | <= 30j |
| HIGH | Écart significatif impactant conformité/traçabilité | <= 90j |
| MEDIUM | Écart modéré avec impact limité | <= 180j |
| LOW | Écart mineur de complétude documentaire | <= 365j |
- Créer ou référencer une story Jira sous PD-217
Valeurs autorisées gaps[].status (section 4.3) :
PLANNED: story créée, non démarréeIN_PROGRESS: story en coursDONE: story terminée
Schéma gap complet (section 4.2) :
- gap_id: "GAP-ISO-5.5.1-01"
requirement_id: "ISO-14641-5.5.1"
description: "..."
severity: "HIGH"
planned_story: "PD-XXX"
epic_parent: "PD-217"
owner: "TechLead"
status: "PLANNED"
target_date: "2026-06-30"
Output : PD-244-gaps.yaml
Dépendance : TASK-4, TASK-5
TASK-7 : Génération matrice ISO 14641:2018¶
Agent : Claude (orchestrateur) INV/CA couvert : INV-PD244-06, CA-PD244-01, CA-PD244-05
Description : Assembler PD-244-iso-14641-matrix.yaml selon le schéma canonique (section 4.2). Générer PD-244-iso-14641-matrix.md fidèlement depuis le YAML.
Mécanisme de vérification fidélité YAML→MD :
- Compteur d'exigences :
total_yaml == total_md - Compteur par statut :
CONFORME_yaml == CONFORME_md, etc. - Hash des identifiants :
hash(requirement_ids_yaml) == hash(requirement_ids_md) - Aucune information dans MD absente du YAML source
Output : PD-244-iso-14641-matrix.yaml, PD-244-iso-14641-matrix.md
Dépendance : TASK-5, TASK-6
TASK-8 : Génération matrice NF Z42-013:2020¶
Agent : Claude (orchestrateur) INV/CA couvert : INV-PD244-06, CA-PD244-02, CA-PD244-05
Description : Assembler PD-244-nf-z42-013-matrix.yaml et PD-244-nf-z42-013-matrix.md.
Mécanisme de vérification fidélité : Identique à TASK-7.
Output : PD-244-nf-z42-013-matrix.yaml, PD-244-nf-z42-013-matrix.md
Dépendance : TASK-5, TASK-6
TASK-9 : Génération gaps.md¶
Agent : Claude (orchestrateur) INV/CA couvert : INV-PD244-06, CA-PD244-07
Description : Générer PD-244-gaps.md depuis PD-244-gaps.yaml. Vue lisible avec priorisation et stories associées.
Mécanisme de vérification fidélité :
- Nombre de gaps :
count_yaml == count_md - Tous les
gap_idprésents dans MD - Pas d'information additionnelle dans MD
Output : PD-244-gaps.md
Dépendance : TASK-6
TASK-10 : Génération dashboard de conformité¶
Agent : Claude (orchestrateur) INV/CA couvert : CA-PD244-06
Description : Calculer les scores globaux selon la formule contractuelle section 4.4 :
Règles d'application :
total_applicable= nombre total d'exigences évaluéesHORS_PERIMETREsoustrait du dénominateur- Score borné dans
[0, 100] - Si dénominateur = 0 → score =
N/A - Arrondi : 2 décimales
Produire PD-244-compliance-dashboard.md avec :
- Score par norme
- Répartition des statuts
- Liste consolidée des stories de gap
- Taux de traçabilité
Output : PD-244-compliance-dashboard.md
Dépendance : TASK-7, TASK-8, TASK-9
TASK-11 : Traçabilité claims doc 41/42/43¶
Agent : Claude (orchestrateur) INV/CA couvert : INV-PD244-07, CA-PD244-09
Description : Identifier les claims de conformité ISO/NF dans les docs corporate :
- Doc 41 : Architecture TechLead v4.1
- Doc 42 : Spécifications Techniques
- Doc 43 : Specs Stockage
Structure de traçabilité claim→exigence→preuve :
corporate_claims:
- claim_id: "CLAIM-41-001"
source_doc: "41---architecture_techlead---v4.1"
source_section: "Section 3.2 Conformité normative"
claim_text: "ProbatioVault est conforme ISO 14641"
mapped_requirements:
- requirement_id: "ISO-14641-5.5.1"
status: "CONFORME"
evidence_ids:
- "EVD-ISO-14641-5.5.1-01"
- "EVD-ISO-14641-5.5.1-02"
coverage_status: "FULL" | "PARTIAL" | "NONE"
Output : Section corporate_claims dans les matrices + fichier PD-244-claims-traceability.yaml
Dépendance : TASK-7, TASK-8
TASK-12 : Validation schéma YAML (NOUVEAU v2)¶
Agent : Claude (orchestrateur) INV/CA couvert : TC-YAML-002 (testabilité)
Description : Valider que tous les YAML produits respectent le schéma canonique section 4.2.
Contrôles :
- Champs obligatoires présents (
schema_version,story_id,norm,sections, etc.) - Valeurs enum respectées (
status∈ {CONFORME, PARTIEL, NON_IMPLEMENTE, HORS_PERIMETRE}) - Types corrects (dates ISO, booléens, listes)
- Cardinalités (au moins 1 evidence pour CONFORME/PARTIEL)
- Références croisées (tout
planned_storyexiste dansPD-244-gaps.yaml)
Méthode :
- Validation par parsing YAML + règles métier
- Rapport d'erreurs si non conforme
- Pas de génération MD si validation échoue
Output : Rapport de validation (intégré au workflow)
Dépendance : TASK-7, TASK-8, TASK-9
4. Diagramme de dépendances¶
TASK-1 (ISO) ─────┐
├──→ TASK-3 (Applicabilité) ──→ TASK-4 (Mapping) ──→ TASK-5 (Preuves) ──┐
TASK-2 (NF) ──────┘ │
├──→ TASK-6 (Gaps)
│
├──→ TASK-7 (Matrice ISO) ──┐
│ │
└──→ TASK-8 (Matrice NF) ───┼──→ TASK-12 (Validation)
│ │
├──→ TASK-9 (Gaps.md) ──┘
│
├──→ TASK-10 (Dashboard)
│
└──→ TASK-11 (Claims)
5. Matrice de couverture INV/CA → Tâches¶
| INV/CA | Tâche couvrant | Note v2 |
|---|---|---|
| INV-PD244-01 | TASK-1, TASK-2 | + contrôle unicité explicite |
| INV-PD244-02 | TASK-4 | Valeurs contractuelles listées |
| INV-PD244-03 | TASK-5 | + attributs obligatoires |
| INV-PD244-04 | TASK-4, TASK-6 | Rattachement PD-217 explicite |
| INV-PD244-05 | TASK-3 | OK |
| INV-PD244-06 | TASK-7, TASK-8, TASK-9 | + mécanisme vérification |
| INV-PD244-07 | TASK-11 | + structure traçabilité |
| INV-PD244-08 | TASK-1, TASK-2 | + mécanisme anti-citation |
| CA-PD244-01 | TASK-1, TASK-7, TASK-12 | + validation schéma |
| CA-PD244-02 | TASK-2, TASK-8, TASK-12 | + validation schéma |
| CA-PD244-03 | TASK-5 | OK |
| CA-PD244-04 | TASK-6 | OK |
| CA-PD244-05 | TASK-7, TASK-8 | + vérification fidélité |
| CA-PD244-06 | TASK-10 | OK |
| CA-PD244-07 | TASK-6, TASK-9 | OK |
| CA-PD244-08 | TASK-3 | OK |
| CA-PD244-09 | TASK-11 | + structure claim→exigence→preuve |
6. Estimation¶
| Tâche | Complexité | Temps estimé |
|---|---|---|
| TASK-1 | Haute (parsing + anti-citation) | 2.5h |
| TASK-2 | Haute (PDF + anti-citation) | 2.5h |
| TASK-3 | Moyenne | 1h |
| TASK-4 | Haute (17 stories à analyser) | 3h |
| TASK-5 | Haute (collecte preuves complètes) | 2.5h |
| TASK-6 | Moyenne | 1h |
| TASK-7 | Moyenne (+ vérification) | 1.5h |
| TASK-8 | Moyenne (+ vérification) | 1.5h |
| TASK-9 | Basse | 0.5h |
| TASK-10 | Basse | 0.5h |
| TASK-11 | Moyenne (+ structure) | 1.5h |
| TASK-12 | Basse (validation) | 0.5h |
| Total | ~18h |
7. Risques et mitigations¶
| Risque | Impact | Mitigation |
|---|---|---|
| PDF NF Z42-013 difficile à parser | Retard TASK-2 | Extraction manuelle si OCR échoue |
| Nombreux gaps découverts | Charge stories | Prioriser par sévérité CRITICAL/HIGH |
| Stories ProbatioVault incomplètes | Couverture faible | Documenter clairement les NON_IMPLEMENTE |
| Interprétation subjective exigences | Qualité audit | Justifier chaque statut factuellement |
| Citation accidentelle (INV-08) | Risque IP | Vérification systématique TASK-½ |
8. Livrables finaux¶
PD-244-inventaire-reference.yaml— baseline des exigences (unicité garantie)PD-244-iso-14641-matrix.yaml+.md(validé schéma)PD-244-nf-z42-013-matrix.yaml+.md(validé schéma)PD-244-gaps.yaml+.md(validé schéma)PD-244-compliance-dashboard.mdPD-244-claims-traceability.yaml(traçabilité complète)
Plan v2 produit par Claude (orchestrateur) — 2026-02-20 Corrections : ECT-02, ECT-04, ECT-05, ECT-06, ECT-07, ECT-08, ECT-09