1744 lines
45 KiB
YAML
1744 lines
45 KiB
YAML
# =============================================================================
|
||
# layouts.yaml — 28 layouts Pernod Ricard Sliding
|
||
# Projet : Sliding Design System
|
||
# Usage : lu par render_engine.py pour assembler composants + positions
|
||
# Dépend : theme.yaml (couleurs, typo, spacing) + components.yaml (briques)
|
||
# =============================================================================
|
||
# CONVENTION DE COORDONNÉES
|
||
# Origine : coin supérieur gauche du slide
|
||
# Unité : centimètres (cm)
|
||
# Slide : 33.87 cm × 19.05 cm (16:9)
|
||
# Zone utile (hors footer) : 33.87 × 17.85 cm
|
||
# Footer : y = 18.35 cm, hauteur 0.70 cm
|
||
#
|
||
# ZONES PRÉDÉFINIES (calculées depuis theme.yaml)
|
||
# TITLE_ZONE : left=1.80, top=0.45, width=30.00, height=1.90
|
||
# CONTENT_ZONE: left=1.50, top=2.80, width=30.87, height=14.85
|
||
# FULL_ZONE : left=1.50, top=0.45, width=30.87, height=17.20
|
||
#
|
||
# STRUCTURE D'UN LAYOUT
|
||
# meta : infos catalogue (famille, rôles narratifs, source)
|
||
# background : paramètres C01 slide_background
|
||
# signature : éléments PR fixes (accent_bar, logo, footer)
|
||
# title_zone : paramètres C02 slide_title
|
||
# content_zones: liste de zones nommées avec composant + position
|
||
# json_schema : champs attendus dans le JSON Agent (validation Agent 3)
|
||
# constraints : règles min/max pour Agent 3
|
||
# agent_hint : conseil narratif pour Agent 1/2
|
||
# =============================================================================
|
||
|
||
meta_global:
|
||
version: "1.0"
|
||
date: "2026-05-14"
|
||
total_layouts: 28
|
||
slide_width_cm: 33.87
|
||
slide_height_cm: 19.05
|
||
content_zone_top_cm: 2.80 # sous le titre
|
||
content_zone_bottom_cm: 18.05 # au-dessus du footer
|
||
content_height_cm: 15.25
|
||
footer_top_cm: 18.35
|
||
footer_height_cm: 0.70
|
||
|
||
|
||
layouts:
|
||
|
||
# ===========================================================================
|
||
# FAMILLE 1 — COUVERTURE & NAVIGATION (L01-L05)
|
||
# ===========================================================================
|
||
|
||
# ---------------------------------------------------------------------------
|
||
# L01 — cover_split
|
||
# ---------------------------------------------------------------------------
|
||
cover_split:
|
||
id: L01
|
||
famille: "Couverture & navigation"
|
||
source: "PR Template p.1, Data Awareness"
|
||
roles_narratifs: [accroche]
|
||
agent_hint: >
|
||
Réservé au slide 1. Titre fort et accrocheur, sous-titre contextualisé.
|
||
Pas de bullets. Message = raison d'être de la présentation en 1 phrase.
|
||
|
||
background:
|
||
component: C01
|
||
color: "theme.colors.primary.dark_blue"
|
||
diagonal_split: true
|
||
color_right: "theme.colors.primary.mid_blue"
|
||
diagonal_angle_deg: 15
|
||
|
||
signature:
|
||
accent_bar: false
|
||
logo_topbar: false
|
||
footer: false
|
||
|
||
title_zone:
|
||
component: C02
|
||
left_cm: 1.80
|
||
top_cm: 6.50
|
||
width_cm: 18.00
|
||
height_cm: 4.00
|
||
font_override:
|
||
size_pt: 40
|
||
color: "#ffffff"
|
||
bold: true
|
||
subtitle:
|
||
margin_top_cm: 0.50
|
||
size_pt: 20
|
||
color: "theme.colors.primary.bright_blue"
|
||
|
||
content_zones: [] # pas de contenu — cover pur
|
||
|
||
json_schema:
|
||
required:
|
||
- titre
|
||
optional:
|
||
- sous_titre
|
||
- accroche
|
||
constraints:
|
||
titre_max_chars: 70
|
||
sous_titre_max_chars: 80
|
||
|
||
|
||
# ---------------------------------------------------------------------------
|
||
# L02 — section_divider
|
||
# ---------------------------------------------------------------------------
|
||
section_divider:
|
||
id: L02
|
||
famille: "Couverture & navigation"
|
||
source: "PR Template p.8-9"
|
||
roles_narratifs: [transition]
|
||
agent_hint: >
|
||
Slide de transition entre parties. Titre = nom de la section, percutant.
|
||
Numéro de section bien visible. Pas de contenu textuel.
|
||
|
||
background:
|
||
component: C01
|
||
color: "theme.colors.primary.dark_blue"
|
||
diagonal_split: true
|
||
color_right: "#fdfcf9"
|
||
diagonal_angle_deg: 18
|
||
|
||
signature:
|
||
accent_bar: false
|
||
logo_topbar: false
|
||
footer: false
|
||
|
||
title_zone:
|
||
component: C02
|
||
left_cm: 1.80
|
||
top_cm: 7.50
|
||
width_cm: 17.00
|
||
height_cm: 3.00
|
||
font_override:
|
||
size_pt: 32
|
||
color: "#ffffff"
|
||
bold: true
|
||
|
||
content_zones:
|
||
- id: section_number
|
||
component: C01 # forme cercle rendu par render_engine
|
||
type: section_circle
|
||
center_x_cm: 25.50
|
||
center_y_cm: 9.50
|
||
diameter_cm: 2.80
|
||
fill: "theme.colors.primary.dark_blue"
|
||
text_color: "#ffffff"
|
||
font: "theme.typography.display"
|
||
size_pt: 32
|
||
|
||
json_schema:
|
||
required:
|
||
- titre
|
||
- numero_section
|
||
optional:
|
||
- image
|
||
constraints:
|
||
titre_max_chars: 60
|
||
numero_section_type: integer
|
||
|
||
|
||
# ---------------------------------------------------------------------------
|
||
# L03 — agenda
|
||
# ---------------------------------------------------------------------------
|
||
agenda:
|
||
id: L03
|
||
famille: "Couverture & navigation"
|
||
source: "PR Template p.4-7"
|
||
roles_narratifs: [transition, contexte]
|
||
agent_hint: >
|
||
Sommaire de la présentation. Items = titres des sections, pas des bullets de contenu.
|
||
Présenter l'ossature narrative, pas le détail.
|
||
|
||
background:
|
||
component: C01
|
||
color: "#ffffff"
|
||
|
||
signature:
|
||
accent_bar: true
|
||
logo_topbar: true
|
||
footer: true
|
||
|
||
title_zone:
|
||
component: C02
|
||
left_cm: 1.80
|
||
top_cm: 0.45
|
||
width_cm: 30.00
|
||
height_cm: 1.90
|
||
|
||
content_zones:
|
||
- id: agenda_items
|
||
component: C06 # bullet_list en mode agenda (cercles numérotés)
|
||
type: agenda_numbered # variante spéciale : cercles au lieu de puces
|
||
left_cm: 1.50
|
||
top_cm: 2.80
|
||
width_cm: 30.87
|
||
height_cm: 14.85
|
||
cols: 2 # 2 colonnes si items > 3
|
||
col_gap_cm: 2.00
|
||
circle_diameter_cm: 0.80
|
||
circle_fill: "theme.colors.primary.dark_blue"
|
||
item_height_cm: 1.40
|
||
|
||
json_schema:
|
||
required:
|
||
- titre
|
||
- items
|
||
optional: []
|
||
constraints:
|
||
items_min: 2
|
||
items_max: 6
|
||
item_schema:
|
||
required: [numero, titre]
|
||
optional: [presentateur]
|
||
titre_max_chars: 50
|
||
presentateur_max_chars: 30
|
||
|
||
|
||
# ---------------------------------------------------------------------------
|
||
# L04 — content_marker
|
||
# ---------------------------------------------------------------------------
|
||
content_marker:
|
||
id: L04
|
||
famille: "Couverture & navigation"
|
||
source: "Best practice 01 p.2-25"
|
||
roles_narratifs: [transition]
|
||
agent_hint: >
|
||
Rappel de l'agenda en cours de présentation. current_index indique
|
||
l'item actif (en orange). Identique à agenda en structure.
|
||
|
||
background:
|
||
component: C01
|
||
color: "theme.colors.primary.dark_blue"
|
||
|
||
signature:
|
||
accent_bar: false
|
||
logo_topbar: false
|
||
footer: false
|
||
|
||
title_zone: null # pas de titre — le marqueur fait office de titre
|
||
|
||
content_zones:
|
||
- id: marker_items
|
||
component: C06
|
||
type: agenda_marker # variante : item actif en rose, autres atténués
|
||
left_cm: 3.00
|
||
top_cm: 4.00
|
||
width_cm: 26.00
|
||
height_cm: 12.00
|
||
active_fill: "theme.colors.primary.rose"
|
||
inactive_fill: "rgba(255,255,255,0.25)"
|
||
active_text: "#ffffff"
|
||
inactive_text: "rgba(255,255,255,0.5)"
|
||
item_height_cm: 1.60
|
||
|
||
json_schema:
|
||
required:
|
||
- items
|
||
- current_index
|
||
optional: []
|
||
constraints:
|
||
items_min: 2
|
||
items_max: 6
|
||
current_index_type: integer
|
||
|
||
|
||
# ---------------------------------------------------------------------------
|
||
# L05 — end_slide
|
||
# ---------------------------------------------------------------------------
|
||
end_slide:
|
||
id: L05
|
||
famille: "Couverture & navigation"
|
||
source: "Data Awareness V2 p.20"
|
||
roles_narratifs: [conclusion, next-steps]
|
||
agent_hint: >
|
||
Dernier slide obligatoire. Titre = message de clôture fort.
|
||
Next steps = 2-4 actions concrètes. Contact optionnel.
|
||
|
||
background:
|
||
component: C01
|
||
color: "theme.colors.primary.dark_blue"
|
||
|
||
signature:
|
||
accent_bar: false
|
||
logo_topbar: false
|
||
footer: false
|
||
accent_bar_left_full: # barre rose pleine hauteur côté gauche
|
||
color: "theme.colors.primary.rose"
|
||
width_cm: 0.40
|
||
left_cm: 0.00
|
||
|
||
title_zone:
|
||
component: C02
|
||
left_cm: 2.50
|
||
top_cm: 5.50
|
||
width_cm: 22.00
|
||
height_cm: 3.00
|
||
font_override:
|
||
size_pt: 32
|
||
color: "#ffffff"
|
||
bold: true
|
||
subtitle:
|
||
size_pt: 18
|
||
color: "theme.colors.primary.bright_blue"
|
||
|
||
content_zones:
|
||
- id: next_steps
|
||
component: C06
|
||
type: bullet_list
|
||
left_cm: 2.50
|
||
top_cm: 10.00
|
||
width_cm: 22.00
|
||
height_cm: 5.00
|
||
font_override:
|
||
color: "rgba(255,255,255,0.85)"
|
||
size_pt: 12
|
||
- id: contact
|
||
component: C07
|
||
type: text_paragraph
|
||
left_cm: 2.50
|
||
top_cm: 16.00
|
||
width_cm: 22.00
|
||
height_cm: 1.80
|
||
font_override:
|
||
color: "rgba(255,255,255,0.60)"
|
||
size_pt: 10
|
||
|
||
json_schema:
|
||
required:
|
||
- titre
|
||
optional:
|
||
- sous_titre
|
||
- message
|
||
- next_steps
|
||
- contacts
|
||
constraints:
|
||
titre_max_chars: 70
|
||
next_steps_max: 4
|
||
|
||
|
||
# ===========================================================================
|
||
# FAMILLE 2 — TEXTE STRUCTURÉ (L06-L09)
|
||
# ===========================================================================
|
||
|
||
# ---------------------------------------------------------------------------
|
||
# L06 — default_bullets
|
||
# ---------------------------------------------------------------------------
|
||
default_bullets:
|
||
id: L06
|
||
famille: "Texte structuré"
|
||
source: "PR Template p.10"
|
||
roles_narratifs: [contexte, solution, preuve]
|
||
agent_hint: >
|
||
Layout texte par défaut. Titre = So What affirmatif.
|
||
Bullets L1 = arguments principaux, L2 = preuves/détails, L3 = exemples.
|
||
Max 5 bullets L1 pour rester lisible.
|
||
|
||
background:
|
||
component: C01
|
||
color: "#ffffff"
|
||
|
||
signature:
|
||
accent_bar: true
|
||
logo_topbar: true
|
||
footer: true
|
||
|
||
title_zone:
|
||
component: C02
|
||
left_cm: 1.80
|
||
top_cm: 0.45
|
||
width_cm: 30.00
|
||
height_cm: 1.90
|
||
|
||
content_zones:
|
||
- id: main_bullets
|
||
component: C06
|
||
left_cm: 1.80
|
||
top_cm: 2.80
|
||
width_cm: 30.07
|
||
height_cm: 14.85
|
||
|
||
json_schema:
|
||
required:
|
||
- titre
|
||
- bullets
|
||
optional:
|
||
- sous_titre
|
||
constraints:
|
||
bullets_min: 1
|
||
bullets_max: 10
|
||
bullet_l1_max: 5
|
||
bullet_max_chars: 120
|
||
|
||
|
||
# ---------------------------------------------------------------------------
|
||
# L07 — two_cols_text
|
||
# ---------------------------------------------------------------------------
|
||
two_cols_text:
|
||
id: L07
|
||
famille: "Texte structuré"
|
||
source: "Best practice 03 p.2.2-3.2"
|
||
roles_narratifs: [contexte, comparaison, solution]
|
||
agent_hint: >
|
||
Deux colonnes de texte en parallèle. Idéal pour mise en contraste :
|
||
Objectifs / Approche, Problème / Solution, Avant / Après conceptuel.
|
||
Chaque colonne a un titre-couleur distinct.
|
||
|
||
background:
|
||
component: C01
|
||
color: "#ffffff"
|
||
|
||
signature:
|
||
accent_bar: true
|
||
logo_topbar: true
|
||
footer: true
|
||
|
||
title_zone:
|
||
component: C02
|
||
left_cm: 1.80
|
||
top_cm: 0.45
|
||
width_cm: 30.00
|
||
height_cm: 1.90
|
||
|
||
content_zones:
|
||
- id: col_left
|
||
component: C07
|
||
left_cm: 1.50
|
||
top_cm: 2.80
|
||
width_cm: 14.80
|
||
height_cm: 14.85
|
||
titre_couleur: "theme.colors.primary.bright_blue"
|
||
- id: separator
|
||
type: vertical_line
|
||
x_cm: 16.93
|
||
top_cm: 3.00
|
||
height_cm: 14.00
|
||
color: "theme.signature.footer.border_top_color"
|
||
width_cm: 0.03
|
||
- id: col_right
|
||
component: C07
|
||
left_cm: 17.50
|
||
top_cm: 2.80
|
||
width_cm: 14.87
|
||
height_cm: 14.85
|
||
titre_couleur: "theme.colors.primary.rose"
|
||
|
||
json_schema:
|
||
required:
|
||
- titre
|
||
- left
|
||
- right
|
||
optional:
|
||
- sous_titre
|
||
constraints:
|
||
left_schema:
|
||
required: [titre, contenu]
|
||
titre_max_chars: 40
|
||
contenu_max_chars: 500
|
||
right_schema:
|
||
required: [titre, contenu]
|
||
titre_max_chars: 40
|
||
contenu_max_chars: 500
|
||
|
||
|
||
# ---------------------------------------------------------------------------
|
||
# L08 — key_message
|
||
# ---------------------------------------------------------------------------
|
||
key_message:
|
||
id: L08
|
||
famille: "Texte structuré"
|
||
source: "Data Awareness V2, Best practice 02"
|
||
roles_narratifs: [accroche, solution, conclusion]
|
||
agent_hint: >
|
||
Un seul message clé, occupant presque tout le slide. Style quote.
|
||
Fond crème, guillemets décoratifs. Pas de bullets.
|
||
Utiliser pour marteler une recommandation ou un So What décisif.
|
||
|
||
background:
|
||
component: C01
|
||
color: "theme.colors.primary.bright_warm"
|
||
|
||
signature:
|
||
accent_bar: false
|
||
logo_topbar: false
|
||
footer: true
|
||
|
||
title_zone: null # pas de titre — le message est le titre
|
||
|
||
content_zones:
|
||
- id: message_block
|
||
component: C08
|
||
left_cm: 3.00
|
||
top_cm: 3.50
|
||
width_cm: 27.87
|
||
height_cm: 12.00
|
||
guillemet_left_cm: 3.00
|
||
guillemet_top_cm: 3.50
|
||
text_left_cm: 5.00
|
||
text_top_cm: 5.00
|
||
|
||
json_schema:
|
||
required:
|
||
- message
|
||
optional:
|
||
- auteur
|
||
- fonction
|
||
constraints:
|
||
message_max_chars: 220
|
||
auteur_max_chars: 60
|
||
|
||
|
||
# ---------------------------------------------------------------------------
|
||
# L09 — executive_summary
|
||
# ---------------------------------------------------------------------------
|
||
executive_summary:
|
||
id: L09
|
||
famille: "Texte structuré"
|
||
source: "Best practice 02 p.2"
|
||
roles_narratifs: [contexte, solution]
|
||
agent_hint: >
|
||
Synthèse SCR en 3 blocs. Situation = état des lieux factuel.
|
||
Complication = le problème ou la tension. Résolution = la réponse.
|
||
Standard McKinsey/BCG pour ouvrir un deck stratégique.
|
||
|
||
background:
|
||
component: C01
|
||
color: "#ffffff"
|
||
|
||
signature:
|
||
accent_bar: true
|
||
logo_topbar: true
|
||
footer: true
|
||
|
||
title_zone:
|
||
component: C02
|
||
left_cm: 1.80
|
||
top_cm: 0.45
|
||
width_cm: 30.00
|
||
height_cm: 1.90
|
||
|
||
content_zones:
|
||
- id: bloc_situation
|
||
component: C07
|
||
left_cm: 1.50
|
||
top_cm: 2.80
|
||
width_cm: 30.87
|
||
height_cm: 4.50
|
||
titre_couleur: "theme.colors.primary.dark_blue"
|
||
- id: separator_1
|
||
type: horizontal_line
|
||
left_cm: 1.50
|
||
y_cm: 7.50
|
||
width_cm: 30.87
|
||
color: "theme.signature.footer.border_top_color"
|
||
- id: bloc_complication
|
||
component: C07
|
||
left_cm: 1.50
|
||
top_cm: 7.70
|
||
width_cm: 30.87
|
||
height_cm: 4.50
|
||
titre_couleur: "theme.colors.primary.rose"
|
||
- id: separator_2
|
||
type: horizontal_line
|
||
left_cm: 1.50
|
||
y_cm: 12.40
|
||
width_cm: 30.87
|
||
color: "theme.signature.footer.border_top_color"
|
||
- id: bloc_resolution
|
||
component: C07
|
||
left_cm: 1.50
|
||
top_cm: 12.60
|
||
width_cm: 30.87
|
||
height_cm: 4.50
|
||
titre_couleur: "theme.colors.primary.bright_blue"
|
||
|
||
json_schema:
|
||
required:
|
||
- titre
|
||
- situation
|
||
- complication
|
||
- resolution
|
||
optional:
|
||
- sous_titre
|
||
constraints:
|
||
situation_max_chars: 300
|
||
complication_max_chars: 300
|
||
resolution_max_chars: 300
|
||
|
||
|
||
# ===========================================================================
|
||
# FAMILLE 3 — DONNÉES & KPIs (L10-L14)
|
||
# ===========================================================================
|
||
|
||
# ---------------------------------------------------------------------------
|
||
# L10 — kpi_grid
|
||
# ---------------------------------------------------------------------------
|
||
kpi_grid:
|
||
id: L10
|
||
famille: "Données & KPIs"
|
||
source: "Data Awareness V2 p.4-8"
|
||
roles_narratifs: [preuve, contexte]
|
||
agent_hint: >
|
||
Grille de KPIs. Chaque carte = 1 indicateur avec sa valeur et son contexte.
|
||
La grille s'adapte automatiquement selon le nombre d'items (2-6).
|
||
Valeurs = chiffres impactants, pas des phrases.
|
||
|
||
background:
|
||
component: C01
|
||
color: "#ffffff"
|
||
|
||
signature:
|
||
accent_bar: true
|
||
logo_topbar: true
|
||
footer: true
|
||
|
||
title_zone:
|
||
component: C02
|
||
left_cm: 1.80
|
||
top_cm: 0.45
|
||
width_cm: 30.00
|
||
height_cm: 1.90
|
||
|
||
content_zones:
|
||
- id: kpi_cards
|
||
component: C09
|
||
left_cm: 1.50
|
||
top_cm: 2.80
|
||
width_cm: 30.87
|
||
height_cm: 14.85
|
||
grid_rules: "component.kpi_card.grid_rules"
|
||
card_gap_cm: 0.40
|
||
|
||
json_schema:
|
||
required:
|
||
- titre
|
||
- items
|
||
optional:
|
||
- sous_titre
|
||
constraints:
|
||
items_min: 2
|
||
items_max: 6
|
||
item_schema:
|
||
required: [titre, valeur]
|
||
optional: [sous_titre, couleur]
|
||
titre_max_chars: 30
|
||
valeur_max_chars: 12
|
||
sous_titre_max_chars: 60
|
||
|
||
|
||
# ---------------------------------------------------------------------------
|
||
# L11 — big_stat
|
||
# ---------------------------------------------------------------------------
|
||
big_stat:
|
||
id: L11
|
||
famille: "Données & KPIs"
|
||
source: "Standard MBB"
|
||
roles_narratifs: [preuve, accroche]
|
||
agent_hint: >
|
||
Un seul chiffre énorme, centré, pour un effet de choc.
|
||
Utiliser pour un indicateur décisif qui mérite d'être seul sur le slide.
|
||
Le label contextualise en 1 ligne max.
|
||
|
||
background:
|
||
component: C01
|
||
color: "#ffffff"
|
||
|
||
signature:
|
||
accent_bar: true
|
||
logo_topbar: true
|
||
footer: true
|
||
|
||
title_zone:
|
||
component: C02
|
||
left_cm: 1.80
|
||
top_cm: 0.45
|
||
width_cm: 30.00
|
||
height_cm: 1.90
|
||
|
||
content_zones:
|
||
- id: stat_display
|
||
component: C10
|
||
left_cm: 1.50
|
||
top_cm: 2.80
|
||
width_cm: 30.87
|
||
height_cm: 14.85
|
||
vertical_center: true
|
||
|
||
json_schema:
|
||
required:
|
||
- titre
|
||
- valeur
|
||
optional:
|
||
- sous_titre
|
||
- label
|
||
- source
|
||
constraints:
|
||
valeur_max_chars: 10
|
||
label_max_chars: 80
|
||
source_max_chars: 60
|
||
|
||
|
||
# ---------------------------------------------------------------------------
|
||
# L12 — comparison_table
|
||
# ---------------------------------------------------------------------------
|
||
comparison_table:
|
||
id: L12
|
||
famille: "Données & KPIs"
|
||
source: "Best practice 01 p.22"
|
||
roles_narratifs: [preuve, comparaison]
|
||
agent_hint: >
|
||
Tableau comparatif structuré. Header = noms des critères ou acteurs.
|
||
Rows = lignes de données. Max 6 colonnes × 8 lignes pour rester lisible.
|
||
|
||
background:
|
||
component: C01
|
||
color: "#ffffff"
|
||
|
||
signature:
|
||
accent_bar: true
|
||
logo_topbar: true
|
||
footer: true
|
||
|
||
title_zone:
|
||
component: C02
|
||
left_cm: 1.80
|
||
top_cm: 0.45
|
||
width_cm: 30.00
|
||
height_cm: 1.90
|
||
|
||
content_zones:
|
||
- id: table
|
||
component: C11
|
||
left_cm: 1.50
|
||
top_cm: 2.80
|
||
width_cm: 30.87
|
||
height_cm: 14.85
|
||
|
||
json_schema:
|
||
required:
|
||
- titre
|
||
- headers
|
||
- rows
|
||
optional:
|
||
- sous_titre
|
||
- col_widths
|
||
- highlight_col
|
||
constraints:
|
||
headers_min: 2
|
||
headers_max: 6
|
||
rows_min: 1
|
||
rows_max: 8
|
||
header_max_chars: 30
|
||
cell_max_chars: 60
|
||
|
||
|
||
# ---------------------------------------------------------------------------
|
||
# L13 — chart_callout
|
||
# ---------------------------------------------------------------------------
|
||
chart_callout:
|
||
id: L13
|
||
famille: "Données & KPIs"
|
||
source: "Best practice 03 (data viz)"
|
||
roles_narratifs: [preuve]
|
||
agent_hint: >
|
||
Graphique à gauche + encadré d'insight à droite. Le chart illustre,
|
||
le callout conclut. Suivre la règle BCG : le message clé se lit
|
||
sans regarder le graphique.
|
||
|
||
background:
|
||
component: C01
|
||
color: "#ffffff"
|
||
|
||
signature:
|
||
accent_bar: true
|
||
logo_topbar: true
|
||
footer: true
|
||
|
||
title_zone:
|
||
component: C02
|
||
left_cm: 1.80
|
||
top_cm: 0.45
|
||
width_cm: 30.00
|
||
height_cm: 1.90
|
||
|
||
content_zones:
|
||
- id: chart_area
|
||
component: C12
|
||
left_cm: 1.50
|
||
top_cm: 2.80
|
||
width_cm: 19.50
|
||
height_cm: 14.85
|
||
- id: insight_callout
|
||
component: C13
|
||
left_cm: 22.00
|
||
top_cm: 4.50
|
||
width_cm: 10.37
|
||
height_cm: 8.00
|
||
|
||
json_schema:
|
||
required:
|
||
- titre
|
||
- chart_type
|
||
- data
|
||
- insight
|
||
optional:
|
||
- sous_titre
|
||
- axis_x_label
|
||
- axis_y_label
|
||
- couleurs
|
||
- titre_insight
|
||
constraints:
|
||
chart_type_values: [bar, line, pie, donut]
|
||
data_min: 2
|
||
data_max: 8
|
||
insight_max_chars: 200
|
||
|
||
|
||
# ---------------------------------------------------------------------------
|
||
# L14 — benchmark
|
||
# ---------------------------------------------------------------------------
|
||
benchmark:
|
||
id: L14
|
||
famille: "Données & KPIs"
|
||
source: "Data Days 2022 p.11"
|
||
roles_narratifs: [contexte, comparaison]
|
||
agent_hint: >
|
||
Benchmark concurrents. Critères en lignes, acteurs en colonnes de barres.
|
||
Max 4 acteurs. Utiliser pour positionner PR vs marché ou comparer des options.
|
||
|
||
background:
|
||
component: C01
|
||
color: "#ffffff"
|
||
|
||
signature:
|
||
accent_bar: true
|
||
logo_topbar: true
|
||
footer: true
|
||
|
||
title_zone:
|
||
component: C02
|
||
left_cm: 1.80
|
||
top_cm: 0.45
|
||
width_cm: 30.00
|
||
height_cm: 1.90
|
||
|
||
content_zones:
|
||
- id: benchmark_bars
|
||
component: C14
|
||
left_cm: 1.50
|
||
top_cm: 2.80
|
||
width_cm: 30.87
|
||
height_cm: 14.85
|
||
critere_col_width_cm: 5.00
|
||
bars_area_width_cm: 25.87
|
||
|
||
json_schema:
|
||
required:
|
||
- titre
|
||
- criteria
|
||
- actors
|
||
- scores
|
||
optional:
|
||
- sous_titre
|
||
- couleurs_acteurs
|
||
constraints:
|
||
criteria_min: 2
|
||
criteria_max: 6
|
||
actors_min: 2
|
||
actors_max: 4
|
||
critere_max_chars: 40
|
||
actor_max_chars: 20
|
||
|
||
|
||
# ===========================================================================
|
||
# FAMILLE 4 — FRAMEWORKS VISUELS (L15-L19)
|
||
# ===========================================================================
|
||
|
||
# ---------------------------------------------------------------------------
|
||
# L15 — matrix_2x2
|
||
# ---------------------------------------------------------------------------
|
||
matrix_2x2:
|
||
id: L15
|
||
famille: "Frameworks visuels"
|
||
source: "PR Template p.20"
|
||
roles_narratifs: [contexte, solution]
|
||
agent_hint: >
|
||
Matrice 2×2 pour priorisation (impact/effort, urgence/importance…).
|
||
Chaque item = une bulle positionnée par coordonnées normalisées [0-100].
|
||
Nommer les 2 axes clairement. Max 8 bulles pour ne pas surcharger.
|
||
|
||
background:
|
||
component: C01
|
||
color: "#ffffff"
|
||
|
||
signature:
|
||
accent_bar: true
|
||
logo_topbar: true
|
||
footer: true
|
||
|
||
title_zone:
|
||
component: C02
|
||
left_cm: 1.80
|
||
top_cm: 0.45
|
||
width_cm: 30.00
|
||
height_cm: 1.90
|
||
|
||
content_zones:
|
||
- id: matrix
|
||
component: C15
|
||
left_cm: 3.50
|
||
top_cm: 2.80
|
||
width_cm: 26.87
|
||
height_cm: 14.50
|
||
axis_x_label_bottom_cm: 0.30
|
||
axis_y_label_left_cm: 0.30
|
||
|
||
json_schema:
|
||
required:
|
||
- titre
|
||
- axis_x
|
||
- axis_y
|
||
- items
|
||
optional:
|
||
- sous_titre
|
||
constraints:
|
||
axis_schema:
|
||
required: [label]
|
||
optional: [min_label, max_label]
|
||
items_min: 2
|
||
items_max: 8
|
||
item_schema:
|
||
required: [label, x, y]
|
||
optional: [taille, couleur]
|
||
label_max_chars: 25
|
||
x_range: [0, 100]
|
||
y_range: [0, 100]
|
||
|
||
|
||
# ---------------------------------------------------------------------------
|
||
# L16 — pyramid
|
||
# ---------------------------------------------------------------------------
|
||
pyramid:
|
||
id: L16
|
||
famille: "Frameworks visuels"
|
||
source: "PR Template p.44"
|
||
roles_narratifs: [contexte, solution]
|
||
agent_hint: >
|
||
Pyramide hiérarchique. Niveau 1 = sommet (plus petit, plus rare/premium).
|
||
Niveau N = base (plus large, plus fondamental). Callouts latéraux optionnels.
|
||
3 niveaux minimum, 5 maximum.
|
||
|
||
background:
|
||
component: C01
|
||
color: "#ffffff"
|
||
|
||
signature:
|
||
accent_bar: true
|
||
logo_topbar: true
|
||
footer: true
|
||
|
||
title_zone:
|
||
component: C02
|
||
left_cm: 1.80
|
||
top_cm: 0.45
|
||
width_cm: 30.00
|
||
height_cm: 1.90
|
||
|
||
content_zones:
|
||
- id: pyramid_shape
|
||
component: C16
|
||
center_x_cm: 16.93
|
||
top_cm: 3.00
|
||
max_width_cm: 18.00
|
||
height_cm: 13.50
|
||
callout_left_area_cm: 5.00 # zone pour callouts côté gauche
|
||
callout_right_area_cm: 5.00 # zone pour callouts côté droit
|
||
|
||
json_schema:
|
||
required:
|
||
- titre
|
||
- levels
|
||
optional:
|
||
- sous_titre
|
||
constraints:
|
||
levels_min: 3
|
||
levels_max: 5
|
||
level_schema:
|
||
required: [label]
|
||
optional: [description, couleur]
|
||
label_max_chars: 30
|
||
description_max_chars: 80
|
||
|
||
|
||
# ---------------------------------------------------------------------------
|
||
# L17 — circular_diagram
|
||
# ---------------------------------------------------------------------------
|
||
circular_diagram:
|
||
id: L17
|
||
famille: "Frameworks visuels"
|
||
source: "PR Template p.46-47"
|
||
roles_narratifs: [contexte, solution]
|
||
agent_hint: >
|
||
Diagramme circulaire avec logo PR central. Idéal pour écosystème,
|
||
dimensions complémentaires, cycle vertueux. Légende numérotée à droite.
|
||
Ne pas utiliser pour montrer des proportions — utiliser chart_callout.
|
||
|
||
background:
|
||
component: C01
|
||
color: "#ffffff"
|
||
|
||
signature:
|
||
accent_bar: true
|
||
logo_topbar: true
|
||
footer: true
|
||
|
||
title_zone:
|
||
component: C02
|
||
left_cm: 1.80
|
||
top_cm: 0.45
|
||
width_cm: 30.00
|
||
height_cm: 1.90
|
||
|
||
content_zones:
|
||
- id: circle
|
||
component: C17
|
||
center_x_cm: 10.00
|
||
center_y_cm: 10.50
|
||
outer_radius_cm: 3.50
|
||
- id: legend
|
||
component: C17
|
||
type: legend_only
|
||
left_cm: 16.50
|
||
top_cm: 3.50
|
||
width_cm: 15.87
|
||
height_cm: 13.50
|
||
item_height_cm: 1.60
|
||
|
||
json_schema:
|
||
required:
|
||
- titre
|
||
- segments
|
||
optional:
|
||
- sous_titre
|
||
constraints:
|
||
segments_min: 3
|
||
segments_max: 6
|
||
segment_schema:
|
||
required: [label, description]
|
||
optional: [couleur, poids]
|
||
label_max_chars: 30
|
||
description_max_chars: 80
|
||
|
||
|
||
# ---------------------------------------------------------------------------
|
||
# L18 — from_to
|
||
# ---------------------------------------------------------------------------
|
||
from_to:
|
||
id: L18
|
||
famille: "Frameworks visuels"
|
||
source: "PR Template p.23"
|
||
roles_narratifs: [solution, contexte]
|
||
agent_hint: >
|
||
Transformation FROM → TO. Chaque paire = un changement concret.
|
||
Bloc gauche optionnel pour contexte. Bloc jaune en overlap à droite
|
||
pour le résumé de la transformation ou le bénéfice attendu.
|
||
|
||
background:
|
||
component: C01
|
||
color: "#ffffff"
|
||
|
||
signature:
|
||
accent_bar: true
|
||
logo_topbar: true
|
||
footer: true
|
||
|
||
title_zone:
|
||
component: C02
|
||
left_cm: 1.80
|
||
top_cm: 0.45
|
||
width_cm: 30.00
|
||
height_cm: 1.90
|
||
|
||
content_zones:
|
||
- id: description_bloc
|
||
component: C07
|
||
optional: true
|
||
left_cm: 1.50
|
||
top_cm: 2.80
|
||
width_cm: 8.00
|
||
height_cm: 12.00
|
||
accent_top_color: "theme.colors.semantic.arrow_color"
|
||
accent_top_height: 0.12
|
||
- id: pairs_area
|
||
component: C18
|
||
left_cm: 10.50
|
||
top_cm: 2.80
|
||
width_cm: 14.00
|
||
height_cm: 12.00
|
||
from_label_top_cm: 0.00 # en-tête FROM/TO au-dessus des paires
|
||
from_label_text: "FROM"
|
||
to_label_text: "TO"
|
||
arrow_x_offset_cm: 7.50
|
||
- id: summary_box
|
||
component: C13
|
||
left_cm: 24.00
|
||
top_cm: 5.00
|
||
width_cm: 8.87
|
||
height_cm: 7.00
|
||
overlap: true # le box déborde légèrement sur pairs_area
|
||
|
||
json_schema:
|
||
required:
|
||
- titre
|
||
- pairs
|
||
optional:
|
||
- sous_titre
|
||
- description
|
||
- titre_summary
|
||
- summary
|
||
constraints:
|
||
pairs_min: 2
|
||
pairs_max: 5
|
||
pair_schema:
|
||
required: [from, to]
|
||
from_max_chars: 60
|
||
to_max_chars: 60
|
||
description_max_chars: 200
|
||
summary_max_chars: 150
|
||
|
||
|
||
# ---------------------------------------------------------------------------
|
||
# L19 — boxes_grid
|
||
# ---------------------------------------------------------------------------
|
||
boxes_grid:
|
||
id: L19
|
||
famille: "Frameworks visuels"
|
||
source: "PR Template p.17"
|
||
roles_narratifs: [preuve, contexte]
|
||
agent_hint: >
|
||
Matrice analytique dense. Colonne label (wheat yellow) + colonne KPI
|
||
+ 3-4 colonnes de contenu. Pour analyse multi-critères, roadmap détaillée,
|
||
ou comparaison de scenarios.
|
||
|
||
background:
|
||
component: C01
|
||
color: "#ffffff"
|
||
|
||
signature:
|
||
accent_bar: true
|
||
logo_topbar: true
|
||
footer: true
|
||
|
||
title_zone:
|
||
component: C02
|
||
left_cm: 1.80
|
||
top_cm: 0.45
|
||
width_cm: 30.00
|
||
height_cm: 1.90
|
||
|
||
content_zones:
|
||
- id: grid
|
||
component: C11
|
||
type: boxes_grid_variant # variante avec col label wheat + col KPI
|
||
left_cm: 1.50
|
||
top_cm: 2.50
|
||
width_cm: 30.87
|
||
height_cm: 15.15
|
||
label_col_width_cm: 4.50
|
||
kpi_col_width_cm: 2.00
|
||
header_height_cm: 0.70
|
||
row_height_cm: 2.80
|
||
|
||
json_schema:
|
||
required:
|
||
- titre
|
||
- columns
|
||
- rows
|
||
optional:
|
||
- sous_titre
|
||
constraints:
|
||
columns_min: 3
|
||
columns_max: 5
|
||
rows_min: 2
|
||
rows_max: 5
|
||
column_max_chars: 25
|
||
row_schema:
|
||
required: [label, kpi, contents]
|
||
label_max_chars: 30
|
||
kpi_max_chars: 8
|
||
content_max_chars: 80
|
||
|
||
|
||
# ===========================================================================
|
||
# FAMILLE 5 — PROCESS & ROADMAP (L20-L24)
|
||
# ===========================================================================
|
||
|
||
# ---------------------------------------------------------------------------
|
||
# L20 — numbered_steps
|
||
# ---------------------------------------------------------------------------
|
||
numbered_steps:
|
||
id: L20
|
||
famille: "Process & roadmap"
|
||
source: "Data Awareness V2 p.10"
|
||
roles_narratifs: [solution, methodologie]
|
||
agent_hint: >
|
||
Étapes numérotées verticalement. Idéal pour méthodologie, bonnes pratiques,
|
||
checklist d'implémentation. Titre de step = verbe d'action.
|
||
Description = résultat attendu, pas la procédure.
|
||
|
||
background:
|
||
component: C01
|
||
color: "#ffffff"
|
||
|
||
signature:
|
||
accent_bar: true
|
||
logo_topbar: true
|
||
footer: true
|
||
|
||
title_zone:
|
||
component: C02
|
||
left_cm: 1.80
|
||
top_cm: 0.45
|
||
width_cm: 30.00
|
||
height_cm: 1.90
|
||
|
||
content_zones:
|
||
- id: steps
|
||
component: C19
|
||
left_cm: 1.50
|
||
top_cm: 2.80
|
||
width_cm: 30.87
|
||
height_cm: 14.85
|
||
badge_left_cm: 0.00
|
||
title_left_cm: 1.20
|
||
desc_left_cm: 1.20
|
||
|
||
json_schema:
|
||
required:
|
||
- titre
|
||
- steps
|
||
optional:
|
||
- sous_titre
|
||
constraints:
|
||
steps_min: 2
|
||
steps_max: 6
|
||
step_schema:
|
||
required: [numero, titre]
|
||
optional: [description]
|
||
titre_max_chars: 50
|
||
description_max_chars: 120
|
||
|
||
|
||
# ---------------------------------------------------------------------------
|
||
# L21 — process_arrow
|
||
# ---------------------------------------------------------------------------
|
||
process_arrow:
|
||
id: L21
|
||
famille: "Process & roadmap"
|
||
source: "Best practice 03"
|
||
roles_narratifs: [solution, next-steps]
|
||
agent_hint: >
|
||
Chevrons horizontaux pour une roadmap phasée. Étape active = dark blue.
|
||
Dernier chevron = triangle fermé (→). Bullets sous chaque phase.
|
||
Max 5 étapes. Pas de numéro dans les labels.
|
||
|
||
background:
|
||
component: C01
|
||
color: "#ffffff"
|
||
|
||
signature:
|
||
accent_bar: true
|
||
logo_topbar: true
|
||
footer: true
|
||
|
||
title_zone:
|
||
component: C02
|
||
left_cm: 1.80
|
||
top_cm: 0.45
|
||
width_cm: 30.00
|
||
height_cm: 1.90
|
||
|
||
content_zones:
|
||
- id: chevrons
|
||
component: C20
|
||
left_cm: 0.50
|
||
top_cm: 2.90
|
||
width_cm: 32.87
|
||
chevron_height_cm: 1.00
|
||
bullets_top_cm: 4.20 # bullets commencent ici sous les chevrons
|
||
bullets_height_cm: 11.00
|
||
|
||
json_schema:
|
||
required:
|
||
- titre
|
||
- phases
|
||
optional:
|
||
- sous_titre
|
||
constraints:
|
||
phases_min: 2
|
||
phases_max: 5
|
||
phase_schema:
|
||
required: [label]
|
||
optional: [duree, actif, bullets, terminal]
|
||
label_max_chars: 20
|
||
duree_max_chars: 15
|
||
bullets_max: 4
|
||
bullet_max_chars: 60
|
||
|
||
|
||
# ---------------------------------------------------------------------------
|
||
# L22 — gantt_timeline
|
||
# ---------------------------------------------------------------------------
|
||
gantt_timeline:
|
||
id: L22
|
||
famille: "Process & roadmap"
|
||
source: "Best practice 03 p.2.1"
|
||
roles_narratifs: [next-steps, solution]
|
||
agent_hint: >
|
||
Gantt simplifié. Workstreams à gauche (optionnel), barres colorées sur
|
||
la timeline. Une couleur par workstream. Dates au format YYYY-MM.
|
||
Idéal pour présenter une roadmap opérationnelle sur 6-12 mois.
|
||
|
||
background:
|
||
component: C01
|
||
color: "#ffffff"
|
||
|
||
signature:
|
||
accent_bar: true
|
||
logo_topbar: true
|
||
footer: true
|
||
|
||
title_zone:
|
||
component: C02
|
||
left_cm: 1.80
|
||
top_cm: 0.45
|
||
width_cm: 30.00
|
||
height_cm: 1.90
|
||
|
||
content_zones:
|
||
- id: gantt
|
||
component: C21
|
||
left_cm: 1.50
|
||
top_cm: 2.80
|
||
width_cm: 30.87
|
||
height_cm: 14.85
|
||
label_col_width_cm: 5.50 # colonne labels workstream (optionnelle)
|
||
header_height_cm: 0.60 # ligne des mois
|
||
workstream_height_cm: 2.80 # hauteur par workstream (2 lignes max)
|
||
label_optional: true
|
||
|
||
json_schema:
|
||
required:
|
||
- titre
|
||
- period
|
||
- workstreams
|
||
optional:
|
||
- sous_titre
|
||
constraints:
|
||
period_schema:
|
||
required: [start, end]
|
||
format: "YYYY-MM"
|
||
workstreams_min: 1
|
||
workstreams_max: 5
|
||
workstream_schema:
|
||
optional: [label]
|
||
required: [tasks]
|
||
label_max_chars: 30
|
||
tasks_min: 1
|
||
tasks_max: 4
|
||
task_schema:
|
||
required: [start, end]
|
||
optional: [label, couleur, row]
|
||
|
||
|
||
# ---------------------------------------------------------------------------
|
||
# L23 — yearly_timeline
|
||
# ---------------------------------------------------------------------------
|
||
yearly_timeline:
|
||
id: L23
|
||
famille: "Process & roadmap"
|
||
source: "PR Template p.37"
|
||
roles_narratifs: [contexte]
|
||
agent_hint: >
|
||
Timeline horizontale de jalons annuels. Idéal pour historique ou prospective.
|
||
Jalon actif en rose. Labels années au-dessus, descriptions courtes en dessous.
|
||
Ne pas mettre plus de 6 jalons pour garder la lisibilité.
|
||
|
||
background:
|
||
component: C01
|
||
color: "#ffffff"
|
||
|
||
signature:
|
||
accent_bar: true
|
||
logo_topbar: true
|
||
footer: true
|
||
|
||
title_zone:
|
||
component: C02
|
||
left_cm: 1.80
|
||
top_cm: 0.45
|
||
width_cm: 30.00
|
||
height_cm: 1.90
|
||
|
||
content_zones:
|
||
- id: timeline
|
||
component: C22
|
||
left_cm: 1.50
|
||
top_cm: 2.80
|
||
width_cm: 30.87
|
||
height_cm: 14.85
|
||
axis_y_cm: 10.00 # position de l'axe horizontal
|
||
milestones_spacing: auto # espacement calculé automatiquement
|
||
|
||
json_schema:
|
||
required:
|
||
- titre
|
||
- milestones
|
||
optional:
|
||
- sous_titre
|
||
constraints:
|
||
milestones_min: 3
|
||
milestones_max: 6
|
||
milestone_schema:
|
||
required: [annee, label]
|
||
optional: [description, actif]
|
||
annee_max_chars: 10
|
||
label_max_chars: 40
|
||
description_max_chars: 80
|
||
|
||
|
||
# ---------------------------------------------------------------------------
|
||
# L24 — phases_timeline
|
||
# ---------------------------------------------------------------------------
|
||
phases_timeline:
|
||
id: L24
|
||
famille: "Process & roadmap"
|
||
source: "Data Days 2022 p.7"
|
||
roles_narratifs: [solution, methodologie]
|
||
agent_hint: >
|
||
Timeline en phases horizontales contiguës. Largeur proportionnelle à la durée.
|
||
Chaque phase = un bandeau coloré + période + livrables en bullets.
|
||
Pour projets séquentiels avec chevauchements possibles.
|
||
|
||
background:
|
||
component: C01
|
||
color: "#ffffff"
|
||
|
||
signature:
|
||
accent_bar: true
|
||
logo_topbar: true
|
||
footer: true
|
||
|
||
title_zone:
|
||
component: C02
|
||
left_cm: 1.80
|
||
top_cm: 0.45
|
||
width_cm: 30.00
|
||
height_cm: 1.90
|
||
|
||
content_zones:
|
||
- id: phase_bars
|
||
component: C22
|
||
type: phases_variant # variante : bandes contiguës horizontales
|
||
left_cm: 1.50
|
||
top_cm: 2.80
|
||
width_cm: 30.87
|
||
phase_bar_height_cm: 0.65
|
||
period_row_height_cm: 0.50
|
||
bullets_area_top_cm: 4.20
|
||
bullets_area_height_cm: 10.00
|
||
|
||
json_schema:
|
||
required:
|
||
- titre
|
||
- phases
|
||
optional:
|
||
- sous_titre
|
||
constraints:
|
||
phases_min: 2
|
||
phases_max: 5
|
||
phase_schema:
|
||
required: [label, periode]
|
||
optional: [items]
|
||
label_max_chars: 15
|
||
periode_max_chars: 15
|
||
items_max: 4
|
||
item_max_chars: 60
|
||
|
||
|
||
# ===========================================================================
|
||
# FAMILLE 6 — ACTEURS & DÉCISION (L25-L28)
|
||
# ===========================================================================
|
||
|
||
# ---------------------------------------------------------------------------
|
||
# L25 — org_chart
|
||
# ---------------------------------------------------------------------------
|
||
org_chart:
|
||
id: L25
|
||
famille: "Acteurs & décision"
|
||
source: "Best practice 03 (Operating model)"
|
||
roles_narratifs: [acteurs, contexte]
|
||
agent_hint: >
|
||
Organigramme hiérarchique. Niveau 1 = leadership (dark blue).
|
||
Nœuds distribués automatiquement. Max 4 niveaux, max 20 nœuds total.
|
||
Utile pour présenter le modèle opérationnel Data Governance.
|
||
|
||
background:
|
||
component: C01
|
||
color: "#ffffff"
|
||
|
||
signature:
|
||
accent_bar: true
|
||
logo_topbar: true
|
||
footer: true
|
||
|
||
title_zone:
|
||
component: C02
|
||
left_cm: 1.80
|
||
top_cm: 0.45
|
||
width_cm: 30.00
|
||
height_cm: 1.90
|
||
|
||
content_zones:
|
||
- id: org_tree
|
||
component: C23
|
||
left_cm: 1.50
|
||
top_cm: 2.80
|
||
width_cm: 30.87
|
||
height_cm: 14.85
|
||
layout_algorithm: top_down # distribution automatique top-down
|
||
node_min_width_cm: 2.50
|
||
node_height_cm: 0.65
|
||
level_gap_cm: 1.20
|
||
|
||
json_schema:
|
||
required:
|
||
- titre
|
||
- root
|
||
optional:
|
||
- sous_titre
|
||
constraints:
|
||
max_total_nodes: 20
|
||
max_levels: 4
|
||
node_schema:
|
||
required: [label]
|
||
optional: [sous_label, children]
|
||
label_max_chars: 35
|
||
sous_label_max_chars: 30
|
||
|
||
|
||
# ---------------------------------------------------------------------------
|
||
# L26 — raci_table
|
||
# ---------------------------------------------------------------------------
|
||
raci_table:
|
||
id: L26
|
||
famille: "Acteurs & décision"
|
||
source: "Standard project management"
|
||
roles_narratifs: [acteurs, solution]
|
||
agent_hint: >
|
||
Matrice RACI. Tâches en lignes, acteurs en colonnes header (R/A/C/I).
|
||
R = Responsible (fait), A = Accountable (décide), C = Consulté, I = Informé.
|
||
Chaque tâche a exactement 1 R et 1 A. Pas de cellule vide obligatoire pour C/I.
|
||
|
||
background:
|
||
component: C01
|
||
color: "#ffffff"
|
||
|
||
signature:
|
||
accent_bar: true
|
||
logo_topbar: true
|
||
footer: true
|
||
|
||
title_zone:
|
||
component: C02
|
||
left_cm: 1.80
|
||
top_cm: 0.45
|
||
width_cm: 30.00
|
||
height_cm: 1.90
|
||
|
||
content_zones:
|
||
- id: raci_grid
|
||
component: C24
|
||
left_cm: 1.50
|
||
top_cm: 2.80
|
||
width_cm: 30.87
|
||
height_cm: 14.85
|
||
task_col_width_cm: 8.00
|
||
role_col_width_cm: auto # distribué sur le reste
|
||
|
||
json_schema:
|
||
required:
|
||
- titre
|
||
- roles
|
||
- tasks
|
||
optional:
|
||
- sous_titre
|
||
constraints:
|
||
roles_min: 3
|
||
roles_max: 6
|
||
tasks_min: 2
|
||
tasks_max: 8
|
||
role_max_chars: 25
|
||
task_schema:
|
||
required: [label, raci]
|
||
label_max_chars: 50
|
||
raci_values: ["R", "A", "C", "I", ""]
|
||
|
||
|
||
# ---------------------------------------------------------------------------
|
||
# L27 — decision_tree
|
||
# ---------------------------------------------------------------------------
|
||
decision_tree:
|
||
id: L27
|
||
famille: "Acteurs & décision"
|
||
source: "Best practice 02 p.16"
|
||
roles_narratifs: [decision, solution]
|
||
agent_hint: >
|
||
Arbre de décision binaire. Question centrale → 2 branches YES/NO
|
||
→ 2 options par branche. Branche recommandée en rose.
|
||
Pour structurer un arbitrage stratégique avec ses implications concrètes.
|
||
|
||
background:
|
||
component: C01
|
||
color: "#ffffff"
|
||
|
||
signature:
|
||
accent_bar: true
|
||
logo_topbar: true
|
||
footer: true
|
||
|
||
title_zone:
|
||
component: C02
|
||
left_cm: 1.80
|
||
top_cm: 0.45
|
||
width_cm: 30.00
|
||
height_cm: 1.90
|
||
|
||
content_zones:
|
||
- id: decision_tree
|
||
component: C25
|
||
left_cm: 1.50
|
||
top_cm: 2.80
|
||
width_cm: 30.87
|
||
height_cm: 14.85
|
||
question_node:
|
||
width_cm: 6.00
|
||
height_cm: 3.00
|
||
left_cm: 1.50 # relatif à la zone
|
||
center_y_cm: 7.40
|
||
branch_node:
|
||
width_cm: 5.50
|
||
height_cm: 2.50
|
||
option_node:
|
||
width_cm: 5.00
|
||
height_cm: 1.60
|
||
|
||
json_schema:
|
||
required:
|
||
- titre
|
||
- question
|
||
- branches
|
||
optional:
|
||
- sous_titre
|
||
constraints:
|
||
question_max_chars: 80
|
||
branches_schema:
|
||
required: [yes, no]
|
||
branch_schema:
|
||
required: [label, options]
|
||
label_max_chars: 60
|
||
options_min: 1
|
||
options_max: 2
|
||
option_max_chars: 60
|
||
|
||
|
||
# ---------------------------------------------------------------------------
|
||
# L28 — recommendation_card
|
||
# ---------------------------------------------------------------------------
|
||
recommendation_card:
|
||
id: L28
|
||
famille: "Acteurs & décision"
|
||
source: "Best practice 02 p.14 (Fewer.Better)"
|
||
roles_narratifs: [solution, decision, next-steps]
|
||
agent_hint: >
|
||
Carte de recommandation unique et cadrée. Sidebar gauche jaune =
|
||
numéro + titre court + résumé + CTA. Corps droit = headline + bullets détaillés.
|
||
Format "Fewer. Better." — une recommandation précise par slide.
|
||
|
||
background:
|
||
component: C01
|
||
color: "#ffffff"
|
||
|
||
signature:
|
||
accent_bar: false # la sidebar remplace la barre d'accent
|
||
logo_topbar: false
|
||
footer: true
|
||
|
||
title_zone: null # le titre est dans la sidebar (numero + titre)
|
||
|
||
content_zones:
|
||
- id: sidebar
|
||
component: C26
|
||
left_cm: 0.00
|
||
top_cm: 0.00
|
||
width_cm: 8.00
|
||
height_cm: 18.35 # pleine hauteur (hors footer)
|
||
- id: main_header
|
||
type: header_band
|
||
left_cm: 8.50
|
||
top_cm: 1.00
|
||
width_cm: 24.87
|
||
height_cm: 1.20
|
||
background: "theme.colors.primary.dark_blue"
|
||
text_color: "#ffffff"
|
||
font: "theme.typography.body"
|
||
size_pt: 11
|
||
bold: true
|
||
letter_spacing: 0.15 # style "FEWER. BETTER."
|
||
- id: main_content
|
||
component: C06
|
||
left_cm: 8.50
|
||
top_cm: 2.50
|
||
width_cm: 24.37
|
||
height_cm: 14.85
|
||
|
||
json_schema:
|
||
required:
|
||
- numero
|
||
- titre
|
||
- headline
|
||
- bullets
|
||
optional:
|
||
- subtitle
|
||
- resume
|
||
- cta
|
||
constraints:
|
||
numero_type: integer
|
||
numero_min: 1
|
||
numero_max: 9
|
||
titre_max_chars: 30
|
||
headline_max_chars: 40
|
||
bullets_min: 2
|
||
bullets_max: 6
|
||
bullet_max_chars: 100
|
||
resume_max_chars: 120
|
||
cta_max_chars: 30
|