From e2550067f33cdcb2fc2e389d5752b46c96a47e4b Mon Sep 17 00:00:00 2001 From: Thijs Kuipers Date: Thu, 16 Apr 2026 14:09:17 +0200 Subject: [PATCH] update presentation generatior --- helloprint-presentation-creator/SKILL.md | 68 ++++++++++++++++--- .../{ => references}/internal-language.md | 0 .../{ => references}/writing-style-guide.md | 0 3 files changed, 60 insertions(+), 8 deletions(-) rename helloprint-presentation-creator/{ => references}/internal-language.md (100%) rename helloprint-presentation-creator/{ => references}/writing-style-guide.md (100%) diff --git a/helloprint-presentation-creator/SKILL.md b/helloprint-presentation-creator/SKILL.md index 72587c3..42594ba 100644 --- a/helloprint-presentation-creator/SKILL.md +++ b/helloprint-presentation-creator/SKILL.md @@ -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. --- diff --git a/helloprint-presentation-creator/internal-language.md b/helloprint-presentation-creator/references/internal-language.md similarity index 100% rename from helloprint-presentation-creator/internal-language.md rename to helloprint-presentation-creator/references/internal-language.md diff --git a/helloprint-presentation-creator/writing-style-guide.md b/helloprint-presentation-creator/references/writing-style-guide.md similarity index 100% rename from helloprint-presentation-creator/writing-style-guide.md rename to helloprint-presentation-creator/references/writing-style-guide.md