Pipeline Sliding : archive v1 + pipeline v2 opérationnel (21 layouts)
This commit is contained in:
@@ -0,0 +1,520 @@
|
||||
# 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
|
||||
```
|
||||
Reference in New Issue
Block a user