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
..

pptx-infrago — PowerPoint-Präsentations-Skill

Kiro-Skill für .pptx-Präsentationen im DB InfraGO Corporate Design. Folgt der Agent Skills 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

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
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