Files
ankn a5f8fb49ab 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.
2026-06-30 20:39:52 +02:00

141 lines
6.0 KiB
Markdown

# pptx-infrago — PowerPoint-Präsentations-Skill
Kiro-Skill für `.pptx`-Präsentationen im DB InfraGO Corporate Design.
Folgt der [Agent Skills Specification](https://agentskills.io/specification).
## Struktur
```
pptx-infrago/
├── SKILL.md # Einstiegspunkt (Frontmatter + Workflow)
├── README.md # Diese Anleitung
├── references/
│ ├── layout-katalog.md # 31 Layouts mit Index, Name, Platzhaltern
│ ├── slide-typen.md # Funktions-API mit Code-Beispielen
│ ├── asset-katalog.md # Hintergrundbilder + Auswahl-Heuristik
│ └── ci-referenz.md # Farben, Schriften, CI-Regeln
└── assets/
├── InfraGo_master_vorlage.pptx # Offizieller DB InfraGO Folienmaster
├── db_infrago_pptx.py # Helper-Modul mit Funktion pro Layout
├── Ice_line_background.png # 10 Hintergrundbilder
└── bg-*.jpeg
```
## Voraussetzungen
```powershell
pip install python-pptx
```
Python 3.10+. `lxml` wird transitiv von `python-pptx` mitinstalliert und vom Helper
direkt für XML-Manipulationen genutzt (Footer- und Slide-Number-Platzhalter aus dem
Layout klonen, slidenum-Field setzen, Section-Liste entfernen).
Auf DB-Rechnern stehen die DB-Schriften (DB Head Black, DB Sans) automatisch zur
Verfügung. Auf anderen Systemen verwendet PowerPoint einen Fallback-Font.
## Funktionsweise
Der Skill arbeitet mit dem offiziellen DB InfraGO Folienmaster (31 Layouts) und einem
Helper-Modul. Statt Folien-Geometrie selbst zu zeichnen, wählt der Skill ein passendes
Layout aus und befüllt dessen Platzhalter. Logo, Footer-Slot, Foliennummer und Farben
werden vom Master geerbt (Footer und Foliennummer werden technisch aus dem Layout in
die Slide geklont, weil python-pptx das nicht von selbst übernimmt).
Workflow:
1. Skill fragt: Thema, Zielgruppe, Umfang, Footer, Ablageort
2. Skill schlägt ein Hintergrundbild für die Titelfolie vor (passend zum Thema)
3. Skill schlägt eine Gliederung vor (Folie + Layout-Funktion)
4. Skill generiert ein Python-Skript
5. Skill führt das Skript aus und öffnet die `.pptx`
## Nutzung
Im Kiro-Chat: "Erstelle eine PowerPoint-Präsentation über [Thema]"
Der Skill durchläuft die obigen 5 Schritte und legt am Ende eine fertige `.pptx`-Datei
am gewünschten Ablageort ab.
## Direkter Code-Aufruf (ohne Skill)
`SKILL_DIR` ist der Pfad zum `assets/`-Ordner deines Skill-Klons. Beispiele:
- 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
import sys
from pathlib import Path
# Pfad anpassen — siehe Beispiele oben
SKILL = Path.home() / ".kiro" / "skills" / "pptx-infrago" / "assets"
sys.path.insert(0, str(SKILL))
from db_infrago_pptx import (
open_deck, save, background_image_path,
add_titel_bild_schwarz, add_titel_und_inhalt, add_ende_bild,
)
prs = open_deck()
add_titel_bild_schwarz(
prs, "Mein Thema", "Untertitel",
bild=background_image_path("datenstroeme"),
kategorie="Architektur",
footer="DB InfraGO AG | Max Mustermann | Team | 2026",
)
add_titel_und_inhalt(prs, "Punkte", ["Eins", "Zwei", "Drei"])
add_ende_bild(prs, "Vielen Dank.", bild=background_image_path("ice_bahnsteig"))
save(prs, "output.pptx")
```
## Version
1.0.1 — Stand 11.05.2026
- Basiert auf dem offiziellen DB InfraGO Folienmaster (31 Layouts)
- Funktion pro Layout im Helper-Modul `db_infrago_pptx.py`
- 10 mitgelieferte Hintergrundbilder mit thematischer Auswahl-Heuristik
- Ergänzend zum bestehenden HTML-Skill `praesi-infrago` (Reveal.js)
### Changelog
**1.1.0** — Klassifizierung + Breaking Changes (18.05.2026):
- **NEU:** `klassifizierung`-Parameter auf allen Slide-Funktionen. Platziert
Vertraulichkeitsstufe (z.B. "DB Offen / DB Open") oben links in roter Schrift.
- **NEU:** `_set_klassifizierung()` Helper — Textbox mit DB Neo Office 11pt rot.
- **NEU:** SKILL.md erweitert um Klassifizierungs-Abfrage (Punkt 6) mit
Sicherheitshinweis (DB Streng Vertraulich wird abgelehnt).
- **NEU:** Logo-Assets: `logo_infrago.png`, `logo_infrago_schwarz.png`,
`logo_infrago_weiss.png`, `logo_infrago_rot_weiss.png` fuer manuelle Platzierung.
- **FIX:** `_set_kategorie()` prueft jetzt ob der Platzhalter ein Logo
(blipFill) enthaelt und fasst ihn dann NICHT an (statt ihn zu entfernen).
- **FIX:** `add_ende_logo()` platziert Text als separates Textfeld statt in
den Logo-Platzhalter zu schreiben.
- **BREAKING:** Entfernt: `add_titel_weiss`, `add_titel_rot`,
`add_titel_bild_schwarz_zentriert`, `add_titel_bild_weiss_zentriert`.
Diese Layouts (0, 1, 4, 5) sind im aktuellen Folienmaster nicht mehr relevant.
**1.1.0** — Klassifizierung + Breaking Changes (18.05.2026):
- NEU: klassifizierung-Parameter auf allen Slide-Funktionen
- NEU: _set_klassifizierung() Helper
- NEU: SKILL.md erweitert um Klassifizierungs-Abfrage (Punkt 6)
- NEU: Logo-Assets fuer manuelle Platzierung
- FIX: _set_kategorie() prueft blipFill (Logo-Schutz)
- FIX: add_ende_logo() nutzt separates Textfeld
- BREAKING: Entfernt: add_titel_weiss, add_titel_rot, add_titel_bild_schwarz_zentriert, add_titel_bild_weiss_zentriert
**1.0.1** — Bugfixes und Doku-Konsistenz nach erstem Review:
- Bugfix: Beispiel in „Kreative Folien" importierte fälschlich `FOOTER` aus dem Helper
- Helper: ungenutzte Imports entfernt (`os`, `Cm`, `Pt`)
- Helper: Slide-Number-Field-ID nun pro Slide eindeutig (UUID statt fixer ID)
- Helper: Imports zentralisiert; `lxml`-Nutzung explizit dokumentiert
- Helper: `_set_text` skipt bei Leerstring (Layout-Default bleibt erhalten)
- `__all__` vervollständigt um `DB_RED_DARK`, `DB_TURQUOISE_300/100`, `DB_GRAY_MED`
- Doku: Workflow-Schrittzahl angeglichen (5 statt 4), Pfad-Beispiele cross-platform,
„kommt vom Master"-Formulierung präzisiert, Layout-Katalog/Slide-Typen ergänzt
**1.0.0** — Initial-Release