Produire les livrables client (PDF + DOCX)¶
Les rapports exécutif et final/officiel se produisent à partir du rapport
scientifique (l'entrée, jamais réécrite). Ils sortent en PDF + DOCX, avec
des graphes nets et le template Word Rapport-*.
Périmètre : exécutif + final uniquement. Le scientifique reste produit comme avant et rendu en PDF technique, hors de ce flux.
La chaîne en une vue¶
scientific.md/.qmd (entrée, source de vérité)
└─ prepare → figures.json + PNG nets (Chromium + Chart.js) + KPI d'ancrage
└─ rédaction (agent, sous doctrine) → executive.md / final.md
└─ révision (4 passes) → corrections appliquées dans exec/final
└─ render → executive.{pdf,docx}, final.{pdf,docx} + self-audit.json
└─ verify → scientifique inchangé ? figures présentes ? entités sourcées ?
L'orchestrateur est
ghg-reporting/scripts/templates/build_client_deliverables.py.
Étapes¶
1. Préparer — génère les figures depuis les agrégats et fige le hash du scientifique :
2. Rédiger (agent) — écrire executive.md (synthèse, voix client) et
final.md (sommaire canonique I–VII + Annexes A–E), sous la
doctrine des livrables :
- citer uniquement les entités du manifeste
allowed_citations.json; - coller aux KPI du
derivation_context.json; - référencer les figures par leur
id:.
3. Réviser — appliquer les 4 passes (marqueurs IA, densification, fluidité,
arrondis cohérents avec l'incertitude) dans executive.md / final.md.
4. Rendre :
python build_client_deliverables.py render \
<scientific.md> <calc_dir> <out_dir> \
--reference rapport-final-reference.docx
Produit les DOCX (template Rapport-*, figures embarquées, tables pleine largeur
à grille grise) et tente les PDF (Quarto ; marqués pending sans toolchain
LaTeX). Émet self-audit.json et lance les contrôles verify.
Graphes seuls¶
python build_figures_json.py <aggregates.json> --out figures.json
python render_charts.py figures.json --out-dir figures/ --scale 2
Types autorisés en livrable client : doughnut, bar_horizontal, pareto,
bar_vertical_range. Palette sobre navy + teal (jamais d'or/crème).
Garde-fous (verify)¶
| Contrôle | Échec si |
|---|---|
| scientifique inchangé | son SHA-256 a changé |
| pas de figure fantôme | une figure_xx citée n'a pas de PNG |
| entités sourcées | une entité citée n'est pas au manifeste |
| pas de mojibake | accents/Unicode corrompus dans le DOCX |