Wie ein KI-gestütztes Recherche-System in 1821 Phasen investigative Artikel mit internem Kontext-Scan, Cross-Link-Review, Quellenaudit, Recherche-Protokoll-Pflicht, Bildgenerierung und Social-Media-Aufbereitung produziert.
0
Phasen
0
Schritte
0
KI-Agents
0
Audit-Loops
15-25
Minuten
Architektur
Die Pipeline auf einen Blick
Jeder Artikel durchläuft zehn Phasen — vom internen Kontext-Scan über Recherche, Cross-Link-Review und zwei Audit-Gates bis zur Veröffentlichung mit Social-Media-Assets. Zwei Gates sind blockierend: Ohne bestandenen Quellen-Audit und Logo-Audit kein Deploy.Die erweiterte Pipeline ergänzt vier zusätzliche Phasen: Kontext-Scan (Phase 0), Adversarial Research, Perspektiv-Audit und Cross-Link-Review. Plus "Weitergraben"-Sektion mit Crowd-Research-CTA.
Recherche
2 Agents
Artikel
Wiki + Blog
Audit
Blockierend
Medien
Bild + A/V
Netzwerk
Graph-Build
Deploy
Staging
Social
3 Plattformen
Die 1821 Phasen
Schritt für Schritt durch die Pipeline
Klicke auf eine Phase, um die einzelnen Schritte zu sehen. Violette Badges markieren KI-Agent-Einsätze, rote Badges blockierende Audit-Gates. Model-Badges zeigen welches Claude-Modell pro Phase orchestriert wird:
Sonnet Such-/Review-Tasks, schnell & günstigOpus Komplexe Analyse (Adversarial, Perspektiv)Sonnet Zwei Agents parallelkein Agent Hauptmodell schreibt direkt
Phase 00 Sonnet
Interner Kontext-Scan
Sonnet-Agent scannt alle eigenen Steuerlupe-Artikel nach bereits dokumentierten Befunden zur Ziel-Organisation. Erzeugt eine Zitat-Bibliothek für den Artikel — reine Faktensammlung, keine Interpretationen.
1-2 Min.
Details
Kontext-Agent (Sonnet) — scannt artikel-blog.js, html/wiki/*.html und netzwerk-base.json nach Hauptorg + Nebenorgs
Agent 0
Verbindungs-Scan — Personalunionen, Drehtüren, Finanzierungsketten in eigenen Artikeln identifizieren
Non-Invasiv: Keine Interpretationen, keine Thesen — reine Faktensammlung für Phase 3.5
Phase 01 Sonnet
Recherche
Zwei KI-Agents durchsuchen parallel Lobbyregister, Bundesanzeiger, BT-Drucksachen und Handelsregister. Firmengeflecht-Analyse deckt Personalunionen und Querfinanzierung auf.
3-5 Min.
Details
Queue prüfen — research-queue.json, nächste Organisation mit Status "pending"
Welle-Spec-v2 (adaptive Iter-Set-Berechnung) — requiredIterations(orgMetadata) + wordcountLimit() aus scripts/audit.js liefern Iter-Pflicht-Set, Wordcount-Limit (1.3× standard / 1.5× tiefen) und Spawn-Anzahl (2/3/4) — direkt aus org_metadata-Klassifikator, kein fester 9-Iter-Default mehr. Doku: docs/welle-spec-v2.md.
Gegenpositionen — Website der Organisation einbeziehen, Eigendarstellung dokumentieren
Phase 01b OpusNEU
Adversarial Research
Ein Skeptiker-Agent hinterfragt die bisherige Recherche: Was haben andere Journalisten gefunden? Gibt es FragDenStaat-IFG-Anfragen? Akademische Kritik? Welche Behauptungen sind nur aus einer Quelle belegt?
2-4 Min.
Details
Medienrecherche — Correctiv, netzpolitik.org, Abgeordnetenwatch, Kontraste, Monitor: Was wurde schon recherchiert?
Agent 7
IFG-Anfragen — FragDenStaat durchsuchen: Welche Dokumente wurden freigegeben oder verweigert?
Gegenstimmen — Wer kritisiert diese Organisation öffentlich? Parlamentarische Anfragen gegen die Org?
Akademische Perspektiven — Evaluationen, Gutachten, wissenschaftliche Kritik an Methodik/Wirksamkeit
Offene Flanken — Welche Behauptungen nur 1 Quelle? Welche Zahlen fehlen? Widersprüche?
Phase 02 kein Agent
Wiki-Artikel
HTML-Artikel nach Vorlage mit Infobox, Sektionen, Quellenverweisen und Netzwerk-Metadaten. Logo-Beschaffung mit automatischer Validierung.
Netzwerk-Meta — JSON-Block mit Node-Typ, Links zu anderen Organisationen einbetten
gate.js + Scroll-Spy — Passwortschutz und Inhaltsverzeichnis-Navigation einbinden
Phase 03 kein Agent
Blog-Artikel
Investigativer Erzähltext in artikel-blog.js, Fakten-Box in artikel.html, Card auf der Hauptseite. Drei Dateien, ein Artikel.
2-3 Min.
Details
ID vergeben — Nächste freie ID in artikel-blog.js ermitteln
Blog-Text — Investigativer Erzählstil, alle Quellen als Links, kein Gendern
Daten-Artikel — Fakten-Box und Quellen-Liste in artikel.html
Hauptseite — Card in cases-Array + caseImgs in index.html
Phase 03b OpusNEU
Perspektiv-Audit
Ein Redaktions-Agent liest den fertigen Entwurf und prüft auf Einseitigkeit, fehlende Gegenpositionen und wertende Formulierungen. Maximal 2 Korrektur-Iterationen.
2-3 Min.
Details
Perspektiv-Agent — Fertigen Wiki+Blog-Artikel auf Einseitigkeit, Lücken und Tonfall prüfen
Agent 8
Einseitigkeits-Check — Fehlt die Position der Organisation? Werden Verdachtsmomente als Fakten dargestellt?
Lücken-Analyse — Sind alle Recherche-Ergebnisse eingeflossen? Fehlt zeitlicher Kontext?
Weitergraben-Qualität — Sind offene Fragen konkret? Recherche-Ansätze realistisch? CTA klar?
Korrektur-Loop — Bei "ÜBERARBEITEN": zurück zu Phase 2/3, max. 2 Iterationen
Loop
Phase 3.5 SonnetNEU
Cross-Link-Review
Sonnet-Agent vergleicht den fertigen Artikel-Entwurf mit der Zitat-Bibliothek aus Phase 0. Fehlende Querverweise zu eigenen Artikeln werden ergänzt — ausschließlich Links, kein neuer Inhalt.
1-2 Min.
Details
Cross-Link-Agent (Sonnet) — liest Artikel-Entwurf + Kontext-Report aus Phase 0
Agent 0b
Befund-Abgleich — "Haben wir dazu einen eigenen Artikel?" für jede zentrale Aussage
Non-Invasiv: Keine neuen Argumente, keine Thesen, keine Umformulierung — nur Links
Strikt
Phase 04 Sonnet
Quellen-Audit
Blockierendes Gate: Jeder Link wird per HTTP geprüft, jede Zahl gegen die Primärquelle verifiziert. BT-Drucksachen-Nummern werden gegen dserver.bundestag.de validiert. Kein Deploy ohne PASS.
BT-Drs.-Check — Jede Drucksachennummer gegen dserver.bundestag.de verifizieren
Blockierend
Zahlen-Agent — Jeden Geldbetrag und jede Prozentangabe in der Primärquelle bestätigen
Agent 4
Korrektur-Loop — Bei Fehlern: zurück zu Phase 2/3, korrigieren, erneut auditieren
Loop
Phase 4.3 kein AgentNEU
Drs.-Hyperlink-Linter
Jede Drs. N/M-Erwähnung im Wiki muss im umgebenden Block-Kontext einen <a href="..."> auf dserver.bundestag.de oder eine Landtags-URL haben. Verhindert Drs.-Halluzinationen mit korrektem Format aber falschem Bezug.
<1 Min.
Details
node scripts/audit.js --strict — exit 1 bei NEUEN Drs.-Verstößen seit letztem Lauf (Drift-Erkennung)
Blockierend (CI)
Erlaubte Hosts — dserver.bundestag.de, dipbt.bundestag.de, dokumente.landtag.*, landtag.brandenburg.de, landtag-mv.de etc.
Block-Heuristik — Match in <li>/<p>/<td>/<dd>/<div>: Parlaments-Link irgendwo im Block reicht
Baseline — Bestand als Warnung in docs/audits/latest-audit.json; nur neue Verstöße brechen den Push
HTTP-Verifikation der zwei häufigsten Halluzinations-Klassen: BT-Drs.-Nummern gegen dserver.bundestag.de (HEAD-Request) und Lobbyregister-IDs (R\d{6}) gegen lobbyregister.bundestag.de. Org-Name aus og:title wird Token-gematcht gegen den Kontext.
1-2 Min. (mit 90-Tage-Cache)
Details
node scripts/check-drs-numbers.js --new-since=HEAD~1 --strict — exit 1 bei neuen 404-Drs.
Blockierend (CI)
node scripts/check-lobby-ids.js --new-since=HEAD~1 --strict — exit 1 bei neuen Lobby-ID-Mismatches
Blockierend (CI)
Drs.-URL-Bauer — dserver.bundestag.de/btd/<WP>/<floor(NR/100,3)>/<WP><NR-5>.pdf mit Redirect-Follow + 10s-Timeout
Lobby-Match-Heuristik — Org-Tokens (≥3 Zeichen, ohne „Stiftung/Verband/eV") gegen Slug + h1 (Wiki) oder ±600-Zeichen-Kontext + href-URLs (Multi-Org-Files)
Reports — docs/audits/drs-numbers-YYYY-MM-DD.tsv + lobby-ids-YYYY-MM-DD.tsv; audit.js liest die letzten und meldet Findings als Warnings
Cache — 90-Tage-TTL pro URL/ID in docs/audits/{drs,lobby}-cache.json — keine Network-Calls in Bestand-Sweeps unter 90 Tagen
Phase 4.5 kein AgentNEU
Cross-File-Konsistenz
Hash-basierter Vergleich aller Geldbeträge, Kennzahlen, Drs.-Klassifizierungen und Personen-Positionen zwischen Wikis, Blog und Index. Findet wenn dieselbe Behauptung in zwei Dateien mit unterschiedlichem Wert erscheint.
<1 Min.
Details
node scripts/check-cross-file.js --new-since=HEAD~1 --strict — exit 1 bei Cross-File-Diskrepanz
Blockierend (CI)
Klasse A — Geldbeträge: gleiche Org + gleiches Programm + >20% Abweichung zwischen Dateien
Klasse B — Kennzahlen: Mitglieder/Träger/Partner-Zahlen, gleiche Org, verschiedene Files
Report — docs/audits/cross-file-YYYY-MM-DD.md mit Top-15 Diskrepanzen
Phase 05 Sonnet
Bildgenerierung
3 Bilder in einem Schritt: Hauptbild (Nano Banana, text-only) + Podcast- und Video-Thumbnail (Nano Banana 2, multimodal — Hauptbild als Referenz). Typografie passt sich dem Bildstil an.
2-3 Min.
Details
Referenzbild-Agent — Haarfarbe, Alter, Kleidung, Merkmale der beteiligten Personen recherchieren
Validierung — file-Check + sips-Komprimierung auf ~300KB JPEG
Dual-Write — Original-Pfad + Pool-Speicherung in image-pool.json
Phase 5.3 kein AgentNEU
Tempus-Decay-Check
Pattern-basierter Check gegen docs/decay-list.yml: Aussagen, die ein Verfallsdatum haben (VS-Beobachtungen, Förderprogramme, Trägerschaften) müssen im richtigen Tempus stehen. Verhindert Präsens-Aussagen über überholte Sachverhalte.
<1 Min.
Details
node scripts/check-tense-decay.js — Standalone-Lauf, oder integriert in node scripts/audit.js als Warning-Check
Decay-Liste — docs/decay-list.yml mit pattern + decayed_at + must_be + reason pro Eintrag
Tempus-Heuristik — Marker für Vergangenheit (war/wurde/eingestellt) vs. Präsens (ist/fördert/beobachtet) im 280-Zeichen-Snippet um den Match
Warning-only — kein Blocker, weil Heuristik unscharf. Findings landen in Audit-Report-Output
Phase 5.5 kein AgentNEU
Wayback-Snapshot-Pflicht
Alle externen Quellen eines Wiki-Artikels werden automatisch in der Wayback Machine gespeichert. Schutz gegen zukünftige 404-Situationen — Quellen bleiben auch nach Offline-Gehen belegbar.
1-3 Min.
Details
scripts/snapshot-sources.sh html/wiki/<slug>.html — pro neuer externer Quelle automatisch anstoßen
Output TSV — docs/audits/wayback-log/YYYY-MM-DD.tsv mit Status + Timestamp pro URL
CDN-Skip — fonts.googleapis.com, cdnjs, unpkg, Tailwind CDN und interne Domains werden übersprungen
Quellen-Update — Wayback-URL als zweiten Link in Quellenliste beilegen: „Original" + „Archiv MM/YYYY"
Phase 5.6 kein AgentNEU
Aktenzeichen-Validator
Findet alle Gerichts-Aktenzeichen (BGH ZR, OLG U, BVerwG C, VfGBbg, EuGH C-) und prüft, ob im umgebenden Block ein Hyperlink zu einer Gerichts- oder Rechtsprechungs-Site (dejure.org, bgh.de, bverwg.de, curia.europa.eu) existiert. Verhindert "Sondervotum Strauss"-Pattern (Aktenzeichen ohne Beleg).
<1 Min.
Details
node scripts/check-az.js — Default: Format + Hyperlink-Check (kein HTTP). Auch in node scripts/audit.js integriert.
Patterns — BGH \d+ ZR \d+/\d+, OLG \d+ U \d+/\d+, BVerwG \d+ C \d+.\d+, VfGBbg \d+/\d+, C-\d+/\d+
--verify-Flag (manueller Lauf, nicht in CI) — HEAD-Requests an dejure.org pro Aktenzeichen
Warning-only — kein Blocker, Bestand-Findings stehen im Audit-Output
Phase 5.7 kein AgentNEU
Multimedia-Pre-Audit
BLOCKIERENDES Gate vor jeder Vertonung. Die 2 plakativsten Behauptungen werden stichprobenartig gegen ihre Quellen geprüft. Exit 1 bei Halbwahrheit/Falsch: Wiki muss zuerst gefixt werden — Audio ist nicht editierbar, Wiki schon.
research-queue.json — Status "done" + neue Recherche-Ziele aus dem Artikel
build-netzwerk.js — Netzwerk-Graph mit validierten Links neu generieren
check-logos.sh — MIME-Type-Prüfung aller Wiki-Logos, Exit 1 = Deploy abbrechen
Blockierend
Phase 6.5 SonnetNEU
Halbwahrheits-Test
Subjektiver, aber strukturierter Self-Review-Schritt: Pro Behauptung im Artikel die Frage stellen "Kann jemand mit 'Aber das stimmt so nicht ganz, weil…' antworten?" Wenn ja → präzisieren oder weglassen. Verhindert ORANGE-Klasse-Befunde an der Wurzel.
1-2 Min.
Details
Halbwahrheits-Agent (Sonnet) — liest Wiki + Blog, stellt pro fett markierter Behauptung das "Aber das stimmt so nicht ganz, weil…"-Gegenargument
Agent 9
Beispiele aus Damage-Audit — Campact-50%, Müller-Entlassung "nicht öffentlich kommuniziert", Schwochow-"Whistleblower-Vergeltung"
Output — Liste der Halbwahrheits-Kandidaten mit Vorschlag: präzisieren / weglassen / Quelle ergänzen
Subjektiv — kein Script, kein Blocker. Strukturiert die Selbstreflexion vor Deploy.
Phase 6.7 NEU
Recherche-Protokoll erfassen
UPSERT in recherche_protokoll-Tabelle: abgehakte Iterationen (A–Z), Suchqueries verbatim, geprüfte Quellen, Verworfen-Liste mit Begründungen, Adversarial-Z-Antwort. Klassifikator (kategorie + Budget + politisch) leitet Pflicht-Iter aus org_metadata ab — audit.js blockiert bei Lücken.
1-2 Min.
Details
Org-Metadaten — POST /api/org-metadata mit kategorie (ngo/wohlfahrt/stiftung/antifa/asyl/behoerde/oerr/sicherheitsapparat/faktenchecker), jahresbudget, gruendungsjahr, politisch_aufgeladen
Recherche-Protokoll — POST /api/recherche-protokoll mit iterationen[], suchqueries[], quellen_geprueft[], befunde_verworfen[] (intern), adversarial_check, modell, claude_md_hash
Inject — node scripts/inject-recherche-protokoll.js --slug X rendert Public-Block (Iter-Pills, Quellen-Statistik, kein Verworfen, kein Adversarial) ans Wiki-HTML
Browser-Agent — Playwright MCP öffnet die Live-Seite, visueller Check
Agent 6
Freigabe-Link — admin.ngo.endlichzeit-ki.de/?slug=[SLUG] an Redaktion
Phase 08 kein Agent
Social-Media-Aufbereitung
Carousel Studio generiert Instagram-Karussells (6 Slides), Content-Type-Router entscheidet das Format, Social-Meta-Generator erstellt plattformspezifische Captions und OG-Tags.
1-2 Min.
Details
extract-facts.js — Fakten aus Wiki/Blog extrahieren und klassifizieren
Content-Type-Router — Score-basiert: Karussell / Single / Story / Flyer
Render — 6 PNG-Slides im Instagram-Feed-Format generieren
Social-Meta — caption.json + og-meta.json + hashtags.txt pro Plattform
Jeder Artikel wird von spezialisierten KI-Agents bearbeitet, die parallel arbeiten. Zwei blockierende Gates verhindern die Veröffentlichung ungeprüfter Inhalte.
Die Agent-Besetzung
Kontext-Agent
Phase 0: Scannt eigene Artikel — Zitat-Bibliothek für Cross-Referenzierung (Sonnet)
Jeden Geldbetrag und jede Prozentangabe in der Primärquelle bestätigen
Referenzbild-Agent
Personenbeschreibungen für Wiedererkennungswert in Karikaturen
Cross-Link-Agent
Phase 3.5: Fehlende Querverweise auf eigene Artikel ergänzen — non-invasiv (Sonnet)
Browser-Agent
Playwright MCP — visuelle Verifikation der Live-Seite nach Deploy
Die drei Audit-Gates
Quellen-Audit
Jeder Link HTTP 200? BT-Drs.-Nummern verifiziert? Zahlen durch Primärquelle gedeckt? Keine halluzinierten Drucksachen. Bei Fehler: Korrektur-Loop zurück zu Phase 2/3.
Blockierend — kein Deploy ohne PASS
Logo-Audit
check-logos.sh prüft MIME-Types aller Wiki-Logos. HTML-Fehlerseiten als PNG gespeichert? Exit 1 = Deploy wird abgebrochen und Logo repariert.
Jeder Artikel kann als Podcast-Diskussion und Erklärvideo aufbereitet werden. Der Prozess nutzt NotebookLM für die Audio/Video-Generierung und Claude Code für die Integration.
Podcast-Workflow
Diskussion oder Erklärformat
1
Markdown hochladen — Der fertige Wiki-Artikel (Markdown/HTML) wird als Quelle in Google NotebookLM eingespeist.
2
Prompt konfigurieren — Format wählen: Diskussion, Erklärformat oder Interview. Vorgaben für Ton, Länge und Fokus-Themen aus der Quelldatei.
2b
Multimedia-Pre-Audit (BLOCKIEREND) — Vor der Vertonung: node scripts/multimedia-pre-audit.js <slug>. Bei exit 1 (🟠/❌): Wiki zuerst fixen. Audio ist nicht editierbar — Vertonung erst nach PASS.
Blockierendes Gate
3
Audio generieren — NotebookLM generiert eine Podcast-Diskussion mit zwei KI-Stimmen basierend auf dem Quelldokument.
NotebookLM
4
MP3 herunterladen — Die generierte Audio-Datei wird heruntergeladen und als einzelne Quelle erneut hochgeladen.
5
Transkript + Kapitelmarken — NotebookLM erstellt aus der MP3 ein vollständiges Transkript mit Zeitstempeln und Kapitelmarken.
NotebookLM
5b
Transkript-Datei persistieren — Das Volltext-Transkript mit Zeitstempeln wird in html/media/transkripte/<slug>.md abgelegt. Frontmatter-Pflichtfelder: slug, title, mediaType, mediaUrl, dauer, datum, sprecher, quelle. Sections-Format: ## [MM:SS] Kapitel-Titel. Wird im Frontend unter transkript.html?slug=<slug> angezeigt (Springfunktion + Volltext-Suche).
Claude Code
6
Claude Code Agent — MP3, Transkript und Kapitelmarken werden an Claude Code übergeben. Podcast-Thumbnail wurde bereits in Phase 5 generiert (Nano Banana 2, Hauptbild als Referenz + "PODCAST"). Der Agent legt alles in die Akte.
Claude Code + Nano Banana 2
Video-Workflow
Erklärvideo im Aquarell-Stil
1
Markdown hochladen — Derselbe Wiki-Artikel wird in NotebookLM als Quelle für die Video-Generierung eingespeist.
2
Video-Format wählen — Erklärvideo im klassischen Aquarell-Stil auswählen. Vorschläge für den Video-Prompt aus dem Quelldokument generieren lassen.
3
Video-Prompt erstellen — Aus den Vorschlägen der Quelldatei wird der finale Video-Prompt zusammengestellt und das Video generiert.
NotebookLM
4
Video herunterladen — Das fertige Erklärvideo wird heruntergeladen und für die Plattform vorbereitet.
5
Claude Code Agent — Video wird übergeben. Video-Thumbnail wurde bereits in Phase 5 generiert (Nano Banana 2, Hauptbild als Referenz + "VIDEO", selbe Typografie wie Podcast). Der Agent legt alles in die Akte.
Claude Code + Nano Banana 2
6
Akte komplett — Video, Teaser und Bild werden in die Artikel-Akte integriert. Der Artikel erscheint mit Text-, Podcast- und Video-Tab auf der Plattform.
Podcast-Erkennungsmerkmal
Hauptbild als Referenz (multimodal) + „PODCAST" in passender Schrift
Video-Thumbnail
Selbes Bild + selbe Typografie wie Podcast — nur „VIDEO" statt „PODCAST"
Automatisiert
Social-Media-Assets — fertig generiert
Jeder Artikel durchläuft das Carousel Studio und bekommt automatisch plattformspezifische Captions, Hashtags, OpenGraph-Tags und bis zu 6 Karussell-Slides.
Instagram
6-Slide-Karussell im Feed-Format, Story-Variante mit CTA, Captions mit Hook + Stats + Link + Hashtags
Feed + Story
X / Twitter
Max. 280 Zeichen, optimierte Hashtags, OG-Image als Twitter Card (summary_large_image)
Caption + Card
LinkedIn
Sachlich-analytischer Ton, längere Captions erlaubt, Artikel-Teaser mit Quellenverweisen
Artikel-Teaser
Automatisch generierte Dateien pro Artikel
caption.json
3 Plattform-Captions
og-meta.json
OpenGraph + Twitter Cards
hashtags.txt
Basis + Skandal-Tags
6x PNG-Slides
1080x1080 Karussell
Crowd-Research
Weitergraben — offene Fragen und Mitmach-CTA
Die Extended Pipeline fügt am Ende jedes Artikels eine strukturierte "Weitergraben"-Sektion ein: offene Fragen, Recherche-Ansätze und die Möglichkeit, Informationen beizusteuern.
Offene Fragen
Der Skeptiker-Agent (Phase 1b) identifiziert unbeantwortete Fragen. Jede ist konkret und recherchierbar — keine vagen Andeutungen.
Beispiel: "Wie hoch ist die Overhead-Quote der gGmbH? Der Jahresabschluss 2023 weist 2,1 Mio. Personalkosten bei 3,8 Mio. Umsatz aus — öffentlich gibt die Org 15% an." Recherche-Ansatz: Bundesanzeiger, Jahresabschluss 2024 abwarten
Mitmach-CTA
E-Mail-basierter Kontaktweg. Bewusst kein Web-Formular — keine Upload-Angriffsfläche, kein Prompt-Injection-Risiko.
CTA-Text: "Sie haben Informationen, die hier fehlen? Dokumente, Insider-Wissen oder Hinweise auf weitere Quellen? Schreiben Sie an recherche [at] endlichzeit-ki.de. Alle Einsendungen werden redaktionell geprüft."
Sicherheitskonzept Crowd-Research
Phase 1: E-Mail-only (aktuell)
Keine Upload-Angriffsfläche
Kein Prompt-Injection-Risiko
Kein XSS (kein User-Content auf Website)
E-Mail-Trail als Audit-Dokumentation
Anonymität via Protonmail möglich
Phase 2: Web-Formular (später)
sanitize-html für alle Text-Inputs
Schema-Validierung (zod)
Strikte CSP ohne unsafe-inline
Rate-Limiting (5/h pro IP)
CSRF-Protection + Honeypot
Max. 10.000 Zeichen, kein HTML
Zeitleiste
15-25 Minuten — von Null zum fertigen Artikel20-30 Minuten — Tiefenrecherche mit Audit
Die durchschnittliche Durchlaufzeit eines vollständigen Artikels mit Wiki, Blog, Podcast, Video und Social-Media-Assets.
Recherche
4'
Wiki+Blog
5'
Audit
4'
Bilder
2'
Podcast
4'
Video
3'
Deploy
2'
~20 Min.
Durchschnittliche Gesamtdauer inkl. Podcast + Video
Recherche
4'
Skeptiker
3'
Artikel
5'
Perspektiv
2'
Audit
4'
Bilder
2'
Deploy
2'
~25 Min.
Extended-Pipeline mit Skeptiker + Perspektiv-Audit (ohne Podcast/Video)
Social-Media-Assets — fertig generiert
Jeder Artikel durchläuft das Carousel Studio und bekommt automatisch plattformspezifische Captions, Hashtags, OpenGraph-Tags und bis zu 6 Karussell-Slides.
Automatisch generierte Dateien pro Artikel