# REPORT_INJECTIEMODEL — v1.3 **Status:** ✅ VOLTOOID · **Datum:** 2026-08-18 · **Deck:** `deliverables/TEST_Werktijden_Petrochemie_v1.0.pptx` (13 slides) ## Geleverd | Stap | Bestand | Resultaat | |------|---------|-----------| | 1 | `scripts/training_content_schema.md` | bestond al (eerdere run) | | 2 | `scripts/generate_training.py` | 376 regels, standalone (alleen python-pptx + PIL), syntax OK | | 3 | `scripts/voorbeeld_werktijden_petrochemie.json` | 4 modules + tabel + 3 quizvragen + bronnen + kernpunten | | 4 | Generatie-run | 13 slides, brand=neutral, exit 0 | | 5 | QC + dit rapport | alles geslaagd (zie hieronder) | ## Injectiemodel (content-JSON → deck) JSON (`titel/ondertitel/type/duur/leerdoelen/modules[titel,bullets,tabel?,bronnen]/quiz/bronnenlijst/kernpunten/brand`) wordt via `generate_training.py` geïnjecteerd in vaste housestyle-sjablonen: titelfolie → welkom+menu (interne jumps) → leerdoelen (✓-badges) → modules (kaartjes, split >6 bullets) → tabelfolia (header #003366, zebra) → quiz (✓ correct in #00A859) → bronnenlijst → kernpunten. Elke folio (behalve titel): footer #374151 met neutral-tagline of `JvG Consultancy × KLANT`, paginanummer, JvG-logo met PIL-ratio. ## QC-resultaten - **Open-test:** opent foutloos in python-pptx, 13 slides, 10,0" × 5,625" ✅ - **`slide://` in zip:** 0 bestanden (geen externe hyperlinks) ✅ - **XML-parse:** 0 fouten in alle 39 xml/rels-onderdelen ✅ - **Interne jumps:** 4× `ppaction://hlinksldjump` op menukaarten (slide 2) ✅ - **PIL logo-ratio:** 13× logo geplaatst, ratio 1,1152, afwijking 0,00% overal ✅ - **Wintershall-guard:** `--brand wintershall` → sys.exit(1) met duidelijke melding ✅ - **Lions:** klantlogo prominent op titelfolie bij `--brand lions` (pad `assets/branding/clients/lions-logo.png` aanwezig) ## Opmerkingen - JvG-logo-pad: `assets/jvg-logo-white-large.png` (wit, ratio 1,115 — geschikt op donkere footer/titelfolie). Bronbestand `assets/branding/jvg-logo.png` bestaat niet; constante in script gecorrigeerd tijdens run. - Menu-jump via `a:hlinkClick` op `p:cNvPr` (lxml) met `r:id` uit `part.relate_to(target, RT.SLIDE)` — werkt in PowerPoint; klik bare kaart.