Revue critique (claude.ai) intégrée :
- Point 3 : versionnage formules indices + date disponibilité effective
- Point 4 : critères sélection amorçage (stresser les mécanismes)
- Point 6 : réversibilité dans le spike technique
- Point 7 : SCOR/ISO en contrepoint, axes validation complémentaires
- Point 8 : interface concrète IRON (3 cas d'usage)
- Point 12 : projection qualitative/chiffrée selon confiance, rétro-analyse calibration
- Point 13 : deux sorties bus (situationnelle/structurelle), coût IA différé
- Contraintes transversales : décisions différées avec signaux déclencheurs
Réorganisation document :
- Vue 1 en en-tête (principe fondamental)
- Ordre de réalisation aligné sur les 4 vues
- Progression architecturale (Vue 1→4) en fin de document
- DAF et DAT mis à jour (8 fonctions, bus d'impact, structurel/situationnel)
- Vue 4 corrigée (veille propose, ne injecte pas ; flèche API restaurée ;
sortie structurelle du bus)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- 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>
- Semi-produit : étape optionnelle, critique pour silicium/terres rares/cobalt
- 5 cas de chaînes identifiés (A-E) avec étapes optionnelles
- Matière composée : nouvel item (NMC, NdFeB) avec double ICS
- Renommage Minerai → Matière première (validé)
- Recyclage : piste Transformation directe vs Transformation de recyclage (en cours)
- Diagramme DOT des cas possibles aligné en colonnes
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Trois questions traitées avec preuves empiriques :
1. Extraction ≠ Transformation : confirmé sur 38 minerais (95% géographies
différentes, 0% acteurs identiques, écarts IHH jusqu'à 58 points)
2. Extraction = traitement primaire : colocalisés dans tous les cas étudiés,
un seul nœud justifié
3. Terminologie : "Traitement" renommé "Transformation" (aligné CRMA)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Définit les rôles (Stéphan, orchestrateur, agents), le cycle de travail
(brainstorming → spec → plan → implémentation → revue → validation),
les règles de briefing et la stratégie de cohérence.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
15 pays avaient des labels incohérents (sans accents, espaces ou tirets)
par rapport à leur forme correcte au niveau Pays géographique (N99) :
- EtatsUnis → États-Unis (73 nœuds)
- Bresil → Brésil (36 nœuds)
- Taiwan → Taïwan (23 nœuds)
- AfriqueDuSud → Afrique du Sud (7 nœuds)
- et 11 autres pays (Indonésie, Israël, Norvège, Pérou, etc.)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Correction des 907 erreurs ruff (pathlib, imports, nommage, simplifications, docstrings)
- Fix déduplication labels dans multiselect nœuds d'arrivée (analyse)
- Expansion 1→N label→IDs pour le Sankey (Pays d'opération)
- Ajout CLAUDE.md et document de design de l'audit
- Mise à jour .gitignore (artefacts tests exploratoires)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Problème:
- Dans l'onglet Analyse, la sélection fine des nœuds affichait les clés
techniques (ex: "Chine_geographique") au lieu des libellés lisibles
(ex: "Chine")
Solution:
- Création de mappings bidirectionnels ID↔Label pour chaque niveau
- Affichage des labels dans les multiselect pour l'utilisateur
- Stockage et utilisation des IDs en interne pour la logique métier
- Préservation de la compatibilité avec le système de persistance
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Problème:
- Warning lors de la génération PDF: Missing character U+2083 (₃)
- La police Latin Modern Roman ne supporte pas les indices Unicode
Cause:
- XeLaTeX utilise par défaut lmroman10-regular qui ne contient pas
les caractères Unicode étendus (indices, exposants, symboles)
Solution:
- Configuration de polices Liberation qui supportent pleinement Unicode
* mainfont=Liberation Serif (texte principal)
* sansfont=Liberation Sans (titres, interface)
* monofont=Liberation Mono (code, technique)
- Polices Liberation sont des équivalents open-source de Times/Arial/Courier
- Pré-installées sur Fedora/RHEL et disponibles sur toutes distributions
Avantages:
- Support complet Unicode (indices ₀₁₂₃, exposants ⁰¹²³, etc.)
- Polices open-source et largement disponibles
- Meilleur rendu pour caractères scientifiques et mathématiques
- Compatibles avec la métrique des polices Microsoft
Impact:
- Plus de warnings pour les caractères Unicode
- PDF générés avec caractères spéciaux correctement affichés
Problème:
- Lors du changement de fiche dans le selectbox, l'ancienne fiche
restait affichée et il fallait cliquer 2 fois pour changer
Cause:
- Le code assignait manuellement la valeur du selectbox au session_state
AVANT l'affichage du widget, créant un conflit avec l'index forcé
- Streamlit réexécutait le script avec l'ancienne valeur stockée
Solution:
- Utilisation du paramètre 'key' pour lier automatiquement le selectbox
au session_state au lieu d'une assignation manuelle
- Suppression des lignes redondantes d'assignation
Changements:
- app/fiches/interface.py: Ajout key pour les 2 selectbox
- .gitignore: Précision /Fiches/ pour ne pas ignorer app/fiches/
Impact:
- Sélection de fiche fonctionne maintenant au premier clic
- Comportement Streamlit standard et prévisible
- Retrait de .vscode/settings.json du tracking git
- Creation de .vscode/settings.json.example comme reference
- Mise a jour .gitignore avec commentaire explicatif
- Ajout htmlcov/ et .coverage dans .gitignore
Chaque developpeur peut maintenant copier settings.json.example
vers settings.json et adapter selon ses preferences.
Ajout d'un try/except pour gérer l'erreur lorsque l'hafnium est relié
à des composants ET au procédé EUV (connexe), ce qui génère une exception
lors du traitement de la section assemblage.
Impact:
- Module IA'nalyse: génération de rapports plus robuste
- Module Plan d'action: génération de rapports plus robuste
- Pas d'impact sur les autres modules de l'application
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>