Aller au contenu

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 :

python build_client_deliverables.py prepare \
    <scientific.md> <calc_dir> <out_dir>

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 : ![](figures/figure_01_repartition_scopes.png).

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