update presentation generatior
This commit is contained in:
@@ -22,6 +22,55 @@ and layouts exactly as designed.
|
||||
|
||||
---
|
||||
|
||||
## WORKFLOW — ALWAYS FOLLOW THIS PROCESS
|
||||
|
||||
Before generating any slides, complete these 3 steps **in order**. Do not skip straight to generating.
|
||||
|
||||
### Step 1: Brief the presentation
|
||||
|
||||
Ask the user these questions **in a single message** before doing anything else:
|
||||
|
||||
1. **Doel** — Wat is het doel van deze presentatie? (informeren / overtuigen / updaten / inspireren)
|
||||
2. **Kernboodschap** — Als het publiek één ding onthoudt, wat moet dat zijn?
|
||||
3. **Publiek** — Voor wie is dit? (intern team, MT, externe partner, all-hands)
|
||||
4. **Taal** — Nederlands of Engels?
|
||||
5. **Beschikbare bronnen** — Welke databronnen mogen we gebruiken voor de inhoud?
|
||||
|
||||
For the last question, check which connectors/MCPs are active and mention them explicitly as options:
|
||||
- **Slack** → recente updates, team-aankondigingen, discussies ophalen
|
||||
- **Gmail** → e-mails, klantcommunicatie, recente updates
|
||||
- **Google Drive** → documenten, rapporten, bestaand materiaal
|
||||
- **Ahrefs / GSC** → SEO data, keyword performance, traffic metrics
|
||||
- **Contentful** → productcontent, beschrijvingen
|
||||
- **Datadog / analytics** → performance data en metrics
|
||||
|
||||
### Step 2: Propose a slide structure
|
||||
|
||||
Based on the brief, **propose a numbered slide plan** and wait for approval before generating anything. Example format:
|
||||
|
||||
```
|
||||
Voorgestelde opzet:
|
||||
1. Titelslide
|
||||
2. Agenda
|
||||
3. Sectie-divider — Q1 Financiën
|
||||
4. Big number — Omzethighlight
|
||||
5. Chart KPI cards — Financieel overzicht
|
||||
6. Section-divider — AI & Automation
|
||||
7. Before/after — Contentproductie
|
||||
8. Impact statement
|
||||
9. Afsluiting
|
||||
|
||||
Klopt deze opzet? Wil je slides toevoegen, weglaten of verplaatsen?
|
||||
```
|
||||
|
||||
**Do not generate until the user approves the structure.**
|
||||
|
||||
### Step 3: Generate
|
||||
|
||||
Only after approval: set up the generator, build the slide plan, and run `generate()`.
|
||||
|
||||
---
|
||||
|
||||
## SETUP (run once per session)
|
||||
|
||||
Before generating, ensure the generator and baseline are available:
|
||||
@@ -221,7 +270,7 @@ Light gray background with 4 equal feature/USP cards.
|
||||
| `Vier redenen om voor ons te kiezen` | Slide title |
|
||||
| `Laagste prijs` | Card title line 1 (all 4 cards identical in baseline) |
|
||||
| `garantie` | Card title line 2 (all 4 cards identical in baseline) |
|
||||
| `All-inclusive prijzen zonder verborgen kosten...` | Card body (all 4 identical in baseline) |
|
||||
| `All-inclusive prijzen zonder verborgen kosten. Vind je het goedkoper? Wij matchen het.` | Card body (all 4 identical in baseline) |
|
||||
| `30%` | Card stat (all 4 identical in baseline) |
|
||||
| `goedkoper dan traditioneel` | Card stat label (all 4 identical in baseline) |
|
||||
|
||||
@@ -235,19 +284,19 @@ cards share identical placeholder text, pass `n=1..4` to target each card indivi
|
||||
# Card 1
|
||||
("Laagste prijs", "Armeense lunch", 1),
|
||||
("garantie", "Tolma & Ghapama", 1),
|
||||
("All-inclusive prijzen zonder verborgen kosten...", "Sona nodigde iedereen uit voor een Armeense lunch op 10 april.", 1),
|
||||
("All-inclusive prijzen zonder verborgen kosten. Vind je het goedkoper? Wij matchen het.", "Sona nodigde iedereen uit voor een Armeense lunch op 10 april.", 1),
|
||||
# Card 2
|
||||
("Laagste prijs", "Paas taart", 2),
|
||||
("garantie", "van Marte", 2),
|
||||
("All-inclusive prijzen zonder verborgen kosten...", "Marte verraste het team met een zelfgemaakte paastaart.", 2),
|
||||
("All-inclusive prijzen zonder verborgen kosten. Vind je het goedkoper? Wij matchen het.", "Marte verraste het team met een zelfgemaakte paastaart.", 2),
|
||||
# Card 3
|
||||
("Laagste prijs", "Chinese snacks", 3),
|
||||
("garantie", "van Irene", 3),
|
||||
("All-inclusive prijzen zonder verborgen kosten...", "Irene bracht authentieke Chinese snacks mee voor het hele kantoor.", 3),
|
||||
("All-inclusive prijzen zonder verborgen kosten. Vind je het goedkoper? Wij matchen het.", "Irene bracht authentieke Chinese snacks mee voor het hele kantoor.", 3),
|
||||
# Card 4
|
||||
("Laagste prijs", "Boek tip", 4),
|
||||
("garantie", "van Dennis", 4),
|
||||
("All-inclusive prijzen zonder verborgen kosten...", "Dennis deelde zijn favoriete boek: Zero to One van Peter Thiel.", 4),
|
||||
("All-inclusive prijzen zonder verborgen kosten. Vind je het goedkoper? Wij matchen het.", "Dennis deelde zijn favoriete boek: Zero to One van Peter Thiel.", 4),
|
||||
# Remove stat elements (replace with empty or relevant values)
|
||||
("30%", ""),
|
||||
("goedkoper dan traditioneel", ""),
|
||||
@@ -319,12 +368,15 @@ White slide comparing two states side by side (gray left panel, dark right panel
|
||||
| `nodig` | Left stat 3 label |
|
||||
| `Geautomatiseerd` | Right panel title |
|
||||
| `Claude Skills handelen keyword research, copy generation en Contentful publishing af. Mens reviewt alleen het eindresultaat.` | Right panel body |
|
||||
| `15min` | Right stat 1 |
|
||||
| `500+` | Right stat 2 |
|
||||
| `15min` | Right stat 1 number |
|
||||
| `per product per markt` | Right stat 1 label (**appears twice** — the global replacement above also covers this) |
|
||||
| `500+` | Right stat 2 number |
|
||||
| `producten per week` | Right stat 2 label |
|
||||
| `0.5 FTE` | Right stat 3 |
|
||||
| `0.5 FTE` | Right stat 3 number |
|
||||
| `menselijke review` | Right stat 3 label |
|
||||
|
||||
> **Important:** `per product per markt` is used as the label for **both** left stat 1 and right stat 1. A single global replacement `("per product per markt", "your new label")` updates both sides at once. If you want different labels per side, replace right stat 1 first with a unique temporary value, then do the global replacement.
|
||||
>
|
||||
> Note: `⬤ VOORHEEN` and `⬤ NU MET AI SKILLS` are colored dot labels — best left as-is.
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user