Englische Version:
SKILL.en.md
diagram — Diagramme & Grafiken
Schlankes Skill mit 2 Skripten: scripts/mmd2png.py (Mermaid → PNG, standardmäßig nur lokal via mmdc; remote nur bei expliziter Auswahl) und scripts/chart.py (Zahlendiagramme → PNG, matplotlib via uv oder vorhandenem Python). Quelle liegt neben der Ausgabe, vorhandene Dateien werden nicht überschrieben.
Routentabelle nach Bedarf
| Bedarf | Vorgehen |
|---|---|
| Flowchart / Sequenz / Klasse / Zustand / ER / Gantt / Systemarchitektur | Mermaid → scripts/mmd2png.py (standardmäßig nur mmdc lokal) |
| Balkendiagramm / Kreisdiagramm / Liniendiagramm mit echten Daten | scripts/chart.py (matplotlib; uv benötigt ggf. Netzwerk, falls Paket nicht im Cache) |
Diagramme einbetten in .report.docx | PNG +  in .report.md, dann docx-Export via Skill paper und Rezept doc |
| Diagramme außerhalb der Möglichkeiten von Mermaid/matplotlib (3D, stark angepasste Grafik) | [N/A] — dem Benutzer die Einschränkung klar mitteilen, keine Lösungen erfinden |
Regeln
- Ausgabe neben der Quelle:
<Originalname>.diagram.png(Bild) +<Originalname>.diagram.mmd(Mermaid-Quelle, editierbar). Keine Quell-Dateien überschreiben. - Mermaid: In
.mmdschreiben, rendern mitpython3 scripts/mmd2png.py '<f>.mmd' '<f>.diagram.png'; Diagrammbeschriftungen in der Sprache des Benutzers. - In Diagrammen gezeichnete Daten müssen Maße/Fakten aus der Quelle sein (Label
[fact]/[observed]); keine erfundenen Zahlen zeichnen. - Lokal zuerst, keine stillen Uploads: standardmäßig nutzt
mmd2png.pynurmmdc; fehlt CLI/Browser oder tritt ein Fehler auf → abbrechen und Grund nennen, kein Netzwerkaufruf. Installierenpm i -g @mermaid-js/mermaid-cliund Chrome/Chromium. Nur wenn Benutzer/Agent explizit wählt, setzeMMD2PNG_BACKEND=remote(Kroki dann mermaid.ink),krokioderink.chart.pyarbeitet lokal;uv run --with matplotlibkann Netzwerk benötigen, um Pakete zu holen, falls nicht installiert/im Cache. Daher offline Python mit installiertem matplotlib oder vorbereitetem Cache verwenden. - Vor der Übergabe prüfen:
mmd2png.pyprüft automatisch PNG-Magic-Bytes + Größe ≥ 1 KB; JPEG-Bilder von Remote werden mit ImageMagick in echte PNGs konvertiert (Fehlt Converter →<f>.jpgschreiben + Warnung, kein falsches.png); bei Einbettung in Bericht → erneute Prüfung mitpdfinfo+pdftotextnach Wandlung DOCX→PDF (Bild wird angezeigt, Seite bricht nicht). - Größe: Ein Diagramm pro Konzept, Schrift gut lesbar; zu breite Diagramme → aufteilen, statt den Editor zusammenstauchen zu lassen.
- Sprache des Inputs beachten — in derselben Sprache antworten, die der Benutzer spricht.
Skripte
scripts/mmd2png.py— Mermaid → PNG (standardmäßig nur lokal; Remote per Opt-in viaMMD2PNG_BACKEND):python3 scripts/mmd2png.py '<f>.mmd' '<f>.diagram.png' [--scale 2] [--size 1600] [--theme forest]scripts/chart.py— CSV-Daten (2 Spalten: Label,Wert) → PNG:uv run --with matplotlib python3 scripts/chart.py '<f>.csv' '<f>.diagram.png' <bar|pie|line>
