Files
sliding-automation/archive/v1_pipeline/agent_constraints.md
T

740 lines
21 KiB
Markdown
Raw 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.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"
```