Add complete Schreibwerkstatt BMAD module
- 7 specialized agents (Dramaturg, Autor, Lektor, Figurenprüfer, Kontinuitätsprüfer, Motivjäger, Stilprüfer) - Bibel-System (Single Source of Truth) - State Management per chapter - Review Pipeline with Human-in-the-Loop - KI-Muster-Erkennung (Perplexity Gate) - Export (EPUB, DOCX, Markdown) - Setup scripts and templates
This commit is contained in:
parent
1f72c07758
commit
22298f1008
35 changed files with 2184 additions and 2 deletions
73
skills/sw-setup/SKILL.md
Normal file
73
skills/sw-setup/SKILL.md
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
---
|
||||
skillId: bmad-sw-setup
|
||||
skillName: Schreibwerkstatt Setup
|
||||
skillType: workflow
|
||||
description: |
|
||||
Richtet die Schreibwerkstatt ein und erstellt die Projektstruktur
|
||||
mit Bibel-Templates, Zustandsdateien und Konfiguration.
|
||||
Trigger: setup, einrichten, schreibwerkstatt starten, projekt anlegen
|
||||
---
|
||||
|
||||
# Schreibwerkstatt Setup
|
||||
|
||||
## Überblick
|
||||
|
||||
Dieses Setup erstellt die komplette Projektstruktur für dein Romanprojekt. Nach dem Setup hast du:
|
||||
|
||||
- Eine **Bibel** mit Templates für Figuren, Orte, Stil und Motive
|
||||
- Ein **Zustandssystem** das den Fortschritt pro Kapitel trackt
|
||||
- Eine **Geschichte**-Struktur für Synopsis und Kapitelplan
|
||||
- Einen **Output**-Ordner für fertige Kapitel und Exporte
|
||||
|
||||
## Workflow
|
||||
|
||||
### Schritt 1: Projektkonfiguration
|
||||
|
||||
Frage den Nutzer nach:
|
||||
1. **Projektname** — Wie heißt der Roman?
|
||||
2. **Genre** — z.B. Dark Romance, Fantasy, Thriller, Lit-Fiction
|
||||
3. **Erzählperspektive** — Ich-Erzähler, Dritte Person Limited, etc.
|
||||
4. **Zeitform** — Präsens oder Präteritum
|
||||
5. **Sprache** — Deutsch oder English
|
||||
6. **Kapitellänge** — kurz/mittel/lang
|
||||
|
||||
### Schritt 2: Bibel initialisieren
|
||||
|
||||
Erstelle die Bibel-Dateien aus den Templates:
|
||||
|
||||
```
|
||||
bibel/
|
||||
├── stil.md ← Tonalität, verbotene Wörter, Stilregeln
|
||||
├── motive.md ← Motivregister und Symbolik
|
||||
├── figuren/
|
||||
│ └── _vorlage.md ← Template für neue Figuren
|
||||
└── orte/
|
||||
└── _vorlage.md ← Template für neue Orte
|
||||
```
|
||||
|
||||
### Schritt 3: Geschichte-Struktur anlegen
|
||||
|
||||
```
|
||||
geschichte/
|
||||
├── synopsis.md ← Pitch, Prämisse, Handlungsübersicht
|
||||
└── plan.md ← Kapitelübersicht mit Beats
|
||||
```
|
||||
|
||||
### Schritt 4: Zustandssystem initialisieren
|
||||
|
||||
```
|
||||
zustand/
|
||||
├── aktuell.md ← Globaler Projektzustand
|
||||
└── kapitel/ ← Pro-Kapitel-Zustand (wird beim Schreiben gefüllt)
|
||||
```
|
||||
|
||||
### Schritt 5: Bestätigung
|
||||
|
||||
Zeige dem Nutzer die erstellte Struktur und erkläre die nächsten Schritte:
|
||||
1. Bibel füllen (Figuren, Orte, Stil definieren)
|
||||
2. Synopsis schreiben
|
||||
3. Kapitelplan erstellen
|
||||
4. Erstes Kapitel mit dem **Autor**-Agenten schreiben
|
||||
|
||||
<HALT>
|
||||
Warte auf Nutzereingabe bevor du fortfährst.
|
||||
11
skills/sw-setup/assets/module-help.csv
Normal file
11
skills/sw-setup/assets/module-help.csv
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
canonicalId,moduleName,moduleCode,skillType,skillId,skillName,description,filePath
|
||||
sw-setup,Schreibwerkstatt,sw,workflow,bmad-sw-setup,Schreibwerkstatt Setup,Richtet die Schreibwerkstatt ein und erstellt die Projektstruktur mit Bibel-Templates und Zustandsdateien,_bmad/sw/skills/sw-setup/SKILL.md
|
||||
sw-dramaturg,Schreibwerkstatt,sw,agent,bmad-sw-dramaturg,Dramaturg,Spezialisierter Agent für Handlungsstruktur Plot-Architektur Spannungsbögen und dramaturgische Analyse,_bmad/sw/skills/dramaturg/SKILL.md
|
||||
sw-autor,Schreibwerkstatt,sw,agent,bmad-sw-autor,Autor,Spezialisierter Agent für das Schreiben von Prosa-Kapiteln basierend auf Bibel und Zustand,_bmad/sw/skills/autor/SKILL.md
|
||||
sw-lektor,Schreibwerkstatt,sw,agent,bmad-sw-lektor,Lektor,Spezialisierter Agent für sprachliche Überarbeitung Stilkonsistenz und Qualitätsprüfung,_bmad/sw/skills/lektor/SKILL.md
|
||||
sw-figurenprufer,Schreibwerkstatt,sw,agent,bmad-sw-figurenprufer,Figurenprüfer,Spezialisierter Agent der Figurenkonsistenz Motivation und Entwicklungsbögen überwacht,_bmad/sw/skills/figurenprufer/SKILL.md
|
||||
sw-kontinuitaetsprufer,Schreibwerkstatt,sw,agent,bmad-sw-kontinuitaetsprufer,Kontinuitätsprüfer,Spezialisierter Agent der Handlungsfäden Zeitlinien und Weltlogik auf Widersprüche prüft,_bmad/sw/skills/kontinuitaetsprufer/SKILL.md
|
||||
sw-motivjaeger,Schreibwerkstatt,sw,agent,bmad-sw-motivjaeger,Motivjäger,Spezialisierter Agent der literarische Motive Symbole und thematische Muster trackt und analysiert,_bmad/sw/skills/motivjaeger/SKILL.md
|
||||
sw-stilprufer,Schreibwerkstatt,sw,workflow,bmad-sw-stilprufer,Stilprüfer,Workflow zur automatisierten Analyse von Stilkonsistenz KI-Mustern und Sprachqualität,_bmad/sw/skills/stilprufer/SKILL.md
|
||||
sw-ki-muster-erkennung,Schreibwerkstatt,sw,workflow,bmad-sw-ki-muster-erkennung,KI-Muster-Erkennung,Erkennt und markiert typische KI-generierte Formulierungen und schlägt menschlichere Alternativen vor,_bmad/sw/skills/ki-muster-erkennung/SKILL.md
|
||||
sw-kapitel-export,Schreibwerkstatt,sw,workflow,bmad-sw-kapitel-export,Kapitel-Export,Exportiert fertige Kapitel als EPUB DOCX oder Markdown mit korrekter Formatierung,_bmad/sw/skills/kapitel-export/SKILL.md
|
||||
|
4
skills/sw-setup/assets/module.yaml
Normal file
4
skills/sw-setup/assets/module.yaml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
code: "sw"
|
||||
name: "Schreibwerkstatt"
|
||||
version: "0.1.0"
|
||||
description: "KI-gestützte Roman-Entwicklung mit spezialisierten Agenten"
|
||||
40
skills/sw-setup/scripts/merge-config.py
Normal file
40
skills/sw-setup/scripts/merge-config.py
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
#!/usr/bin/env python3
|
||||
"""
|
||||
Schreibwerkstatt — Config Merger
|
||||
Mergt die Modul-Konfiguration in die BMAD _config/config.yaml
|
||||
"""
|
||||
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
def merge_config():
|
||||
"""Mergt Schreibwerkstatt-Config in die BMAD-Konfiguration."""
|
||||
project_root = Path.cwd()
|
||||
config_file = project_root / "_config" / "config.yaml"
|
||||
module_config = Path(__file__).parent.parent / "assets" / "module.yaml"
|
||||
|
||||
if not config_file.exists():
|
||||
print("Keine BMAD _config/config.yaml gefunden — überspringe Merge")
|
||||
return
|
||||
|
||||
if not module_config.exists():
|
||||
print("Keine module.yaml gefunden")
|
||||
sys.exit(1)
|
||||
|
||||
config_content = config_file.read_text(encoding="utf-8")
|
||||
module_content = module_config.read_text(encoding="utf-8")
|
||||
|
||||
# Prüfe ob Schreibwerkstatt bereits konfiguriert ist
|
||||
if "schreibwerkstatt" in config_content.lower() or "code: sw" in config_content:
|
||||
print("Schreibwerkstatt bereits in Konfiguration vorhanden")
|
||||
return
|
||||
|
||||
# Append module config
|
||||
separator = "\n\n# === Schreibwerkstatt Module ===\n"
|
||||
config_content += separator + module_content
|
||||
|
||||
config_file.write_text(config_content, encoding="utf-8")
|
||||
print("Schreibwerkstatt-Konfiguration gemergt")
|
||||
|
||||
if __name__ == "__main__":
|
||||
merge_config()
|
||||
59
skills/sw-setup/scripts/merge-help-csv.py
Normal file
59
skills/sw-setup/scripts/merge-help-csv.py
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
#!/usr/bin/env python3
|
||||
"""
|
||||
Schreibwerkstatt — Help CSV Merger
|
||||
Mergt die module-help.csv in die BMAD help.csv
|
||||
"""
|
||||
|
||||
import csv
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
def merge_help():
|
||||
"""Mergt Schreibwerkstatt-Hilfe in die BMAD help.csv."""
|
||||
project_root = Path.cwd()
|
||||
bmad_help = project_root / "_config" / "help.csv"
|
||||
module_help = Path(__file__).parent.parent / "assets" / "module-help.csv"
|
||||
|
||||
if not module_help.exists():
|
||||
print("Keine module-help.csv gefunden")
|
||||
sys.exit(1)
|
||||
|
||||
# Lese Modul-Einträge
|
||||
with open(module_help, "r", encoding="utf-8") as f:
|
||||
reader = csv.reader(f)
|
||||
header = next(reader)
|
||||
module_rows = list(reader)
|
||||
|
||||
if not bmad_help.exists():
|
||||
# Keine BMAD help.csv — erstelle neue
|
||||
bmad_help.parent.mkdir(parents=True, exist_ok=True)
|
||||
with open(bmad_help, "w", encoding="utf-8", newline="") as f:
|
||||
writer = csv.writer(f)
|
||||
writer.writerow(header)
|
||||
writer.writerows(module_rows)
|
||||
print(f"Help CSV erstellt mit {len(module_rows)} Einträgen")
|
||||
return
|
||||
|
||||
# Lese bestehende Einträge
|
||||
with open(bmad_help, "r", encoding="utf-8") as f:
|
||||
reader = csv.reader(f)
|
||||
existing_header = next(reader)
|
||||
existing_rows = list(reader)
|
||||
|
||||
# Prüfe auf Duplikate (nach canonicalId)
|
||||
existing_ids = {row[0] for row in existing_rows if row}
|
||||
new_rows = [row for row in module_rows if row and row[0] not in existing_ids]
|
||||
|
||||
if not new_rows:
|
||||
print("Alle Schreibwerkstatt-Einträge bereits vorhanden")
|
||||
return
|
||||
|
||||
# Append neue Einträge
|
||||
with open(bmad_help, "a", encoding="utf-8", newline="") as f:
|
||||
writer = csv.writer(f)
|
||||
writer.writerows(new_rows)
|
||||
|
||||
print(f"{len(new_rows)} neue Einträge hinzugefügt")
|
||||
|
||||
if __name__ == "__main__":
|
||||
merge_help()
|
||||
Loading…
Add table
Add a link
Reference in a new issue