Skip to content

feat(powerclaude): skill voor PowerPoint-presentaties in Npuls-huisstijl - #97

Merged
aslamht merged 2 commits into
mainfrom
feat/powerclaude
Oct 1, 2026
Merged

aslamht merged 2 commits into
mainfrom
feat/powerclaude

Conversation

@aslamht

@aslamht aslamht commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

Type of Change

  • New feature

Description of Changes

Nieuwe skill powerclaude (PowerPoint + Claude): maakt een bewerkbare .pptx in Npuls/CEDA-huisstijl, als derde presentatieskill naast clidev (Slidev) en clanna (HTML). Claude schrijft alleen de inhoud als deck-spec; de vormgeving komt uit vaste layouts.

  • scripts/build.mjs: valideert de spec en bouwt de .pptx met pptxgenjs (uit de node_modules van clidev-presentaties)
  • scripts/lib/layouts.mjs: 13 slidetypes (title, section, stats, cards, split, list, table, chart, quote, image, closing + de vaste ceda en contact); tekstvakken, vormen, native tabellen en grafieken blijven bewerkbaar in PowerPoint
  • Vaste CEDA-slides, woordelijk gelijk aan clidev/_template.md: ceda ("Wie is CEDA", Slide16.PNG, direct na de titel, zonder links) en contact ("Blijf in contact", Slide1.PNG, klikbare kaarten voor GitHub/Community/e-mail, altijd de laatste slide). De build waarschuwt als ze ontbreken, verkeerd staan of velden meekrijgen.
  • scripts/lib/tokens.mjs: palet, toegestane combinaties en kaartkleuren; wordt bij elke build vergeleken met vormgever-npuls-huisstijl/references/design-tokens.json
  • scripts/lib/assets.mjs: Npuls-illustraties (SVG → PNG via playwright), beeldmerk als vectorstippen, logo
  • scripts/render.mjs: PNG per slide (en --pdf) via PowerPoint (Windows) of LibreOffice, voor visuele controle
  • scripts/install-fonts.mjs: installeert General Sans, General Sans Semibold en Cooper Lt BT per gebruiker (geen beheerrechten)
  • references/slidetypes.md + assets/voorbeeld.deck.mjs: alle velden en varianten, voorbeeld met elk type
  • clidev en clanna: description (en de keuzeregel in clanna) verwijzen voor .pptx naar powerclaude

Waarschuwingen tijdens de build: kleurcombinatie buiten allowed_combinations, tekst die niet in een vak past, >~70 woorden per slide, <3 primaire kleuren, <2 illustraties, ontbrekende sprekersnotities, ontbrekende of verkeerd geplaatste ceda/contact.

Related Issues

Closes #96

Comparison: Before and After

Before:

Een .pptx in Npuls-stijl maken = Claude desktop + vormgever-npuls-huisstijl, met per deck zelfgeschreven layoutcode. Het referentiedeck (workshop-voorstel-RAD_fb_CdH.pptx) toont de gevolgen: fonts niet geïnstalleerd (Calibri, "Dashboard bouwen bouwen" door fontsubstitutie) en nep-vet via bold op General Sans.

After:

/powerclaude → deck-spec → build.mjs → render.mjs. Elk deck dezelfde layouts, de echte fonts (Semibold als eigen familie), en een verplichte visuele controle per slide.

Testing Instructions

Vanuit de root van clidev-presentaties (met pptxgenjs in de devDependencies, zie de bijbehorende commit daar):

node <skill>/scripts/install-fonts.mjs --check
cp <skill>/assets/voorbeeld.deck.mjs _test.deck.mjs
node <skill>/scripts/build.mjs _test.deck.mjs
node <skill>/scripts/render.mjs exports/_test/_test.pptx --pdf

Handmatig getest op Windows 11 + PowerPoint: het voorbeelddeck (12 slides, elk type incl. ceda en contact) en een randgevallendeck (4 kaarten, illustratie links, schermafbeelding, closing met punten, te lange tekst). Alle gerenderde slides bekeken. create-skill/scripts/validate-skill.py powerclaude clanna → 0 fouten. Niet getest: de LibreOffice-route op macOS/Linux, en een build door een andere agent zonder deze context.

Dependencies

  • pptxgenjs ^4.0.1 als devDependency in cedanl/clidev-presentaties (stond al in de lockfile als transitieve dependency)
  • Renderen: PowerPoint (Windows) of LibreOffice + poppler

Additional Information

Ontvangers zonder Npuls-fonts zien Calibri in de .pptx; de skill zegt dan de PDF te sturen. General Sans is OTF/CFF en kan op Windows niet in een .pptx worden ingebed.

🤖 Generated with Claude Code

Derde presentatieskill naast clidev (Slidev) en clanna (HTML): bouwt een
bewerkbare .pptx uit een deck-spec met vaste Npuls-layouts, de echte
fonts, illustraties en het beeldmerk. build.mjs controleert kleur-
combinaties en tekstoverloop, render.mjs maakt PNG's per slide (en PDF)
voor visuele controle. clidev en clanna verwijzen voor .pptx naar
powerclaude.

Closes #96

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Twee vaste slidetypes, woordelijk gelijk aan clidev/_template.md:
- ceda: "Wie is CEDA" op Slide16.PNG, direct na de titel/agenda, zonder links
- contact: "Blijf in contact" op Slide1.PNG met klikbare kaarten voor
  GitHub, Community en e-mail, altijd de laatste slide

De tekst ligt vast in layouts.mjs. build.mjs waarschuwt als een van de
twee ontbreekt, verkeerd staat, dubbel voorkomt of velden meekrijgt.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@aslamht
aslamht merged commit 6d90945 into main Oct 1, 2026
1 check passed
@aslamht
aslamht deleted the feat/powerclaude branch October 1, 2026 14:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Skill powerclaude: PowerPoint-presentaties in Npuls-huisstijl

1 participant