Code/docs/FabNum v2/EVOLUTIONS-PLANIFICATION.md
Stéphan Peccini e6ff714fca
docs(evolution): réorganisation docs/FabNum v2/ + points 13-14 + vues progressives
- Déplacement de toute la documentation v2 dans docs/FabNum v2/
- Ajout points 13 (bus d'impact, mémoire situationnelle, IA) et 14 (combinatoire)
- Architecture structurel/situationnel, IVC dynamique inter-sectoriel
- 4 vues architecturales progressives (vue1→vue4) pour présentation
- Génération PNG de tous les diagrammes
- .gitignore : docs/**/*.dot au lieu de docs/*.dot

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 11:54:52 +02:00

243 lines
26 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# FabNum — Planification macro
Vues synthétiques dérivées de [EVOLUTIONS.md](EVOLUTIONS.md).
**Date** : 2026-04-02
---
## 1. Présentation synthétique temporelle
```
T0 T1 T2 T3 Horizon
│ │ │ │ │
│ PHASE 1 │ PHASE 2 │ PHASE 3 │ PHASE 4 │
│ Fondations │ Modèle & Stockage │ Données & Sources │ Fiches & API │
│ │ │ │ │
│ ┌─────────────────┐ │ ┌─────────────────┐ │ ┌─────────────────┐ │ ┌───────────────┐ │ ┌──────────────┐
│ │ P7 Validation │ │ │ P3 Modèle de │ │ │ P2 Gestion des │ │ │ P5 Templates │ │ │ P10 Énergie │
│ │ niveaux (revue │→│ │ données │→│ │ sources (//P2 │→│ │ et génération │ │ │ et eau │
│ │ littérature) │ │ │ structuré │ │ │ dès phase 2) │ │ │ fiches │ │ │ │
│ └─────────────────┘ │ └─────────────────┘ │ └─────────────────┘ │ └───────────────┘ │ │ P11 Géo fine │
│ ┌─────────────────┐ │ ┌─────────────────┐ │ ┌─────────────────┐ │ ┌───────────────┐ │ │ │
│ │ P6 Spike techno │ │ │ P6 Implém. │ │ │ P4 Amorçage │ │ │ P1 API REST │ │ │ P9 Multi- │
│ │ base données │ │ │ stockage retenu │ │ │ 3M+1C+1PF │ │ │ + rôles │ │ │ sectoriel │
│ │ (Docker/serveur)│ │ │ │ │ │ + audit exhaust. │ │ │ │ │ └──────────────┘
│ └─────────────────┘ │ └─────────────────┘ │ └─────────────────┘ │ ├───────────────┤ │
│ │ │ │ │ P8 Services, │ │
│ │ │ │ │ sécu, profils │ │
│ ║ │ ║ │ ║ │ └───────────────┘ │
│ parallèle │ séquentiel │ P2 // dès Ph.2 │ │
│ │ │ │ │
├─────────────────────┼─────────────────────┼─────────────────────┤ │
│ MVP = Phases 1+2+3 │ │ │
└─────────────────────┴─────────────────────┴─────────────────────┘ │
```
**Légende** : M = minerai, C = composant, PF = produit final, // = parallèle
---
## 2. Macro-DAF (Diagramme d'Activités Fonctionnel)
Vue par **fonctions métier** — ce que fait le système, pour qui, et dans quel ordre.
```
┌─────────────────────────────────────────────────────────────────────────────────────┐
│ FABNUM — ACTIVITÉS FONCTIONNELLES │
├─────────────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────────────────────────────────────────────────────────┐ │
│ │ F1. MODÉLISER LA CHAÎNE DE VALEUR │ │
│ │ ├─ F1.1 Valider les niveaux de décomposition (revue litt.) │ │
│ │ ├─ F1.2 Définir les intitulés génériques des niveaux │ │
│ │ ├─ F1.3 Définir les critères d'arrêt (profondeur) │ │
│ │ └─ F1.4 Gérer les chaînes principales et connexes │ │
│ │ Acteurs : Admin │ │
│ └──────────────┬───────────────────────────────────────────────────┘ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────────────┐ │
│ │ F2. STRUCTURER ET QUALIFIER LES DONNÉES │ │
│ │ ├─ F2.1 Spécifier les données (essentielles / informationnelles)│ │
│ │ ├─ F2.2 Définir le périmètre mesuré de chaque donnée │ │
│ │ ├─ F2.3 Identifier et catégoriser les sources │ │
│ │ ├─ F2.4 Attribuer les tiers de confiance (par source/domaine) │ │
│ │ ├─ F2.5 Qualifier les données (filtres qualité) │ │
│ │ ├─ F2.6 Arbitrer les divergences entre sources │ │
│ │ └─ F2.7 Calculer l'indice de fiabilité par donnée │ │
│ │ Acteurs : Admin │ │
│ └──────────────┬───────────────────────────────────────────────────┘ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────────────┐ │
│ │ F3. SURVEILLER ET MAINTENIR │ │
│ │ ├─ F3.1 Veiller sur les sources (huginn) │ │
│ │ ├─ F3.2 Détecter les variations anormales (alertes) │ │
│ │ ├─ F3.3 Contrôler les citations/affirmations (verify-citations)│ │
│ │ ├─ F3.4 Historiser les données et les indices │ │
│ │ └─ F3.5 Auditer l'exhaustivité des minerais │ │
│ │ Acteurs : Admin (gouvernance), Services internes (automatisé) │ │
│ └──────────────┬───────────────────────────────────────────────────┘ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────────────┐ │
│ │ F4. CALCULER LES INDICES DE CRITICITÉ │ │
│ │ ├─ F4.1 Calculer IHH, ICS, IVC, ISG (+ futurs : eau, énergie) │ │
│ │ ├─ F4.2 Pré-calculer à chaque mise à jour du graphe │ │
│ │ ├─ F4.3 Calculer les méta-indices dynamiques (sur sélection) │ │
│ │ └─ F4.4 Rétro-analyser sur des crises passées (backtesting) │ │
│ │ Acteurs : Services internes (automatisé) │ │
│ └──────────────┬───────────────────────────────────────────────────┘ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────────────┐ │
│ │ F5. PRODUIRE LES FICHES │ │
│ │ ├─ F5.1 Générer depuis les données via templates │ │
│ │ ├─ F5.2 Adapter par niveau (minerai, composant, opération...) │ │
│ │ └─ F5.3 Adapter par usage (expertise, synthèse, API/JSON) │ │
│ │ Acteurs : Services internes (automatisé) │ │
│ └──────────────┬───────────────────────────────────────────────────┘ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────────────┐ │
│ │ F6. EXPOSER ET SERVIR │ │
│ │ ├─ F6.1 Requêtage du graphe (expert / simplifié) │ │
│ │ ├─ F6.2 Consultation des fiches (tous formats) │ │
│ │ ├─ F6.3 Analyse de vulnérabilité et scénarios │ │
│ │ ├─ F6.4 Export (PDF, JSON, DOT) │ │
│ │ ├─ F6.5 Personnalisation client (projection SI) │ │
│ │ └─ F6.6 Intégration écosystème veille 360° │ │
│ │ Acteurs : Expert, Service, COMEX, Métiers, DSI │ │
│ └──────────────────────────────────────────────────────────────────┘ │
│ │
│ ┌──────────────────────────────────────────────────────────────────┐ │
│ │ F7. SÉCURISER ET CONTRÔLER (transversal)│ │
│ │ ├─ F7.1 Authentifier (utilisateur / clé API) │ │
│ │ ├─ F7.2 Autoriser par rôle (admin, expert, service) │ │
│ │ ├─ F7.3 Filtrer par profil de visibilité │ │
│ │ ├─ F7.4 Rate limiting │ │
│ │ └─ F7.5 Monitoring / observabilité │ │
│ │ Acteurs : Admin (configuration), Système (exécution) │ │
│ └──────────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────────────────────┘
Flux principal : F1 → F2 → F3 → F4 → F5 → F6
F3 tourne en continu (veille)
F4 se déclenche à chaque mise à jour du graphe
F7 est transversal à F5 et F6
```
---
## 3. Macro-DAT (Diagramme d'Activités Technique)
Vue par **composants techniques** — ce qu'il faut construire et comment ça s'articule.
```
┌─────────────────────────────────────────────────────────────────────────────────────┐
│ FABNUM — ARCHITECTURE TECHNIQUE │
├─────────────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌────────────────────────────────────────────────────────┐ │
│ │ COUCHE STOCKAGE │ │
│ │ │ │
│ │ ┌──────────────────┐ ┌───────────────────────────┐ │ │
│ │ │ Base graphe │ │ Historisation │ │ │
│ │ │ (Neo4j / PG+AGE │ │ (snapshots horodatés │ │ │
│ │ │ / ArangoDB) │ │ données + indices) │ │ │
│ │ │ │ │ │ │ │
│ │ │ • Nœuds (N0-N12)│ │ • Versions des données │ │ │
│ │ │ • Arêtes + attrs│ │ • Versions des indices │ │ │
│ │ │ • Multi-graphes │ │ • Audit trail │ │ │
│ │ │ • Schéma évolutif│ │ │ │ │
│ │ └────────┬─────────┘ └─────────────┬─────────────┘ │ │
│ └───────────┼──────────────────────────┼────────────────┘ │
│ │ │ │
│ ▼ ▼ │
│ ┌────────────────────────────────────────────────────────┐ │
│ │ COUCHE MOTEUR │ │
│ │ │ │
│ │ ┌──────────────┐ ┌──────────────┐ ┌───────────────┐ │ │
│ │ │ Calcul │ │ Arbitrage │ │ Qualification │ │ │
│ │ │ indices │ │ sources │ │ données │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ • IHH, ICS │ │ • Tier 1 win │ │ • Filtres │ │ │
│ │ │ • IVC, ISG │ │ • Convergence│ │ qualité │ │ │
│ │ │ • Méta-ind. │ │ • Alertes │ │ • Indice de │ │ │
│ │ │ • Extensible │ │ • Seuils │ │ fiabilité │ │ │
│ │ └──────────────┘ └──────────────┘ └───────────────┘ │ │
│ │ │ │
│ │ ┌──────────────┐ ┌──────────────┐ ┌───────────────┐ │ │
│ │ │ Requêtage │ │ Génération │ │ Import/Export │ │ │
│ │ │ graphe │ │ fiches │ │ │ │ │
│ │ │ │ │ │ │ • DOT (legacy)│ │ │
│ │ │ • Chemins │ │ • Templates │ │ • JSON │ │ │
│ │ │ • Filtrage │ │ niveau× │ │ • PDF │ │ │
│ │ │ • Sous-graphe│ │ usage │ │ • Backup/ │ │ │
│ │ │ • Projection │ │ • Rendu MD/ │ │ restore │ │ │
│ │ │ SI client │ │ JSON/PDF │ │ │ │ │
│ │ └──────────────┘ └──────────────┘ └───────────────┘ │ │
│ └────────────────────────┬───────────────────────────────┘ │
│ │ │
│ ┌────────────┴────────────┐ │
│ ▼ ▼ │
│ ┌─────────────────────┐ ┌─────────────────────────────────┐ │
│ │ SERVICES INTERNES │ │ API REST │ │
│ │ (non exposés) │ │ (point d'accès unique) │ │
│ │ │ │ │ │
│ │ ┌───────────────┐ │ │ ┌────────────┐ ┌────────────┐ │ │
│ │ │ Veille huginn │ │ │ │ Auth │ │ Rate │ │ │
│ │ │ sources │ │ │ │ + rôles │ │ limiting │ │ │
│ │ ├───────────────┤ │ │ ├────────────┤ ├────────────┤ │ │
│ │ │ Vérification │ │ │ │ Profils │ │ Monitoring │ │ │
│ │ │ citations │ │ │ │ visibilité │ │ logging │ │ │
│ │ ├───────────────┤ │ │ └────────────┘ └────────────┘ │ │
│ │ │ Recalcul │ │ │ │ │
│ │ │ indices │ │ │ Endpoints : │ │
│ │ ├───────────────┤ │ │ • /graphe/* (requêtage) │ │
│ │ │ Alertes │ │ │ • /fiches/* (consultation) │ │
│ │ │ (variations, │ │ │ • /analyse/* (vulnérabilités) │ │
│ │ │ convergence) │ │ │ • /indices/* (méta-indices) │ │
│ │ └───────────────┘ │ │ • /export/* (PDF, JSON, DOT) │ │
│ └─────────────────────┘ │ • /admin/* (CRUD, scripts) │ │
│ └──────────────┬──────────────────┘ │
│ │ │
│ ┌───────────────────────────┬┴──────────────────────┐ │
│ ▼ ▼ ▼ │
│ ┌─────────────────────┐ ┌──────────────────────┐ ┌─────────────────────┐ │
│ │ FRONTEND EXPERT │ │ SERVICES EXTERNES │ │ ÉCOSYSTÈME 360° │ │
│ │ (consomme l'API) │ │ (consomment l'API) │ │ (consomme l'API) │ │
│ │ │ │ │ │ │ │
│ │ • COMEX : synthèses│ │ • Génération IA │ │ • Veille strat. │ │
│ │ • Métiers : analyse│ │ rapports │ │ • IRON │ │
│ │ • DSI : dépend. SI│ │ • Agent local │ │ • Alertes │ │
│ │ │ │ client │ │ croisées │ │
│ └─────────────────────┘ └──────────────────────┘ └─────────────────────┘ │
│ │
│ ┌─────────────────────┐ │
│ │ ADMIN (scripts) │ Accès direct au moteur + API /admin/* │
│ │ • CRUD graphe │ │
│ │ • Gestion sources │ │
│ │ • Tiers, arbitrage │ │
│ │ • Backup/restore │ │
│ └─────────────────────┘ │
└─────────────────────────────────────────────────────────────────────────────────────┘
Composants à construire par phase :
Phase 1 : Revue littérature (P7) + Spike base données (P6)
Phase 2 : Couche stockage + Moteur (calcul, arbitrage, qualification)
Phase 3 : Services internes (veille, vérification) + Import données
Phase 4 : API REST + Frontend expert + Génération fiches
```
---
## Dépendances critiques
```
P7 (niveaux) ──→ P3 (modèle) ──→ P6 impl (stockage) ──→ P4 (amorçage) ──→ P5 (fiches)
P6 spike ─────────────────────→ P6 impl ▼
P1 (API) ──→ P8 (services)
P2 (sources) ─────────────────────────────→ P4 (amorçage)
Parallélisations possibles :
• P7 // P6 spike (phase 1)
• P2 identification // P3 + P6 impl (phase 2→3)
```