Files
sliding-automation/agent_constraints_v2.md

640 lines
18 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# AGENT CONSTRAINTS v2 — généré par prompt_injection_v2.py
# Design System « PR Editorial » — 21 layouts
---
## LAYOUTS_CATALOGUE
#### Ouverture
`cover_split` (L01) — mode dark
→ Slide de couverture. titre = titre de la présentation, sous_titre = tagline en une phrase.
#### Synthèse
`executive_summary` (L05) — mode light
→ Synthèse SCR. Titre = So What. 3 cartes pleine largeur : situation, complication, resolution (1-2 phrases chacune).
#### Structure
`section_divider` (L03) — mode dark
→ Transition de section. titre = nom de la section. Le numéro est incrémenté automatiquement par le moteur.
#### Données
`big_stat` (L10) — mode light
→ Un chiffre héro plein écran. valeur = le chiffre (ex "78%"), description = ce qu'il signifie, source = référence.
#### Comparaison
`two_cols_text` (L07) — mode light
→ Deux colonnes en cartes avec en-tête coloré. left/right = {titre, bullets[]}. Gauche = navy, droite = corail.
#### Données
`kpi_grid` (L09) — mode light
→ 2 à 6 cartes KPI. items = [{label, valeur, description}]. valeur en grand corail, label en en-tête, description en source.
#### Message
`key_message` (L08) — mode dark
→ Message clé en citation plein écran. message = la phrase forte, detail = sous-texte optionnel.
#### Concept
`circular_diagram` (L17) — mode light
→ 3 à 6 valeurs en cercles + légende à droite. segments = [{label, description, couleur?}].
#### Texte structuré
`default_bullets` (L06) — mode light
→ Liste de points clés. Si texte au format "Mot : explication", le moteur met le mot en gras navy. Max 5 bullets. bullets = [{niveau, texte}].
#### Process
`numbered_steps` (L19) — mode light
→ Étapes en cartes pleine largeur avec badge rond numéroté. steps = [{numero, titre, description}].
#### Planning
`phases_timeline` (L23) — mode light
→ Phases reliées par une ligne pointillée. phases = [{label, periode}]. Couleurs du cycle theme.
#### Acteurs & décision
`recommendation_card` (L28) — mode panel
→ Carte de recommandation. Sidebar = numero + titre + cta. Corps = headline + bullets.
#### Clôture
`end_slide` (L30) — mode dark
→ Slide de fin. message = phrase de conclusion.
#### Transformation
`from_to_pairs` (L31) — mode light
→ Transformation avant/après en paires alignées. pairs = [{from, to}]. label_from/label_to = en-têtes colonnes. Max 5 paires. Idéal pour tangibiliser un changement.
#### Planning
`gantt_timeline` (L32) — mode light
→ Gantt par workstreams. periods = liste de labels (ex ["Juin","Juil"]). workstreams = [{label, tasks: [{label, start, end}]}]. start/end = index dans periods (0-based). Max 3 workstreams, 4 tâches chacun.
#### Historique
`yearly_timeline` (L33) — mode light
→ Frise chronologique horizontale. milestones = [{annee, label, actif?}]. actif = true pour le jalon courant (corail). Labels alternent haut/bas. Max 6 jalons.
#### Comparaison
`comparison_table` (L34) — mode light
→ Tableau structuré multi-critères. headers = liste de colonnes (1ère = critères). rows = [{label, values: []}] ou listes plates. Max 5 colonnes, 8 lignes.
#### Gouvernance
`raci_table` (L35) — mode light
→ Matrice RACI. roles = liste de rôles. tasks = [{label, raci: [R/A/C/I]}]. R=Responsable(corail), A=Autorité(navy), C=Consulté(slate), I=Informé(muted). Max 4 rôles, 8 tâches.
#### Process
`process_arrow` (L36) — mode light
→ Flux horizontal de 3 à 6 étapes. steps = [{titre, description}]. Badges numérotés corail, couleurs cycle alternées. Max 6 étapes.
#### Organisation
`org_chart` (L37) — mode light
→ Organigramme hiérarchique max 3 niveaux. root = {label, children: [{label, children?: [{label}]}]}. Max 4 enfants directs, 3 petits-enfants par enfant.
#### Priorisation
`matrix_2x2` (L38) — mode light
→ Matrice effort/impact. axis_x/axis_y = {label, low, high}. quadrants = {top_left, top_right, bottom_left, bottom_right}. items = [{label, x, y}] avec x/y de 0 à 100. Max 8 items.
#### Visuel
`image_split` (L50) — mode light
→ Image d'appui sur 40 % de la slide (side: left par défaut, right possible) + titre et points clés (max 4 bullets). À utiliser quand une image du dossier assets/ du projet illustre le propos ; image = nom de fichier exact tel que listé par /lire. legende (optionnelle) s'affiche sur un bandeau navy sous l'image.
`image_full` (L51) — mode dark
→ Ouverture de chapitre visuelle : image plein cadre + voile navy + titre display blanc. Alternative à section_divider quand un asset du projet s'y prête. image = nom de fichier exact de assets/.
#### Données
`bar_chart` (L42) — mode light
→ Comparaison de valeurs par catégories — graphique NATIF éditable. Max 8 catégories × 3 séries. series = liste de {label, values} ; values = nombres SANS guillemets, alignés sur categories. horizontal: true pour des barres (libellés longs). unite (ex M€) et source optionnels. Couleurs imposées : navy, coral, glacier.
`line_chart` (L43) — mode light
→ Évolution temporelle — graphique NATIF éditable. Max 12 points × 3 séries. points_x = libellés d'axe (mois, années...) ; series = {label, values}, nombres sans guillemets. Le dernier point de la première série est automatiquement mis en valeur (corail).
`donut_split` (L44) — mode light
→ Répartition d'un tout : anneau à gauche + légende détaillée à droite. 2 à 6 segments = {label, valeur} (nombres sans guillemets). valeur_centrale (optionnelle) s'affiche au centre de l'anneau (ex : total « 120 M€ »). Couleurs = cycle PR imposé.
`waterfall` (L45) — mode light
→ Pont de valeur (waterfall) : expliquer un écart entre deux montants par des variations successives. depart et arrivee = {label, valeur} ; marches = liste de {label, delta} SIGNÉ (positif ou négatif, max 8). Le moteur calcule les cumuls — ne jamais fournir de cumul. Idéal pour : évolution de budget, pont d'effectifs, décomposition d'un résultat.
#### Comparaison
`heatmap_table` (L46) — mode light
→ Tableau à intensité : évaluer plusieurs items sur plusieurs critères. headers = colonnes (max 6) ; rows = {label, scores} avec score ENTIER de 0 (faible) à 4 (fort), max 8 lignes. Le moteur traduit chaque score en teinte de navy — aucune autre donnée. Idéal pour : maturité, couverture fonctionnelle, cartographie de risques.
#### Process
`funnel` (L47) — mode light
→ Entonnoir de conversion : volumes décroissants d'étape en étape. etapes = {label, valeur, description?} du haut vers le bas, 3 à 5 étages. Largeurs proportionnelles aux valeurs (plancher de lisibilité), dernier étage corail. Idéal pour : pipeline commercial, adoption, qualification progressive.
#### Structure
`agenda` (L40) — mode light
→ Sommaire du deck : à placer en slide 2 pour toute présentation de plus de 15 minutes. sections = liste de {label, numero?, duree?, actif?}, 2 à 8 entrées. actif: true met la section en corail (utile pour les rappels d'agenda en cours de deck). duree (ex "10 min") s'affiche à droite en discret.
#### Concept
`pyramid` (L41) — mode light
→ Argumentation pyramidale : la conclusion au sommet, les fondations à la base. niveaux = liste de {label, description?}, EXACTEMENT 3 ou 4 niveaux, du sommet vers la base. Largeurs d'étages fixes gérées par le moteur. Idéal pour : message clé et ses appuis, hiérarchie stratégie/tactiques/moyens.
---
## SEQUENCING_RULES
### Règles de fluidité
- Maximum 2 layouts texte consécutifs : `default_bullets`, `two_cols_text`
- Après 3 slides denses → intercaler une respiration : `big_stat`, `key_message`, `section_divider`
- Jamais 2 `section_divider` consécutifs
- Alterner les modes : un slide dark (`section_divider`, `key_message`) toutes les 3-5 slides claires donne le rythme "sandwich" du design system
- Le dernier slide de contenu avant `end_slide` doit être narratif (`recommendation_card` ou `key_message`)
### 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`
- Comparaison ou opposition (avant/après, attentes/réalité, risques/solutions) → `two_cols_text`
- 2 à 5 étapes séquentielles → `numbered_steps`
- Phases avec périodes temporelles (mois, trimestres) → `phases_timeline`
- 3 à 6 concepts ou valeurs formant un système → `circular_diagram`
- Recommandation unique et actionnable → `recommendation_card`
- Citation ou message à marteler seul → `key_message`
- Transformation avant/après → `from_to_pairs` (plus parlant que two_cols_text)
- Planning projet avec tâches datées → `gantt_timeline`
- Frise chronologique d'historique ou de jalons annuels → `yearly_timeline`
- Tableau comparatif multi-critères → `comparison_table`
- Responsabilités par rôle → `raci_table`
- Flux séquentiel de 3 à 6 étapes (sans dates) → `process_arrow`
- Organigramme hiérarchique → `org_chart`
- Priorisation effort/impact → `matrix_2x2`
- Si le contenu ne rentre dans aucun layout spécialisé → `default_bullets`
### 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
- `default_bullets` : 5 bullets maximum — privilégier le format "Mot-clé : explication"
- Un `###` du Markdown avec un seul chiffre fort → envisager `big_stat` séparé
- Un `##` du Markdown = 1 `section_divider` (sauf présentation < 6 slides)
---
## NARRATIVE_PATTERNS
### 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)
two_cols_text ou default_bullets
section_divider ("Notre réponse")
numbered_steps
kpi_grid (preuve chiffrée)
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 (le calendrier)
numbered_steps (comment on s'organise)
recommendation_card (décisions à prendre)
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
```
### Pattern "Vision & Valeurs"
Adapté aux présentations de transformation ou de culture.
```
cover_split
executive_summary
section_divider
circular_diagram (le système de valeurs/concepts)
default_bullets (le cadre, les principes)
key_message (la conviction)
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)
---
## YAML_SCHEMAS
### `cover_split` (L01)
**Requis :** titre
**Optionnels :** sous_titre
**Exemple :**
```yaml
layout: cover_split
titre: "Titre de la présentation"
sous_titre: "Tagline en une phrase"
```
### `executive_summary` (L05)
**Requis :** titre, situation, complication, resolution
**Exemple :**
```yaml
layout: executive_summary
titre: "Le So What en titre affirmatif"
situation: "État des lieux factuel..."
complication: "Le problème ou la tension..."
resolution: "La réponse proposée..."
```
### `section_divider` (L03)
**Requis :** titre
**Exemple :**
```yaml
layout: section_divider
titre: "Nom de la section"
# le numéro de section est généré automatiquement
```
### `big_stat` (L10)
**Requis :** titre, valeur
**Optionnels :** description, source
**Exemple :**
```yaml
layout: big_stat
titre: "Titre affirmatif"
valeur: "78%"
description: "ce que le chiffre signifie"
source: "Référence — 2026"
```
### `two_cols_text` (L07)
**Requis :** titre, left, right
**Exemple :**
```yaml
layout: two_cols_text
titre: "Titre affirmatif"
left:
titre: "Titre colonne gauche"
bullets:
- texte: "Premier point"
- texte: "Deuxième point"
right:
titre: "Titre colonne droite"
bullets:
- texte: "Premier point"
```
### `kpi_grid` (L09)
**Requis :** titre, items
**Exemple :**
```yaml
layout: kpi_grid
titre: "Titre affirmatif"
items:
- label: "Indicateur 1"
valeur: "+13%"
description: "Source ou contexte de la valeur"
- label: "Indicateur 2"
valeur: "85%"
description: "Source ou contexte"
```
### `key_message` (L08)
**Requis :** message
**Optionnels :** detail
**Exemple :**
```yaml
layout: key_message
message: "Le message clé en une phrase forte."
detail: "Sous-texte optionnel en une ligne."
```
### `circular_diagram` (L17)
**Requis :** titre, segments
**Exemple :**
```yaml
layout: circular_diagram
titre: "Titre affirmatif"
segments:
- label: "Concept 1"
description: "Description courte"
- label: "Concept 2"
description: "Description courte"
- label: "Concept 3"
description: "Description courte"
```
### `default_bullets` (L06)
**Requis :** titre, bullets
**Exemple :**
```yaml
layout: default_bullets
titre: "Titre affirmatif"
bullets:
- texte: "Mot-clé : explication du point"
niveau: 1
- texte: "Autre mot-clé : explication"
niveau: 1
```
### `numbered_steps` (L19)
**Requis :** titre, steps
**Exemple :**
```yaml
layout: numbered_steps
titre: "Titre affirmatif"
steps:
- numero: 1
titre: "Première étape"
description: "Ce que ça implique concrètement"
- numero: 2
titre: "Deuxième étape"
description: "Ce que ça implique"
```
### `phases_timeline` (L23)
**Requis :** titre, phases
**Exemple :**
```yaml
layout: phases_timeline
titre: "Titre affirmatif"
phases:
- label: "Mois 1-2"
periode: "Ce qui se passe dans cette phase"
- label: "Mois 3-8"
periode: "Ce qui se passe"
```
### `recommendation_card` (L28)
**Requis :** titre, headline, bullets
**Optionnels :** numero, cta
**Exemple :**
```yaml
layout: recommendation_card
numero: 1
titre: "Nom court de la recommandation"
headline: "TROIS DÉCISIONS À PRENDRE MAINTENANT"
cta: "Décider en réunion du 30 juin"
bullets:
- texte: "Première décision précise"
- texte: "Deuxième décision précise"
```
### `end_slide` (L30)
**Requis :** message
**Exemple :**
```yaml
layout: end_slide
message: "Phrase de conclusion mémorable"
```
### `from_to_pairs` (L31)
**Requis :** titre, pairs
**Optionnels :** label_from, label_to
**Exemple :**
```yaml
layout: from_to_pairs
titre: "Titre affirmatif"
label_from: "SITUATION ACTUELLE"
label_to: "SITUATION CIBLE"
pairs:
- from: "État de départ"
to: "État cible"
- from: "Autre point de départ"
to: "Autre cible"
```
### `gantt_timeline` (L32)
**Requis :** titre, periods, workstreams
**Exemple :**
```yaml
layout: gantt_timeline
titre: "Titre affirmatif"
periods: ["Juin", "Juil", "Août", "Sept"]
workstreams:
- label: "Workstream 1"
tasks:
- label: "Tâche A"
start: 0
end: 2
- label: "Workstream 2"
tasks:
- label: "Tâche B"
start: 1
end: 3
```
### `yearly_timeline` (L33)
**Requis :** titre, milestones
**Exemple :**
```yaml
layout: yearly_timeline
titre: "Titre affirmatif"
milestones:
- annee: "2024"
label: "Premier jalon"
- annee: "2025"
label: "Deuxième jalon"
- annee: "2026"
label: "Jalon courant"
actif: true
```
### `comparison_table` (L34)
**Requis :** titre, headers, rows
**Exemple :**
```yaml
layout: comparison_table
titre: "Titre affirmatif"
headers: ["Critère", "Option A", "Option B"]
rows:
- label: "Premier critère"
values: ["Valeur A", "Valeur B"]
- label: "Deuxième critère"
values: ["Valeur A", "Valeur B"]
```
### `raci_table` (L35)
**Requis :** titre, roles, tasks
**Exemple :**
```yaml
layout: raci_table
titre: "Titre affirmatif"
roles: ["Rôle 1", "Rôle 2", "Rôle 3"]
tasks:
- label: "Première activité"
raci: ["A", "R", "C"]
- label: "Deuxième activité"
raci: ["A", "I", "R"]
```
### `process_arrow` (L36)
**Requis :** titre, steps
**Exemple :**
```yaml
layout: process_arrow
titre: "Titre affirmatif"
steps:
- titre: "Étape 1"
description: "Ce qui se passe"
- titre: "Étape 2"
description: "Ce qui se passe"
- titre: "Étape 3"
description: "Ce qui se passe"
```
### `org_chart` (L37)
**Requis :** titre, root
**Exemple :**
```yaml
layout: org_chart
titre: "Titre affirmatif"
root:
label: "Responsable racine"
children:
- label: "Manager 1"
children:
- label: "Équipe A"
- label: "Manager 2"
children:
- label: "Équipe B"
```
### `matrix_2x2` (L38)
**Requis :** titre, items
**Optionnels :** axis_x, axis_y, quadrants
**Exemple :**
```yaml
layout: matrix_2x2
titre: "Titre affirmatif"
axis_x:
label: "Effort"
low: "Faible"
high: "Élevé"
axis_y:
label: "Impact"
low: "Faible"
high: "Élevé"
quadrants:
top_left: "Gains rapides"
top_right: "Projets stratégiques"
bottom_left: "Déprioritiser"
bottom_right: "À planifier"
items:
- label: "Initiative A"
x: 30
y: 80
- label: "Initiative B"
x: 70
y: 75
```
### `image_split` (L50)
**Requis :** titre, image, bullets
**Optionnels :** side, legende
**Exemple :**
```yaml
layout: image_split
```
### `image_full` (L51)
**Requis :** titre, image
**Optionnels :** sous_titre
**Exemple :**
```yaml
layout: image_full
```
### `bar_chart` (L42)
**Requis :** titre, categories, series
**Optionnels :** unite, source, horizontal
**Exemple :**
```yaml
layout: bar_chart
```
### `line_chart` (L43)
**Requis :** titre, points_x, series
**Optionnels :** unite, source
**Exemple :**
```yaml
layout: line_chart
```
### `donut_split` (L44)
**Requis :** titre, segments
**Optionnels :** valeur_centrale, source
**Exemple :**
```yaml
layout: donut_split
```
### `waterfall` (L45)
**Requis :** titre, depart, marches, arrivee
**Optionnels :** unite, source
**Exemple :**
```yaml
layout: waterfall
```
### `heatmap_table` (L46)
**Requis :** titre, headers, rows
**Optionnels :** legende
**Exemple :**
```yaml
layout: heatmap_table
```
### `funnel` (L47)
**Requis :** titre, etapes
**Optionnels :** source
**Exemple :**
```yaml
layout: funnel
```
### `agenda` (L40)
**Requis :** titre, sections
**Exemple :**
```yaml
layout: agenda
```
### `pyramid` (L41)
**Requis :** titre, niveaux
**Exemple :**
```yaml
layout: pyramid
```