# E-Book Workflow (Monatsausgaben)

Aufbauend auf dem bestehenden Newsletter-Workflow erzeugt dieser Prozess am Monatsanfang ein zusammenhängendes E-Book aus allen Artikeln des Vormonats – keine einfache Artikelliste, sondern eine eigenständige, fortlaufende Geschichte mit zusätzlichem Text (Vorwort, Schlusswort, Übergängen) und einem KI-generierten Cover.


# Ziel

  • Leser-Mehrwert: monatsweise, literarisch geglättete Erzählung von Donau2Space.
  • KI-Experiment: systematischer Test, wie weit sich KI-gestütztes Langform-Schreiben treiben lässt (Kohärenz, Kapitelstruktur, Stil).
  • Ergebnis: Download im E-Book-Katalog als kostenloses PDF oder EPUB.

# Kurzüberblick

  • Trigger: Cron am 1. des Monats um 03:00 Uhr (Serverzeit).
  • Input: Alle veröffentlichten Artikel des Vormonats (MySQL).
  • KI-Schritt 1: Zusammenfassung & Kapitel-Gerüst (Outline mit Szenen/Übergängen).
  • Split: Outline → Kapitel-Items.
  • KI-Schritt 2: Kapitel werden nacheinander ausgeschrieben (konstante Stimme, Rückbezüge).
  • Finalisierung: Vorwort, Schlusswort, Titel, Untertitel, Cover-Prompt.
  • Artefakte: ebook.md und Coverbild.
  • Ausgabe: E-Mail an mich zur weiteren manuellen Arbeit (PDF/EPUB + Upload).

# Ablauf im Detail (n8n)

Cron-Zeitplan:

0 3 1 * *

Läuft am 1. Tag des Monats um 03:00 Uhr.

Pipeline-Schritte:

  1. Code Node – berechnet from_date/to_date des Vormonats.
  2. MySQL – holt Artikel (title, slug, content_plain, published_at, Tags).
  3. Code Node (Parser) – säubert/normalisiert Text (Zitate, Codeblöcke, Bilderhinweise → Fußnoten).
  4. KI Node 1 (Outline) – erstellt Kapitelstruktur inkl. Übergängen, Spannungsbögen, offener Fragen.
  5. Code Node (Split) – zerlegt Outline in Kapitel-Items (Array → Items).
  6. Loop → KI Node 2 (Kapitelwriter) – schreibt Kapitel für Kapitel mit konsistenter Ich-Perspektive (Mika).
  7. Code Node (Assembler) – fügt Kapitel zusammen; erzeugt Vorwort, Schlusswort, Titel, Untertitel; setzt YAML-Front-Matter.
  8. Convert to File – speichert als ebook.md.
  9. GPT Image 1 – rendert Coverbild (realistische Passau-Abendstimmung, typografisch eingebetteter Titel).
  10. Merge – kombiniert ebook.md und Cover.
  11. E-Mail – beide Dateien an mich zur manuellen Konvertierung (PDF/EPUB) und Upload.

# Ablaufdiagramm

flowchart TD
  C["Cron (1. des Monats, 03:00)"] --> CN1["Code Node: Zeitraum des Vormonats bestimmen"]
  CN1 --> DB["MySQL: Artikel abrufen"]
  DB --> PARSE["Code Node: Artikeltext parsen & normalisieren"]
  PARSE --> KI1["KI Node 1: Kapitel-Outline erstellen"]
  KI1 --> SPLIT["Code Node: Outline in Kapitel aufteilen"]
  SPLIT --> LOOP["Loop Over Items (für jedes Kapitel)"]
  LOOP --> KI2["KI Node 2: Kapitel schreiben"]
  KI2 --> ASM["Code Node: Zusammenführen, Vorwort/Schlusswort, Titel/Subtitel"]
  ASM --> FILE["Convert to File: ebook.md erzeugen"]
  ASM --> PROMPT["Cover-Prompt generieren"]
  PROMPT --> IMG["GPT Image 1: Coverbild erstellen"]
  FILE --> MERGE["Merge: Text & Cover zusammenführen"]
  IMG --> MERGE
  MERGE --> MAIL["E-Mail: ebook.md + Cover an mich senden"]
  MAIL --> E["Workflow Ende (manuelle PDF/EPUB-Erstellung & Upload)"]

# Artefakt-Format (Markdown)

---
title: "<Titel>"
subtitle: "<Untertitel>"
author: "Mika Stern"
lang: de-DE
date: "<Monat Jahr>"
cover-image: "cover.png"
---

# Vorwort

...

## Kapitel 1 — <Kapitelname>
...

# Schlusswort

...

Konvertierung (manuell, aktuell):

  • EPUB: pandoc ebook.md -o ebook.epub
  • PDF: z. B. über Zettlr/Pandoc, Cover aus Front-Matter verwenden.

# Cover-Prompt (Beispiel)

  • Stil: realistische Abendstimmung in Passau, flussnah, warme Töne, natürliche Tiefe, Titel/Untertitel/Autor im Bild integriert (kein Rand).
  • Inhaltlicher Fokus: Stimmung und Motiv des Monats (aus Outline abgeleitet), keine Sci-Fi-Elemente.

# Laufzeit & Größenordnung

  • Test (September 2025): 15 Artikel → 10 313 Wörter, 26 Seiten, ~8 Minuten Laufzeit.
  • Hochrechnung (30 Artikel): ca. 20 600–21 000 Wörter, ~52 Seiten, ~16 Minuten (linear skaliert; reale Dauer abhängig von API-Latenz).

# Qualitätssicherung

  • Stimme/Tonalität: System-Prompt erzwingt Mikas Perspektive (95 % Hochdeutsch, 5 % bayerische Färbung).
  • Kohärenz: Kapitel-Loop nutzt kontextuellen Speicher (bisherige Kapitel + Outline).
  • Faktenkonsistenz: Artikel-Metadaten (Zeit, Ort, Objekte) werden beim Parsing als Faktenliste angehängt.
  • Längensteuerung: Max-Token pro Kapitel; Splitting bei Überlänge.

# Fehlerpfade & Fallbacks

  • Leere Artikelmenge: Workflow bricht ab → Log-Eintrag + E-Mail mit Hinweis.
  • KI-Timeout/Rate-Limit: Retry mit exponentiellem Backoff (3 Versuche) → E-Mail mit Teil-Ergebnis.
  • Cover-Fehler: Platzhalter-Cover + Hinweis.
  • Konvertierungsfehler (manual): Pandoc-Logs prüfen (z. B. fehlendes Cover oder Sonderzeichen).

# To-Dos / Ausblick

  • Automatisierte EPUB/PDF-Erzeugung (Pandoc-Container in n8n).
  • Automatischer Upload ins WordPress-Medienarchiv + Katalog-Update.
  • Versionierung & Changelog: vYYYY.MM im Front-Matter.