# 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. --- ## 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 ```