740 lines
21 KiB
Markdown
740 lines
21 KiB
Markdown
# agent_constraints.md
|
||
# Généré automatiquement par prompt_injection.py
|
||
# Ne pas modifier manuellement.
|
||
|
||
======================================================================
|
||
## SECTION A — CATALOGUE DES LAYOUTS (pour The Designer)
|
||
======================================================================
|
||
|
||
#### Couverture & navigation
|
||
|
||
`cover_split` (L01) — Rôles : accroche
|
||
→ Réservé au slide 1. Titre fort et accrocheur, sous-titre contextualisé. Pas de bullets. Message = raison d'être de la...
|
||
|
||
`section_divider` (L02) — Rôles : transition
|
||
→ Slide de transition entre parties. Titre = nom de la section, percutant. Numéro de section bien visible. Pas de conte...
|
||
|
||
`agenda` (L03) — Rôles : transition / contexte
|
||
→ Sommaire de la présentation. Items = titres des sections, pas des bullets de contenu. Présenter l'ossature narrative,...
|
||
|
||
`content_marker` (L04) — Rôles : transition
|
||
→ Rappel de l'agenda en cours de présentation. current_index indique l'item actif (en orange). Identique à agenda en st...
|
||
|
||
`end_slide` (L05) — Rôles : conclusion / next-steps
|
||
→ Dernier slide obligatoire. Titre = message de clôture fort. Next steps = 2-4 actions concrètes. Contact optionnel.
|
||
|
||
#### Texte structuré
|
||
|
||
`default_bullets` (L06) — Rôles : contexte / solution / preuve
|
||
→ Layout texte par défaut. Titre = So What affirmatif. Bullets L1 = arguments principaux, L2 = preuves/détails, L3 = ex...
|
||
|
||
`two_cols_text` (L07) — Rôles : contexte / comparaison / solution
|
||
→ Deux colonnes de texte en parallèle. Idéal pour mise en contraste : Objectifs / Approche, Problème / Solution, Avant ...
|
||
|
||
`key_message` (L08) — Rôles : accroche / solution / conclusion
|
||
→ Un seul message clé, occupant presque tout le slide. Style quote. Fond crème, guillemets décoratifs. Pas de bullets. ...
|
||
|
||
`executive_summary` (L09) — Rôles : contexte / solution
|
||
→ Synthèse SCR en 3 blocs. Situation = état des lieux factuel. Complication = le problème ou la tension. Résolution = l...
|
||
|
||
#### Données & KPIs
|
||
|
||
`kpi_grid` (L10) — Rôles : preuve / contexte
|
||
→ Grille de KPIs. Chaque carte = 1 indicateur avec sa valeur et son contexte. La grille s'adapte automatiquement selon ...
|
||
|
||
`big_stat` (L11) — Rôles : preuve / accroche
|
||
→ Un seul chiffre énorme, centré, pour un effet de choc. Utiliser pour un indicateur décisif qui mérite d'être seul sur...
|
||
|
||
`comparison_table` (L12) — Rôles : preuve / comparaison
|
||
→ Tableau comparatif structuré. Header = noms des critères ou acteurs. Rows = lignes de données. Max 6 colonnes × 8 lig...
|
||
|
||
`chart_callout` (L13) — Rôles : preuve
|
||
→ Graphique à gauche + encadré d'insight à droite. Le chart illustre, le callout conclut. Suivre la règle BCG : le mess...
|
||
|
||
`benchmark` (L14) — Rôles : contexte / comparaison
|
||
→ Benchmark concurrents. Critères en lignes, acteurs en colonnes de barres. Max 4 acteurs. Utiliser pour positionner PR...
|
||
|
||
#### Frameworks visuels
|
||
|
||
`matrix_2x2` (L15) — Rôles : contexte / solution
|
||
→ Matrice 2×2 pour priorisation (impact/effort, urgence/importance…). Chaque item = une bulle positionnée par coordonné...
|
||
|
||
`pyramid` (L16) — Rôles : contexte / solution
|
||
→ Pyramide hiérarchique. Niveau 1 = sommet (plus petit, plus rare/premium). Niveau N = base (plus large, plus fondament...
|
||
|
||
`circular_diagram` (L17) — Rôles : contexte / solution
|
||
→ Diagramme circulaire avec logo PR central. Idéal pour écosystème, dimensions complémentaires, cycle vertueux. Légende...
|
||
|
||
`from_to` (L18) — Rôles : solution / contexte
|
||
→ Transformation FROM → TO. Chaque paire = un changement concret. Bloc gauche optionnel pour contexte. Bloc jaune en ov...
|
||
|
||
`boxes_grid` (L19) — Rôles : preuve / contexte
|
||
→ Matrice analytique dense. Colonne label (wheat yellow) + colonne KPI + 3-4 colonnes de contenu. Pour analyse multi-cr...
|
||
|
||
#### Process & roadmap
|
||
|
||
`numbered_steps` (L20) — Rôles : solution / methodologie
|
||
→ Étapes numérotées verticalement. Idéal pour méthodologie, bonnes pratiques, checklist d'implémentation. Titre de step...
|
||
|
||
`process_arrow` (L21) — Rôles : solution / next-steps
|
||
→ Chevrons horizontaux pour une roadmap phasée. Étape active = dark blue. Dernier chevron = triangle fermé (→). Bullets...
|
||
|
||
`gantt_timeline` (L22) — Rôles : next-steps / solution
|
||
→ Gantt simplifié. Workstreams à gauche (optionnel), barres colorées sur la timeline. Une couleur par workstream. Dates...
|
||
|
||
`yearly_timeline` (L23) — Rôles : contexte
|
||
→ Timeline horizontale de jalons annuels. Idéal pour historique ou prospective. Jalon actif en rose. Labels années au-d...
|
||
|
||
`phases_timeline` (L24) — Rôles : solution / methodologie
|
||
→ Timeline en phases horizontales contiguës. Largeur proportionnelle à la durée. Chaque phase = un bandeau coloré + pér...
|
||
|
||
#### Acteurs & décision
|
||
|
||
`org_chart` (L25) — Rôles : acteurs / contexte
|
||
→ Organigramme hiérarchique. Niveau 1 = leadership (dark blue). Nœuds distribués automatiquement. Max 4 niveaux, max 20...
|
||
|
||
`raci_table` (L26) — Rôles : acteurs / solution
|
||
→ Matrice RACI. Tâches en lignes, acteurs en colonnes header (R/A/C/I). R = Responsible (fait), A = Accountable (décide...
|
||
|
||
`decision_tree` (L27) — Rôles : decision / solution
|
||
→ Arbre de décision binaire. Question centrale → 2 branches YES/NO → 2 options par branche. Branche recommandée en rose...
|
||
|
||
`recommendation_card` (L28) — Rôles : solution / decision / next-steps
|
||
→ Carte de recommandation unique et cadrée. Sidebar gauche jaune = numéro + titre court + résumé + CTA. Corps droit = h...
|
||
|
||
======================================================================
|
||
## SECTION B — RÈGLES DE SÉQUENÇAGE (pour The Designer)
|
||
======================================================================
|
||
### Règles de fluidité
|
||
|
||
- Maximum 2 layouts texte consécutifs : `default_bullets`, `two_cols_text`
|
||
- Maximum 2 tableaux consécutifs : `comparison_table`, `benchmark`, `raci_table`, `boxes_grid`
|
||
- Après 3 slides denses → intercaler une respiration : `big_stat`, `key_message`, `section_divider`
|
||
- Jamais 2 `section_divider` consécutifs
|
||
- Le dernier slide de contenu avant `end_slide` doit être narratif (pas un tableau, pas un gantt)
|
||
|
||
### Règles de choix de layout
|
||
|
||
- 1 seul chiffre décisif → `big_stat` (jamais `kpi_grid` avec 1 item)
|
||
- 2 à 6 indicateurs chiffrés → `kpi_grid`
|
||
- Transformation conceptuelle (avant/après) → `from_to` (pas `two_cols_text`)
|
||
- Plus de 4 étapes avec timing → `process_arrow` ou `phases_timeline` (pas `numbered_steps`)
|
||
- Recommandation unique et précise → `recommendation_card`
|
||
- Données à comparer sur plusieurs critères avec plusieurs acteurs → `benchmark`
|
||
- Données à comparer en tableau structuré → `comparison_table`
|
||
- Si le contenu ne rentre dans aucun layout spécialisé → `default_bullets`
|
||
- Citation ou message à marteler seul → `key_message`
|
||
- Organigramme de gouvernance → `org_chart`
|
||
- Responsabilités par rôle → `raci_table`
|
||
|
||
### Règles de quantité
|
||
|
||
- Présentation 20 min → 10 à 15 slides max
|
||
- Présentation 10 min → 6 à 10 slides max
|
||
- Fusionner si > 15 slides : regrouper les slides proches thématiquement
|
||
- Un `###` du Markdown avec un seul chiffre fort → envisager `big_stat` séparé
|
||
- Un `##` du Markdown = 1 `section_divider` (sauf présentation < 6 slides)
|
||
|
||
======================================================================
|
||
## SECTION C — PATTERNS NARRATIFS (pour The Designer)
|
||
======================================================================
|
||
### Pattern "Problem → Solution → Proof"
|
||
Adapté aux présentations de recommandation stratégique.
|
||
```
|
||
cover_split
|
||
executive_summary (synthèse SCR dès le début)
|
||
section_divider ("Le problème")
|
||
big_stat (chiffre choc)
|
||
default_bullets ou comparison_table
|
||
section_divider ("Notre réponse")
|
||
from_to ou numbered_steps
|
||
kpi_grid ou chart_callout (preuve que ça marche)
|
||
recommendation_card (ce qu'on demande)
|
||
end_slide
|
||
```
|
||
|
||
### Pattern "Roadmap Deck"
|
||
Adapté aux présentations de planification / lancement de projet.
|
||
```
|
||
cover_split
|
||
executive_summary (où on va et pourquoi)
|
||
kpi_grid (état des lieux chiffré)
|
||
phases_timeline ou gantt_timeline
|
||
numbered_steps (comment on s'organise)
|
||
org_chart ou raci_table (qui fait quoi)
|
||
recommendation_card (décisions à prendre)
|
||
end_slide
|
||
```
|
||
|
||
### Pattern "Data Storytelling"
|
||
Adapté aux présentations de revue de performance ou data governance.
|
||
```
|
||
cover_split
|
||
big_stat (chiffre choc d'entrée)
|
||
default_bullets (contexte et enjeux)
|
||
kpi_grid (panorama des indicateurs)
|
||
chart_callout (analyse d'un graphique clé)
|
||
from_to (implication / transformation attendue)
|
||
yearly_timeline (historique ou prospective)
|
||
end_slide
|
||
```
|
||
|
||
### Pattern "Executive Briefing"
|
||
Adapté aux présentations courtes (< 10 slides) pour un CODIR.
|
||
```
|
||
cover_split
|
||
executive_summary
|
||
key_message (le So What en 1 slide)
|
||
kpi_grid ou big_stat
|
||
recommendation_card
|
||
end_slide
|
||
```
|
||
|
||
### Règles d'assemblage des patterns
|
||
|
||
- Les patterns sont des points de départ, pas des contraintes rigides
|
||
- Hybrider 2 patterns est possible si le contenu le justifie
|
||
- Toujours préserver : cover_split en premier, end_slide en dernier
|
||
- Les section_dividers sont optionnels pour les patterns courts (< 8 slides)
|
||
|
||
======================================================================
|
||
## SECTION D — SCHÉMAS YAML (pour The Encoder)
|
||
======================================================================
|
||
|
||
### `cover_split` (L01)
|
||
**Requis :** titre
|
||
**Optionnels :** sous_titre, accroche
|
||
**Contraintes :**
|
||
titre : max 70 caractères
|
||
sous_titre : max 80 caractères
|
||
**Exemple minimal :**
|
||
```yaml
|
||
layout: cover_split
|
||
titre: "Votre titre affirmatif"
|
||
sous_titre: "Présentation au CODIR — juin 2026"
|
||
```
|
||
|
||
### `section_divider` (L02)
|
||
**Requis :** titre, numero_section
|
||
**Optionnels :** image
|
||
**Contraintes :**
|
||
titre : max 60 caractères
|
||
**Exemple minimal :**
|
||
```yaml
|
||
layout: section_divider
|
||
titre: "Votre titre affirmatif"
|
||
numero_section: 1
|
||
```
|
||
|
||
### `agenda` (L03)
|
||
**Requis :** titre, items
|
||
**Contraintes :**
|
||
items : min = 2
|
||
items : max = 6
|
||
item_schema : requis: numero, titre | optionnels: presentateur
|
||
**Exemple minimal :**
|
||
```yaml
|
||
layout: agenda
|
||
titre: "Votre titre affirmatif"
|
||
items:
|
||
- numero: 1
|
||
titre: "Contexte et enjeux"
|
||
- numero: 2
|
||
titre: "Notre proposition"
|
||
```
|
||
|
||
### `content_marker` (L04)
|
||
**Requis :** items, current_index
|
||
**Contraintes :**
|
||
items : min = 2
|
||
items : max = 6
|
||
**Exemple minimal :**
|
||
```yaml
|
||
layout: content_marker
|
||
titre: "Votre titre affirmatif"
|
||
current_index: 2
|
||
```
|
||
|
||
### `end_slide` (L05)
|
||
**Requis :** titre
|
||
**Optionnels :** sous_titre, message, next_steps, contacts
|
||
**Contraintes :**
|
||
titre : max 70 caractères
|
||
next_steps : max = 4
|
||
**Exemple minimal :**
|
||
```yaml
|
||
layout: end_slide
|
||
titre: "Votre titre affirmatif"
|
||
message: "Merci pour votre attention"
|
||
next_steps:
|
||
- texte: "Valider le modèle — juillet"
|
||
niveau: 1
|
||
```
|
||
|
||
### `default_bullets` (L06)
|
||
**Requis :** titre, bullets
|
||
**Optionnels :** sous_titre
|
||
**Contraintes :**
|
||
bullets : min = 1
|
||
bullets : max = 10
|
||
bullet_l1 : max = 5
|
||
bullet : max 120 caractères
|
||
**Exemple minimal :**
|
||
```yaml
|
||
layout: default_bullets
|
||
titre: "Votre titre affirmatif"
|
||
bullets:
|
||
- texte: "Premier argument clé"
|
||
niveau: 1
|
||
- texte: "Détail ou preuve"
|
||
niveau: 2
|
||
```
|
||
|
||
### `two_cols_text` (L07)
|
||
**Requis :** titre, left, right
|
||
**Optionnels :** sous_titre
|
||
**Contraintes :**
|
||
left_schema : requis: titre, contenu
|
||
right_schema : requis: titre, contenu
|
||
**Exemple minimal :**
|
||
```yaml
|
||
layout: two_cols_text
|
||
titre: "Votre titre affirmatif"
|
||
left:
|
||
titre: "Titre colonne gauche"
|
||
contenu: "Texte de la colonne gauche..."
|
||
right:
|
||
titre: "Titre colonne droite"
|
||
contenu: "Texte de la colonne droite..."
|
||
```
|
||
|
||
### `key_message` (L08)
|
||
**Requis :** message
|
||
**Optionnels :** auteur, fonction
|
||
**Contraintes :**
|
||
message : max 220 caractères
|
||
auteur : max 60 caractères
|
||
**Exemple minimal :**
|
||
```yaml
|
||
layout: key_message
|
||
titre: "Votre titre affirmatif"
|
||
message: "Le message clé en une phrase forte."
|
||
```
|
||
|
||
### `executive_summary` (L09)
|
||
**Requis :** titre, situation, complication, resolution
|
||
**Optionnels :** sous_titre
|
||
**Contraintes :**
|
||
situation : max 300 caractères
|
||
complication : max 300 caractères
|
||
resolution : max 300 caractères
|
||
**Exemple minimal :**
|
||
```yaml
|
||
layout: executive_summary
|
||
titre: "Votre titre affirmatif"
|
||
situation: "État des lieux factuel..."
|
||
complication: "Le problème ou la tension..."
|
||
resolution: "La réponse proposée..."
|
||
```
|
||
|
||
### `kpi_grid` (L10)
|
||
**Requis :** titre, items
|
||
**Optionnels :** sous_titre
|
||
**Contraintes :**
|
||
items : min = 2
|
||
items : max = 6
|
||
item_schema : requis: titre, valeur | optionnels: sous_titre, couleur
|
||
**Exemple minimal :**
|
||
```yaml
|
||
layout: kpi_grid
|
||
titre: "Votre titre affirmatif"
|
||
items:
|
||
- titre: "Indicateur 1"
|
||
valeur: "85%"
|
||
sous_titre: "Contexte de la valeur"
|
||
- titre: "Indicateur 2"
|
||
valeur: "+25%"
|
||
```
|
||
|
||
### `big_stat` (L11)
|
||
**Requis :** titre, valeur
|
||
**Optionnels :** sous_titre, label, source
|
||
**Contraintes :**
|
||
valeur : max 10 caractères
|
||
label : max 80 caractères
|
||
source : max 60 caractères
|
||
**Exemple minimal :**
|
||
```yaml
|
||
layout: big_stat
|
||
titre: "Votre titre affirmatif"
|
||
valeur: "2 400"
|
||
label: "jours/homme de réconciliation par an"
|
||
source: "Estimation interne 2026"
|
||
```
|
||
|
||
### `comparison_table` (L12)
|
||
**Requis :** titre, headers, rows
|
||
**Optionnels :** sous_titre, col_widths, highlight_col
|
||
**Contraintes :**
|
||
headers : min = 2
|
||
headers : max = 6
|
||
rows : min = 1
|
||
rows : max = 8
|
||
header : max 30 caractères
|
||
cell : max 60 caractères
|
||
**Exemple minimal :**
|
||
```yaml
|
||
layout: comparison_table
|
||
titre: "Votre titre affirmatif"
|
||
headers:
|
||
- "Critère"
|
||
- "Option A"
|
||
- "Option B"
|
||
rows:
|
||
- ["Coût", "Élevé", "Moyen"]
|
||
- ["Délai", "3 mois", "6 mois"]
|
||
```
|
||
|
||
### `chart_callout` (L13)
|
||
**Requis :** titre, chart_type, data, insight
|
||
**Optionnels :** sous_titre, axis_x_label, axis_y_label, couleurs, titre_insight
|
||
**Contraintes :**
|
||
data : min = 2
|
||
data : max = 8
|
||
insight : max 200 caractères
|
||
**Exemple minimal :**
|
||
```yaml
|
||
layout: chart_callout
|
||
titre: "Votre titre affirmatif"
|
||
chart_type: bar
|
||
data:
|
||
- label: "T1"
|
||
valeur: 40
|
||
- label: "T2"
|
||
valeur: 65
|
||
insight: "La croissance s'accélère au T2 grâce au pilote."
|
||
```
|
||
|
||
### `benchmark` (L14)
|
||
**Requis :** titre, criteria, actors, scores
|
||
**Optionnels :** sous_titre, couleurs_acteurs
|
||
**Contraintes :**
|
||
criteria : min = 2
|
||
criteria : max = 6
|
||
actors : min = 2
|
||
actors : max = 4
|
||
critere : max 40 caractères
|
||
actor : max 20 caractères
|
||
**Exemple minimal :**
|
||
```yaml
|
||
layout: benchmark
|
||
titre: "Votre titre affirmatif"
|
||
criteria:
|
||
- "Coût"
|
||
- "Délai"
|
||
actors:
|
||
- "PR"
|
||
- "Concurrent A"
|
||
scores:
|
||
- [80, 60]
|
||
- [70, 85]
|
||
```
|
||
|
||
### `matrix_2x2` (L15)
|
||
**Requis :** titre, axis_x, axis_y, items
|
||
**Optionnels :** sous_titre
|
||
**Contraintes :**
|
||
axis_schema : requis: label | optionnels: min_label, max_label
|
||
items : min = 2
|
||
items : max = 8
|
||
item_schema : requis: label, x, y | optionnels: taille, couleur
|
||
**Exemple minimal :**
|
||
```yaml
|
||
layout: matrix_2x2
|
||
titre: "Votre titre affirmatif"
|
||
axis_x:
|
||
label: "Effort"
|
||
axis_y:
|
||
label: "Impact"
|
||
items:
|
||
- label: "Initiative A"
|
||
x: 20
|
||
y: 80
|
||
taille: 3
|
||
```
|
||
|
||
### `pyramid` (L16)
|
||
**Requis :** titre, levels
|
||
**Optionnels :** sous_titre
|
||
**Contraintes :**
|
||
levels : min = 3
|
||
levels : max = 5
|
||
level_schema : requis: label | optionnels: description, couleur
|
||
**Exemple minimal :**
|
||
```yaml
|
||
layout: pyramid
|
||
titre: "Votre titre affirmatif"
|
||
levels:
|
||
- label: "Vision"
|
||
description: "Callout explicatif optionnel"
|
||
- label: "Stratégie"
|
||
- label: "Opérations"
|
||
```
|
||
|
||
### `circular_diagram` (L17)
|
||
**Requis :** titre, segments
|
||
**Optionnels :** sous_titre
|
||
**Contraintes :**
|
||
segments : min = 3
|
||
segments : max = 6
|
||
segment_schema : requis: label, description | optionnels: couleur, poids
|
||
**Exemple minimal :**
|
||
```yaml
|
||
layout: circular_diagram
|
||
titre: "Votre titre affirmatif"
|
||
segments:
|
||
- label: "Segment 1"
|
||
description: "Description courte"
|
||
- label: "Segment 2"
|
||
description: "Description courte"
|
||
- label: "Segment 3"
|
||
description: "Description courte"
|
||
```
|
||
|
||
### `from_to` (L18)
|
||
**Requis :** titre, pairs
|
||
**Optionnels :** sous_titre, description, titre_summary, summary
|
||
**Contraintes :**
|
||
pairs : min = 2
|
||
pairs : max = 5
|
||
pair_schema : requis: from, to
|
||
description : max 200 caractères
|
||
summary : max 150 caractères
|
||
**Exemple minimal :**
|
||
```yaml
|
||
layout: from_to
|
||
titre: "Votre titre affirmatif"
|
||
pairs:
|
||
- from: "Situation actuelle"
|
||
to: "Situation cible"
|
||
- from: "Processus manuel"
|
||
to: "Processus automatisé"
|
||
```
|
||
|
||
### `boxes_grid` (L19)
|
||
**Requis :** titre, columns, rows
|
||
**Optionnels :** sous_titre
|
||
**Contraintes :**
|
||
columns : min = 3
|
||
columns : max = 5
|
||
rows : min = 2
|
||
rows : max = 5
|
||
column : max 25 caractères
|
||
row_schema : requis: label, kpi, contents
|
||
**Exemple minimal :**
|
||
```yaml
|
||
layout: boxes_grid
|
||
titre: "Votre titre affirmatif"
|
||
columns:
|
||
- "Colonne 1"
|
||
- "Colonne 2"
|
||
rows:
|
||
- label: "Ligne A"
|
||
kpi: "xx%"
|
||
contents: ["Contenu 1", "Contenu 2"]
|
||
```
|
||
|
||
### `numbered_steps` (L20)
|
||
**Requis :** titre, steps
|
||
**Optionnels :** sous_titre
|
||
**Contraintes :**
|
||
steps : min = 2
|
||
steps : max = 6
|
||
step_schema : requis: numero, titre | optionnels: description
|
||
**Exemple minimal :**
|
||
```yaml
|
||
layout: numbered_steps
|
||
titre: "Votre titre affirmatif"
|
||
steps:
|
||
- numero: 1
|
||
titre: "Première étape"
|
||
description: "Ce que ça implique concrètement"
|
||
- numero: 2
|
||
titre: "Deuxième étape"
|
||
```
|
||
|
||
### `process_arrow` (L21)
|
||
**Requis :** titre, phases
|
||
**Optionnels :** sous_titre
|
||
**Contraintes :**
|
||
phases : min = 2
|
||
phases : max = 5
|
||
phase_schema : requis: label | optionnels: duree, actif, bullets, terminal
|
||
**Exemple minimal :**
|
||
```yaml
|
||
layout: process_arrow
|
||
titre: "Votre titre affirmatif"
|
||
phases:
|
||
- label: "Phase 1"
|
||
duree: "Juin"
|
||
actif: false
|
||
bullets: ["Livrable A", "Livrable B"]
|
||
- label: "Phase 2"
|
||
duree: "Juil-Sept"
|
||
actif: true
|
||
```
|
||
|
||
### `gantt_timeline` (L22)
|
||
**Requis :** titre, period, workstreams
|
||
**Optionnels :** sous_titre
|
||
**Contraintes :**
|
||
period_schema : requis: start, end
|
||
workstreams : min = 1
|
||
workstreams : max = 5
|
||
workstream_schema : requis: tasks | optionnels: label
|
||
**Exemple minimal :**
|
||
```yaml
|
||
layout: gantt_timeline
|
||
titre: "Votre titre affirmatif"
|
||
period:
|
||
start: "2026-06"
|
||
end: "2026-12"
|
||
workstreams:
|
||
- label: "Workstream 1"
|
||
tasks:
|
||
- start: "2026-06"
|
||
end: "2026-08"
|
||
```
|
||
|
||
### `yearly_timeline` (L23)
|
||
**Requis :** titre, milestones
|
||
**Optionnels :** sous_titre
|
||
**Contraintes :**
|
||
milestones : min = 3
|
||
milestones : max = 6
|
||
milestone_schema : requis: annee, label | optionnels: description, actif
|
||
**Exemple minimal :**
|
||
```yaml
|
||
layout: yearly_timeline
|
||
titre: "Votre titre affirmatif"
|
||
milestones:
|
||
- annee: "2024"
|
||
label: "Lancement du projet"
|
||
- annee: "2025"
|
||
label: "Pilote Suède"
|
||
actif: true
|
||
- annee: "2026"
|
||
label: "Déploiement nordique"
|
||
```
|
||
|
||
### `phases_timeline` (L24)
|
||
**Requis :** titre, phases
|
||
**Optionnels :** sous_titre
|
||
**Contraintes :**
|
||
phases : min = 2
|
||
phases : max = 5
|
||
phase_schema : requis: label, periode | optionnels: items
|
||
**Exemple minimal :**
|
||
```yaml
|
||
layout: phases_timeline
|
||
titre: "Votre titre affirmatif"
|
||
phases:
|
||
- label: "PREP"
|
||
periode: "Juin"
|
||
items: ["Brief équipe", "Setup outil"]
|
||
- label: "PROD"
|
||
periode: "Juil-Oct"
|
||
items: ["Développement", "Tests"]
|
||
```
|
||
|
||
### `org_chart` (L25)
|
||
**Requis :** titre, root
|
||
**Optionnels :** sous_titre
|
||
**Contraintes :**
|
||
node_schema : requis: label | optionnels: sous_label, children
|
||
**Exemple minimal :**
|
||
```yaml
|
||
layout: org_chart
|
||
titre: "Votre titre affirmatif"
|
||
root:
|
||
label: "Data Gov Leader"
|
||
children:
|
||
- label: "Data Owner Finance"
|
||
children:
|
||
- label: "Data Steward"
|
||
- label: "Data Owner Supply"
|
||
```
|
||
|
||
### `raci_table` (L26)
|
||
**Requis :** titre, roles, tasks
|
||
**Optionnels :** sous_titre
|
||
**Contraintes :**
|
||
roles : min = 3
|
||
roles : max = 6
|
||
tasks : min = 2
|
||
tasks : max = 8
|
||
role : max 25 caractères
|
||
task_schema : requis: label, raci
|
||
**Exemple minimal :**
|
||
```yaml
|
||
layout: raci_table
|
||
titre: "Votre titre affirmatif"
|
||
roles:
|
||
- "Data Owner"
|
||
- "Data Steward"
|
||
- "IT"
|
||
tasks:
|
||
- label: "Définir les règles qualité"
|
||
raci: ["A", "R", "C"]
|
||
- label: "Exécuter les contrôles"
|
||
raci: ["A", "R", "I"]
|
||
```
|
||
|
||
### `decision_tree` (L27)
|
||
**Requis :** titre, question, branches
|
||
**Optionnels :** sous_titre
|
||
**Contraintes :**
|
||
question : max 80 caractères
|
||
branches_schema : requis: True, False
|
||
**Exemple minimal :**
|
||
```yaml
|
||
layout: decision_tree
|
||
titre: "Votre titre affirmatif"
|
||
question: "Faut-il déployer le pilote en Suède ?"
|
||
branches:
|
||
yes:
|
||
label: "Engagement DG confirmé"
|
||
options: ["Démarrer en juin", "Allouer 0.5 ETP"]
|
||
no:
|
||
label: "Engagement DG manquant"
|
||
options: ["Reporter à septembre", "Choisir une autre filiale"]
|
||
```
|
||
|
||
### `recommendation_card` (L28)
|
||
**Requis :** numero, titre, headline, bullets
|
||
**Optionnels :** subtitle, resume, cta
|
||
**Contraintes :**
|
||
numero : min = 1
|
||
numero : max = 9
|
||
titre : max 30 caractères
|
||
headline : max 40 caractères
|
||
bullets : min = 2
|
||
bullets : max = 6
|
||
bullet : max 100 caractères
|
||
resume : max 120 caractères
|
||
cta : max 30 caractères
|
||
**Exemple minimal :**
|
||
```yaml
|
||
layout: recommendation_card
|
||
titre: "Votre titre affirmatif"
|
||
numero: 1
|
||
headline: "TROIS DÉCISIONS AVANT FIN JUIN"
|
||
bullets:
|
||
- texte: "Valider le modèle avec les DG locaux"
|
||
niveau: 1
|
||
- texte: "Nommer les Data Owners"
|
||
niveau: 1
|
||
- texte: "Allouer 0.5 ETP par filiale"
|
||
niveau: 1
|
||
cta: "Décider en réunion du 30 juin"
|
||
``` |