Migrate all repos into monorepo context folders
Bahn: aisupport, Analyse-O2C-C2S, awesome-bahn-mcp-servers, beam-mcp,
Confluence_Bot, db-planet-mcp-server, O2C-Harness, project-audit,
Projekt-KIQ-HP, teamlandkarte-mcp
Dhive: Jury-Voting
Privat: CV, NoteGraph (NOTE: NoteGraph needs complete redo after consolidation)
Shared: AI-Orchestrator, OrgMyLife, power_skills_and_more
Shared/references: symphony (read-only)
Bahn repos remain available as independent remotes - this monorepo
pulls them in via subtree, the originals are untouched.
This commit is contained in:
@@ -0,0 +1,387 @@
|
||||
---
|
||||
name: pptx-infrago
|
||||
description: >
|
||||
Erstellt PowerPoint-Präsentationen (.pptx) im DB InfraGO Corporate Design mit Python.
|
||||
Nutzt den offiziellen DB InfraGO Folienmaster (31 Layouts) und ein Helper-Modul.
|
||||
Nutze diesen Skill wenn der User eine PowerPoint-Datei, .pptx, Foliensatz oder Vortrag
|
||||
als PowerPoint-Datei (nicht HTML) erstellen möchte.
|
||||
Keywords: PowerPoint, PPTX, Folien, Foliensatz, Vortrag, Folienmaster, python-pptx, Master.
|
||||
compatibility: >
|
||||
Benötigt Python 3.10+ mit python-pptx (>=1.0). DB-Rechner empfohlen für DB-Schriften
|
||||
(DB Neo Office Head / DB Neo Office). Kein Internet nötig — Vorlage und Bilder liegen
|
||||
im Skill.
|
||||
metadata:
|
||||
version: "1.3.0"
|
||||
author: "Uwe Sülter"
|
||||
theme: "DB InfraGO Folienmaster (offiziell)"
|
||||
template: "InfraGo_master_vorlage.pptx"
|
||||
---
|
||||
|
||||
# PowerPoint-Präsentationen im DB InfraGO Folienmaster
|
||||
|
||||
Self-contained Skill für `.pptx`-Dateien. Die offizielle Vorlage `InfraGo_master_vorlage.pptx`
|
||||
und das Helper-Modul `db_infrago_pptx.py` liegen direkt im Skill-Ordner unter `assets/`.
|
||||
|
||||
**Grundprinzip:** Der Skill schreibt nicht selbst Folien-Geometrie, sondern nutzt die 31
|
||||
fertigen Layouts des offiziellen Folienmasters. Pro Layout gibt es eine Funktion im
|
||||
Helper-Modul. Logo, Footer-Slot, Foliennummer und Farben werden vom Master geerbt —
|
||||
Python befüllt nur die Platzhalter (Footer und Foliennummer werden technisch aus dem
|
||||
Layout in die Slide geklont, weil python-pptx das nicht von selbst tut).
|
||||
|
||||
## Ablauf
|
||||
|
||||
### Schritt 1: Infos sammeln
|
||||
|
||||
ALLE 6 Punkte MÜSSEN geklärt sein bevor es weitergeht. Auch wenn das Thema offensichtlich
|
||||
scheint — Zielgruppe und Umfang IMMER nachfragen, NIEMALS selbst annehmen.
|
||||
|
||||
**Name ermitteln (Fallback-Kette):**
|
||||
1. Steerings/Kontext prüfen — steht der Name schon im geladenen Kontext (z.B. kiro-umgebung.md)?
|
||||
2. `git config user.name` ausführen
|
||||
3. Wenn beides fehlschlägt: User fragen
|
||||
|
||||
1. **Thema** — Worum geht es?
|
||||
2. **Zielgruppe** — Für wen? (Devs, POs, Management, Fachbereich?)
|
||||
3. **Umfang** — Wie viele Folien / wie lang?
|
||||
4. **Footer** — Default: "DB InfraGO AG | [Name] | [Team] | [Jahr]"
|
||||
5. **Ablageort** — Wo soll die `.pptx`-Datei hin?
|
||||
6. **Klassifizierung** — Welche Vertraulichkeitsstufe? Erlaubte Werte:
|
||||
- `"DB Offen / DB Open"` — für öffentlich teilbare Inhalte
|
||||
- `"DB Intern / DB internal"` — für konzerninterne Inhalte (häufigster Fall)
|
||||
- `"DB Vertraulich / DB confidential"` — für vertrauliche Inhalte
|
||||
- `""` (leer) — keine Klassifizierung anzeigen
|
||||
|
||||
**WICHTIG:** Dieser Skill darf NUR für die Stufen "DB Offen", "DB Intern" und
|
||||
"DB Vertraulich" verwendet werden. Für höhere Stufen (z.B. "DB Streng Vertraulich")
|
||||
ist die automatische Erstellung von Präsentationen NICHT zulässig — den User darauf
|
||||
hinweisen und ablehnen.
|
||||
|
||||
Nachfrage-Template — IMMER komplett zeigen, KEINE Felder weglassen:
|
||||
```
|
||||
Bevor ich loslege, brauche ich noch ein paar Infos:
|
||||
|
||||
- **Thema:** [fehlt/vorhanden]
|
||||
- **Zielgruppe:** [fehlt/vorhanden]
|
||||
- **Umfang:** [fehlt/vorhanden]
|
||||
- **Footer:** DB InfraGO AG | [git user.name] | [Team?] | [Jahr]
|
||||
- **Ablageort:** [fehlt/vorhanden]
|
||||
- **Klassifizierung:** [fehlt] — Erlaubt: "DB Offen / DB Open", "DB Intern / DB internal",
|
||||
"DB Vertraulich / DB confidential", oder leer (keine Anzeige).
|
||||
⚠️ Dieser Skill darf nur für DB Offen, DB Intern und DB Vertraulich genutzt werden.
|
||||
|
||||
Optional:
|
||||
- Hintergrundbild für die Titelfolie? (Ich schlage selbst ein passendes Bild aus den
|
||||
10 mitgelieferten Bildern vor — basierend auf dem Thema. Du kannst das Vorgeschlagene
|
||||
bestätigen, ein anderes wählen oder einen eigenen Pfad angeben.)
|
||||
- Bestimmte Inhalte die rein müssen? (Tabellen, Zitate, Statements, Bild-Folien?)
|
||||
```
|
||||
|
||||
WICHTIG: NIEMALS "Laut Skill muss ich..." oder "Der Skill verlangt..." sagen. Natürlich
|
||||
kommunizieren.
|
||||
|
||||
### Schritt 2: Hintergrundbild für Titelfolie auswählen
|
||||
|
||||
Ohne dass der User explizit ein Bild nennt: Schau ins Thema und schlage GENAU EIN Bild
|
||||
aus `BACKGROUND_IMAGES` vor (siehe `assets/db_infrago_pptx.py` oder
|
||||
[references/asset-katalog.md](references/asset-katalog.md)). Sag dem User welches Bild und
|
||||
warum.
|
||||
|
||||
Beispielzuordnungen:
|
||||
- Architektur, Datenflüsse, Migration → `datenstroeme`
|
||||
- Innovation, neue Konzepte, Ideen → `gluehbirne`
|
||||
- Strategie, Vision, Digitalisierung → `weltkugel` oder `digital_transformation`
|
||||
- Infrastruktur, Bahnbetrieb, Wartung → `gleisarbeiter`
|
||||
- Performance, Geschwindigkeit, Go-Live → `ice_bahnsteig`
|
||||
- Teamwork, Onboarding, Integration → `puzzle`
|
||||
- Demos, Abnahme, Qualitätssicherung → `laptop_checkmark`
|
||||
- Daten, Code, Netzwerk → `binaercode`
|
||||
- Neutral / kein klares Thema → `ice_line` (ICE-Silhouette mit Sand→Türkis Gradient)
|
||||
|
||||
### Schritt 3: Gliederung vorschlagen
|
||||
|
||||
Folien-Struktur als Markdown-Liste vorschlagen, jeweils mit dem Layout-Funktionsnamen
|
||||
in Klammern. Beispiel:
|
||||
|
||||
```
|
||||
1. Titelfolie (add_titel_bild_schwarz mit "datenstroeme")
|
||||
2. Agenda (add_inhaltsverzeichnis_weiss)
|
||||
3. Ausgangslage (add_titel_und_inhalt)
|
||||
4. Lösung (add_titel_und_2_inhalte)
|
||||
5. Beispiel (add_text_und_bild_links)
|
||||
6. Statement (add_statement_rot)
|
||||
7. Ausblick (add_titel_und_inhalt)
|
||||
8. Schluss (add_ende_bild mit "ice_bahnsteig")
|
||||
```
|
||||
|
||||
Auf Bestätigung warten, BEVOR Code geschrieben wird.
|
||||
|
||||
### Schritt 4: Python-Skript generieren
|
||||
|
||||
**Pfadberechnung:** Das Helper-Modul `db_infrago_pptx.py` und die Vorlage liegen im
|
||||
Skill-Ordner. Python kann daraus importieren wenn der Skill-Ordner im `sys.path` ist
|
||||
oder das Modul kopiert wird.
|
||||
|
||||
**Empfohlener Ansatz:** Im generierten Skript am Anfang den Skill-Ordner zum `sys.path`
|
||||
hinzufügen — dann kein Kopieren, immer auf der aktuellen Helper-Version. `SKILL_DIR`
|
||||
zeigt auf den `assets/`-Ordner deiner Skill-Installation:
|
||||
|
||||
- Windows (user-level): `C:\Users\<dein-username>\.kiro\skills\pptx-infrago\assets`
|
||||
- Windows (workspace): `<projekt>\.kiro\skills\pptx-infrago\assets`
|
||||
- macOS / Linux (user-level): `~/.kiro/skills/pptx-infrago/assets`
|
||||
- macOS / Linux (workspace): `<projekt>/.kiro/skills/pptx-infrago/assets`
|
||||
|
||||
```python
|
||||
# -*- coding: utf-8 -*-
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
# Skill-Ordner zum sys.path hinzufügen — Pfad an deine Installation anpassen
|
||||
SKILL_DIR = Path.home() / ".kiro" / "skills" / "pptx-infrago" / "assets"
|
||||
sys.path.insert(0, str(SKILL_DIR))
|
||||
|
||||
from db_infrago_pptx import (
|
||||
open_deck, save, add_notes, background_image_path,
|
||||
add_titel_bild_schwarz, add_inhaltsverzeichnis_weiss,
|
||||
add_titel_und_inhalt, add_titel_und_2_inhalte,
|
||||
add_text_und_bild_links, add_statement_rot, add_ende_bild,
|
||||
)
|
||||
|
||||
FOOTER = "DB InfraGO AG | Max Mustermann | Team | 2026"
|
||||
KLASSIFIZIERUNG = "DB Intern / DB internal" # oder "" wenn keine Anzeige gewünscht
|
||||
|
||||
prs = open_deck()
|
||||
|
||||
# Folie 1: Titel mit Hintergrundbild
|
||||
slide = add_titel_bild_schwarz(
|
||||
prs,
|
||||
titel="Mein Thema",
|
||||
untertitel="Untertitel der Präsentation",
|
||||
bild=background_image_path("datenstroeme"),
|
||||
kategorie="Strategie",
|
||||
footer=FOOTER,
|
||||
klassifizierung=KLASSIFIZIERUNG,
|
||||
)
|
||||
add_notes(slide, "Begrüßung, Vorstellung des Themas, Motivation.")
|
||||
|
||||
# Folie 2: Agenda
|
||||
add_inhaltsverzeichnis_weiss(
|
||||
prs,
|
||||
titel="Agenda",
|
||||
eintraege=["Ausgangslage", "Lösung", "Beispiel", "Statement", "Ausblick"],
|
||||
footer=FOOTER,
|
||||
klassifizierung=KLASSIFIZIERUNG,
|
||||
)
|
||||
|
||||
# … weitere Folien …
|
||||
|
||||
# Folie n: Schluss
|
||||
add_ende_bild(prs, titel="Vielen Dank.", bild=background_image_path("ice_bahnsteig"))
|
||||
|
||||
out = save(prs, r"C:\BA\projekt\folien.pptx")
|
||||
print(f"Datei erzeugt: {out}")
|
||||
```
|
||||
|
||||
**Dateiname:** `YYYY-MM-DD_thema-kebab-case.py` für das Skript,
|
||||
`YYYY-MM-DD_thema-kebab-case.pptx` als Output.
|
||||
|
||||
**Speaker Notes:** Für jeden Inhalts-Slide Speaker-Notes via `add_notes(slide, "...")`
|
||||
schreiben. Notes enthalten Stichpunkte für den Vortragenden — Details die nicht auf den
|
||||
Slide passen, Erklärungen, Überleitung zur nächsten Folie.
|
||||
|
||||
**Schreibstrategie:**
|
||||
- fsWrite für Header + Imports + erste 1–2 Folien (max ~50 Zeilen)
|
||||
- fsAppend in Blöcken à max 40 Zeilen
|
||||
- Letzter fsAppend: Schlussfolie + `save()`-Aufruf
|
||||
- Anzahl der Blöcke vorher abschätzen
|
||||
- NIEMALS die Datei komplett neu schreiben weil ein Append fehlschlug — gezielt mit
|
||||
strReplace patchen
|
||||
|
||||
### Schritt 5: Skript ausführen und PPTX öffnen — IN DERSELBEN ANTWORT
|
||||
|
||||
Direkt nach dem letzten fsAppend (mit `save()`) — OHNE vorher "fertig" zu sagen:
|
||||
|
||||
1. **Skript ausführen:** `python C:\BA\{Ablageort}\{Dateiname}.py`
|
||||
2. **Datei öffnen:** `Invoke-Item "C:\BA\{Ablageort}\{Dateiname}.pptx"` — einfach machen,
|
||||
nicht nachfragen.
|
||||
3. **Kurzer Hinweis:** Dem User mitteilen, was generiert wurde und wie er die Datei
|
||||
nachbearbeiten kann (PowerPoint öffnet automatisch).
|
||||
|
||||
## Slide-Funktionen Übersicht
|
||||
|
||||
Volle API-Doku siehe [references/slide-typen.md](references/slide-typen.md). Mapping
|
||||
Layout-Index → Funktion siehe [references/layout-katalog.md](references/layout-katalog.md).
|
||||
|
||||
| Anlass | Funktion |
|
||||
|---|---|
|
||||
| Titel mit Bild | `add_titel_bild_schwarz` / `_weiss` |
|
||||
| Titel im Rahmen | `add_titel_rahmen` |
|
||||
| Agenda / Inhaltsverzeichnis | `add_inhaltsverzeichnis_weiss` / `_rot` / `_bild_*` |
|
||||
| Kapiteltrenner | `add_kapiteltrenner_weiss` / `_bild_*` |
|
||||
| Standard-Inhaltsfolie | `add_titel_und_inhalt` |
|
||||
| Zwei-Spalten-Inhalt | `add_titel_und_2_inhalte` |
|
||||
| Text + Bild | `add_text_und_bild_links` / `_rechts` |
|
||||
| Vollbild mit Titelzeile | `add_bild_mit_titel_schwarz` / `_weiss` |
|
||||
| Nur Titel (für eigenes Layout) | `add_nur_titel` / `_grau` |
|
||||
| Komplett leer | `add_leer` |
|
||||
| Aussage groß | `add_statement_rot` / `_weiss` |
|
||||
| Zitat | `add_zitat_rot` / `_weiss` |
|
||||
| Schlussfolie Bild | `add_ende_bild` |
|
||||
| Schlussfolie Rot | `add_ende_rot` |
|
||||
| Schlussfolie Logo | `add_ende_logo` |
|
||||
| Bild-Agenda | `add_bild_agenda` |
|
||||
| **Tabelle (Türkis-Header)** | `add_tabelle` |
|
||||
| **Daten und Fakten (Kennzahl groß)** | `add_daten_und_fakten` |
|
||||
| **Zeitstrahl (n Stationen)** | `add_zeitstrahl` |
|
||||
| **Prozessablauf (n Schritte)** | `add_prozessablauf` |
|
||||
| **Piktogramm einfügen** | `add_pictogram` (86 Icons aus DB-Master) |
|
||||
|
||||
## Kreative Folien — wenn die Templates nicht reichen
|
||||
|
||||
Die 31 Layouts decken die häufigsten Fälle ab, sind aber ausdrücklich KEIN Korsett.
|
||||
Für Diagramme, eigene Skizzen, freie Visualisierungen, Roadmaps, BPMN-Skizzen,
|
||||
Architektur-Bilder usw. gibt es zwei Layouts, die genau dafür gemacht sind:
|
||||
|
||||
| Funktion | Was du bekommst | Wann |
|
||||
|---|---|---|
|
||||
| `add_nur_titel(prs, titel, footer)` | Folientitel oben + komplett freier Inhaltsbereich | Diagramme mit Titelzeile |
|
||||
| `add_nur_titel_grau(prs, titel, footer)` | Wie oben, aber grauer Hintergrund | Visuelle Abgrenzung im Foliensatz |
|
||||
| `add_leer(prs, footer)` | Komplett freie Folie (nur Footer-Slot) | Vollbild-Visualisierung, eigene Header-Position |
|
||||
|
||||
Auf diesen Folien gilt: alles ist erlaubt. Logo, Foliennummer und Footer werden vom
|
||||
Master geerbt — du sparst dir nur die starre Bullet-Liste.
|
||||
|
||||
Typische Erweiterungen mit `python-pptx`:
|
||||
|
||||
```python
|
||||
from pptx.util import Cm, Pt
|
||||
from pptx.enum.shapes import MSO_SHAPE, MSO_CONNECTOR
|
||||
from pptx.dml.color import RGBColor
|
||||
from db_infrago_pptx import add_nur_titel, DB_TURQUOISE_500, DB_RED
|
||||
|
||||
FOOTER = "DB InfraGO AG | Max Mustermann | Team | 2026"
|
||||
|
||||
slide = add_nur_titel(prs, "Architektur-Skizze", FOOTER)
|
||||
|
||||
# Box
|
||||
box = slide.shapes.add_shape(MSO_SHAPE.ROUNDED_RECTANGLE,
|
||||
Cm(2), Cm(4), Cm(8), Cm(3))
|
||||
box.fill.solid(); box.fill.fore_color.rgb = DB_TURQUOISE_500
|
||||
box.text_frame.text = "Frontend"
|
||||
|
||||
# Pfeil zwischen Boxen
|
||||
conn = slide.shapes.add_connector(MSO_CONNECTOR.STRAIGHT,
|
||||
Cm(10), Cm(5.5), Cm(14), Cm(5.5))
|
||||
conn.line.color.rgb = DB_RED
|
||||
|
||||
# Eigenes Bild
|
||||
slide.shapes.add_picture(r"C:\diagramme\flow.png",
|
||||
left=Cm(2), top=Cm(8), width=Cm(20))
|
||||
|
||||
# Freies Textfeld
|
||||
tb = slide.shapes.add_textbox(Cm(2), Cm(15), Cm(20), Cm(2))
|
||||
tb.text_frame.text = "Hinweis: Skizze, kein finales Design."
|
||||
```
|
||||
|
||||
Mehr Beispiele und Patterns: [references/slide-typen.md](references/slide-typen.md)
|
||||
unter „Kreative Folien".
|
||||
|
||||
**Wichtig bei kreativen Folien:**
|
||||
- DB-Farbpalette nutzen (`DB_TURQUOISE_500`, `DB_RED`, `DB_SAND` usw. aus dem Helper)
|
||||
- Maße in `Cm()` oder `Emu()` — nicht in Pixeln
|
||||
- Folie ist 33.87 × 19.05 cm groß
|
||||
- Master-Elemente nicht überdecken (Logo oben rechts, Footer unten)
|
||||
|
||||
## Hintergrundbilder (10 Stück)
|
||||
|
||||
Verwendung:
|
||||
|
||||
```python
|
||||
from db_infrago_pptx import background_image_path
|
||||
add_titel_bild_weiss(prs, "Titel", bild=background_image_path("datenstroeme"))
|
||||
```
|
||||
|
||||
Verfügbare Keys: `ice_line`, `laptop_checkmark`, `datenstroeme`, `gleisarbeiter`,
|
||||
`weltkugel`, `ice_bahnsteig`, `gluehbirne`, `puzzle`, `digital_transformation`,
|
||||
`binaercode`. Details in [references/asset-katalog.md](references/asset-katalog.md).
|
||||
|
||||
User kann auch eigene Bilder per Pfad angeben (statt `background_image_path("...")`
|
||||
einfach `r"C:\pfad\zu\bild.jpg"`).
|
||||
|
||||
## Piktogrammbibliothek (86 SVG-Icons)
|
||||
|
||||
Aus dem DB InfraGO Master extrahiert — alle als monochrome SVG-Vektoren, die zur
|
||||
Laufzeit in jede DB-Farbe eingefärbt werden können (Türkis, Rot, Schwarz, Weiß).
|
||||
PowerPoint 2016+ rendert SVGs nativ — die Icons bleiben gestochen scharf bei jeder
|
||||
Größe.
|
||||
|
||||
```python
|
||||
from db_infrago_pptx import add_pictogram, list_pictograms, DB_TURQUOISE_500, DB_RED
|
||||
from pptx.util import Cm
|
||||
|
||||
# Auf einer "Nur Titel"-Folie 4 Icons mit Beschriftung platzieren
|
||||
slide = add_nur_titel(prs, "Vorteile", footer=FOOTER)
|
||||
add_pictogram(slide, "haekchen", Cm(2), Cm(7), Cm(4), color=DB_TURQUOISE_500)
|
||||
add_pictogram(slide, "uhr", Cm(9), Cm(7), Cm(4), color=DB_TURQUOISE_500)
|
||||
add_pictogram(slide, "datenbank", Cm(16), Cm(7), Cm(4), color=DB_TURQUOISE_500)
|
||||
add_pictogram(slide, "puzzleteile", Cm(23), Cm(7), Cm(4), color=DB_TURQUOISE_500)
|
||||
|
||||
# Verfügbare Keys auflisten
|
||||
for key, descr in list_pictograms():
|
||||
print(f" {key:30s} {descr}")
|
||||
```
|
||||
|
||||
**Häufige Keys** (sortiert nach Anwendung):
|
||||
|
||||
- Bestätigung: `haekchen`, `volltreffer`, `pruefliste`, `klemmbrett`
|
||||
- Negation: `schliessen`, `verbotsschild`, `nicht_zulaessig`
|
||||
- Daten: `datenbank`, `cloud`, `cloudcomputing`, `balkendiagramm`,
|
||||
`flussdiagramm`, `verzweigungsdiagramm`, `abwaertstrend-diagramm`
|
||||
- Kommunikation: `chat`, `chatblase`, `e-mail`, `kommentar_like`, `kommentar_herz`
|
||||
- Zeit: `uhr`, `tageskalender`, `flip-kalender`
|
||||
- Aktionen: `wiedergabe`, `aktualisieren`, `herunterladen`, `uebertragen`
|
||||
- Pfeile: `pfeil_nach_oben`, `pfeil_nach_unten`, `pfeil_nach_rechts`, `pfeil_kreis`,
|
||||
diverse Drehpfeile
|
||||
- Sonstiges: `puzzleteile`, `handschlag`, `aktenkoffer`, `lupe`, `informationen`,
|
||||
`hilfe`, `fragezeichen`, `ausrufezeichen`, `management`, `vertrag`,
|
||||
`gehaltsabrechnung`, `geschichte`, `blockchain`, `computer`, `browserfenster`
|
||||
|
||||
Vollständige Liste mit `list_pictograms()` oder direkt aus `PICTOGRAMS.keys()`.
|
||||
|
||||
**Farb-Override** ist optional — ohne `color`-Parameter bleibt das Icon in der
|
||||
SVG-Default-Farbe (meist schwarz). Empfehlung für CI-konforme Slides:
|
||||
`DB_TURQUOISE_500` als Akzent oder `DB_BLACK` für neutralen Look.
|
||||
|
||||
## Design-Guide (DB InfraGO)
|
||||
|
||||
Siehe [references/ci-referenz.md](references/ci-referenz.md). Wichtigste Regeln:
|
||||
|
||||
- Folienmaster nicht überschreiben — er bringt Logo, Footer-Slot, Foliennummer und
|
||||
Farben automatisch mit.
|
||||
- Schriften: `DB Neo Office Head` (Überschriften) und `DB Neo Office` (Fließtext) — auf
|
||||
DB-Rechnern installiert. Der Helper setzt diese explizit, damit sie nicht über
|
||||
System-Defaults wie Calibri ersetzt werden.
|
||||
- DB Rot (#EC0016) = Akzentfarbe (Logo, Highlights), NICHT Hauptfarbe.
|
||||
- Primärfarben: Türkis (#006E6B / #00A099) + Sand (#FCE3BA).
|
||||
- Schriftfarbe: nur Schwarz oder Weiß.
|
||||
- Max 5–7 Bullets pro Folie, max 2 Sätze pro Bullet (besser: Stichworte).
|
||||
- Eine Kernaussage pro Folie — nicht mehrere Themen mischen.
|
||||
- Tabellen: max 5–6 Zeilen sichtbar, sonst aufteilen.
|
||||
- Speaker Notes für Details nutzen.
|
||||
- Jede Folie muss in 30–60 Sekunden erfassbar sein.
|
||||
- 3-Akt-Struktur: Eröffnung → Hauptteil mit Trennern → Abschluss.
|
||||
- NIEMALS nur Vorname im Footer — immer "DB InfraGO AG | Vollständiger Name | Team | Jahr".
|
||||
|
||||
## Voraussetzungen
|
||||
|
||||
`python-pptx` muss installiert sein:
|
||||
|
||||
```powershell
|
||||
pip install python-pptx
|
||||
```
|
||||
|
||||
## Referenz-Dateien
|
||||
|
||||
- [references/layout-katalog.md](references/layout-katalog.md) — alle 31 Layouts mit Index, Name, Platzhaltern, Geometrie
|
||||
- [references/slide-typen.md](references/slide-typen.md) — Funktions-API mit Code-Beispielen
|
||||
- [references/asset-katalog.md](references/asset-katalog.md) — Hintergrundbilder mit Empfehlungen
|
||||
- [references/ci-referenz.md](references/ci-referenz.md) — Farben, Schriften, CI-Regeln
|
||||
Reference in New Issue
Block a user