Add complete Abenteuer-Schmiede BMAD module

- 7 specialized agents (Spielleiter, Weltenbauer, NSC-Schmied,
  Begegnungsdesigner, Regelwächter, Handout-Künstler, Partymodus)
- Kompendium-System (Single Source of Truth)
- DSA5-native with Proben, QS, Kampfwerte
- Interactive Partymodus for playtesting
- Balance analysis and rule checking
- Templates for NSCs, locations, scenes, encounters, handouts
- Export (Markdown, Print, VTT)
This commit is contained in:
Kenearos 2026-04-12 18:06:34 +02:00
parent 8cadb065de
commit 9f78d0dd7f
39 changed files with 2771 additions and 1 deletions

115
skills/as-setup/SKILL.md Normal file
View file

@ -0,0 +1,115 @@
---
skillId: bmad-as-setup
skillName: Abenteuer-Schmiede Setup
skillType: workflow
description: |
Setup-Workflow für ein neues Abenteuer-Projekt. Erstellt die Projektstruktur,
definiert den Rahmen und bereitet alles für die Entwicklung vor.
---
# Abenteuer-Schmiede Setup
Dieser Workflow richtet ein neues Abenteuer-Projekt ein.
## Ablauf
### Schritt 1: Projektname und Grundeinstellungen
Frage den Nutzer nach:
1. **Abenteuer-Name**: Wie soll das Abenteuer heißen?
2. **Region**: Wo in Aventurien spielt es?
3. **Epoche**: Wann spielt es? (z.B. 1040 BF)
4. **Abenteuer-Typ**: Ermittlung, Intrige, Reise, Dungeon, etc.
5. **Spieleranzahl**: Für wie viele Helden?
6. **Erfahrungsstufe**: Wie erfahren sind die Helden?
7. **Geschätzte Dauer**: One-Shot bis Kampagne?
8. **Sprache**: Deutsch oder English?
### Schritt 2: Rahmen erstellen
Erstelle die Rahmen-Dateien:
#### `rahmen/setting.md`
```markdown
# Setting: [Region]
## Geographie
<!-- Landschaft, Klima, wichtige Orte -->
## Kultur
<!-- Vorherrschende Kulturen, Sitten, Götterverehrung -->
## Politik
<!-- Herrschaftsstrukturen, Konflikte, Allianzen -->
## Aktuelles Zeitgeschehen
<!-- Was passiert gerade in dieser Region? (Epoche beachten) -->
## Stimmung
<!-- Grundstimmung: düster, abenteuerlich, politisch, mystisch -->
## Reisehinweise
<!-- Typische Gefahren, Entfernungen, Transportmittel -->
```
#### `rahmen/stil.md`
```markdown
# Erzählstil
## Grundeinstellungen
- **Perspektive**: Zweite Person Plural ("Ihr seht...")
- **Sprache**: [Deutsch/English]
- **Ton**: [Episch/Gritty/Humorvoll/Düster/etc.]
## Atmosphäre
<!-- Wie soll sich das Abenteuer anfühlen? Referenz-Werke? -->
## Vorlesetext-Regeln
- Maximal 5-7 Sätze
- Mindestens 3 Sinne ansprechen
- Immer ein interaktives Detail
- Nie die Reaktion der Helden vorwegnehmen
## Verbotene Klischees
<!-- Was wollen wir NICHT? Generisches Fantasy? Tolkien-Kopien? -->
```
#### `rahmen/regeln.md`
```markdown
# Regelwerk-Einstellungen
## Basis
- **Regelwerk**: DSA5
- **Erfahrungsstufe**: [AP-Bereich]
- **Optionalregeln**: [Welche verwenden?]
## Hausregeln
<!-- Abweichungen vom Standardregelwerk -->
## Proben-Philosophie
- Kritische Proben (Story-relevant): Eher leichter (0 bis +2)
- Bonus-Proben (Extra-Info): Normal bis schwer (0 bis -3)
- Heldentaten: Schwer bis meisterlich (-3 bis -7)
## Kampf-Einstellungen
- **Trefferzonen**: [Ja/Nein]
- **Wundschwellen**: [Ja/Nein]
- **Vereinfachter Kampf**: [Für Nebenbegegnungen?]
## Magie-Einstellungen
- **Verbreitung**: [Wie häufig ist Magie in der Region?]
- **Antimagie**: [Gibt es Antimagie-Elemente?]
```
### Schritt 3: Zustand initialisieren
Erstelle `zustand/aktuell.md` mit den Projektdaten.
### Schritt 4: Bestätigung
Zeige dem Nutzer die erstellte Struktur und frage:
"Alles korrekt? Sollen wir mit dem Abenteuer-Konzept beim Spielleiter starten?"
<HALT>
Warte auf Nutzereingabe.
</HALT>

View file

@ -0,0 +1,11 @@
canonicalId,moduleName,moduleCode,skillType,skillId,skillName,description,filePath
as-setup,Abenteuer-Schmiede,as,workflow,bmad-as-setup,Setup,Neues Abenteuer-Projekt einrichten und Rahmen definieren,_bmad/as/skills/as-setup/SKILL.md
as-spielleiter,Abenteuer-Schmiede,as,agent,bmad-as-spielleiter,Spielleiter,Abenteuerstruktur Akte Szenen Spannungsbögen und Hooks,_bmad/as/skills/spielleiter/SKILL.md
as-weltenbauer,Abenteuer-Schmiede,as,agent,bmad-as-weltenbauer,Weltenbauer,Schauplätze Regionen Atmosphäre und kultureller Kontext,_bmad/as/skills/weltenbauer/SKILL.md
as-nsc-schmied,Abenteuer-Schmiede,as,agent,bmad-as-nsc-schmied,NSC-Schmied,NSC-Erstellung mit DSA5-Werten Persönlichkeit und Motivation,_bmad/as/skills/nsc-schmied/SKILL.md
as-begegnungsdesigner,Abenteuer-Schmiede,as,agent,bmad-as-begegnungsdesigner,Begegnungsdesigner,Kampf- Sozial- und Erkundungsbegegnungen mit DSA5-Mechaniken,_bmad/as/skills/begegnungsdesigner/SKILL.md
as-regelwaechter,Abenteuer-Schmiede,as,agent,bmad-as-regelwaechter,Regelwächter,DSA5-Regelkonsistenz Proben Talente Zauber und Werte-Validierung,_bmad/as/skills/regelwaechter/SKILL.md
as-handout-kuenstler,Abenteuer-Schmiede,as,agent,bmad-as-handout-kuenstler,Handout-Künstler,Spieler-Handouts Briefe Rätsel Karten und In-World-Texte,_bmad/as/skills/handout-kuenstler/SKILL.md
as-partymodus,Abenteuer-Schmiede,as,agent,bmad-as-partymodus,Partymodus,Interaktiver Spieltest — spiele das Abenteuer durch!,_bmad/as/skills/partymodus/SKILL.md
as-szenen-balancer,Abenteuer-Schmiede,as,workflow,bmad-as-szenen-balancer,Szenen-Balancer,Pacing- und Balance-Analyse des gesamten Abenteuers,_bmad/as/skills/szenen-balancer/SKILL.md
as-abenteuer-export,Abenteuer-Schmiede,as,workflow,bmad-as-abenteuer-export,Abenteuer-Export,Export als Markdown Druckformat oder VTT-Format,_bmad/as/skills/abenteuer-export/SKILL.md
1 canonicalId moduleName moduleCode skillType skillId skillName description filePath
2 as-setup Abenteuer-Schmiede as workflow bmad-as-setup Setup Neues Abenteuer-Projekt einrichten und Rahmen definieren _bmad/as/skills/as-setup/SKILL.md
3 as-spielleiter Abenteuer-Schmiede as agent bmad-as-spielleiter Spielleiter Abenteuerstruktur Akte Szenen Spannungsbögen und Hooks _bmad/as/skills/spielleiter/SKILL.md
4 as-weltenbauer Abenteuer-Schmiede as agent bmad-as-weltenbauer Weltenbauer Schauplätze Regionen Atmosphäre und kultureller Kontext _bmad/as/skills/weltenbauer/SKILL.md
5 as-nsc-schmied Abenteuer-Schmiede as agent bmad-as-nsc-schmied NSC-Schmied NSC-Erstellung mit DSA5-Werten Persönlichkeit und Motivation _bmad/as/skills/nsc-schmied/SKILL.md
6 as-begegnungsdesigner Abenteuer-Schmiede as agent bmad-as-begegnungsdesigner Begegnungsdesigner Kampf- Sozial- und Erkundungsbegegnungen mit DSA5-Mechaniken _bmad/as/skills/begegnungsdesigner/SKILL.md
7 as-regelwaechter Abenteuer-Schmiede as agent bmad-as-regelwaechter Regelwächter DSA5-Regelkonsistenz Proben Talente Zauber und Werte-Validierung _bmad/as/skills/regelwaechter/SKILL.md
8 as-handout-kuenstler Abenteuer-Schmiede as agent bmad-as-handout-kuenstler Handout-Künstler Spieler-Handouts Briefe Rätsel Karten und In-World-Texte _bmad/as/skills/handout-kuenstler/SKILL.md
9 as-partymodus Abenteuer-Schmiede as agent bmad-as-partymodus Partymodus Interaktiver Spieltest — spiele das Abenteuer durch! _bmad/as/skills/partymodus/SKILL.md
10 as-szenen-balancer Abenteuer-Schmiede as workflow bmad-as-szenen-balancer Szenen-Balancer Pacing- und Balance-Analyse des gesamten Abenteuers _bmad/as/skills/szenen-balancer/SKILL.md
11 as-abenteuer-export Abenteuer-Schmiede as workflow bmad-as-abenteuer-export Abenteuer-Export Export als Markdown Druckformat oder VTT-Format _bmad/as/skills/abenteuer-export/SKILL.md

View file

@ -0,0 +1,3 @@
code: "as"
name: "Abenteuer-Schmiede"
version: "0.1.0"

View file

@ -0,0 +1,43 @@
#!/usr/bin/env python3
"""Merge Abenteuer-Schmiede config into BMAD _config/config.yaml."""
import sys
import os
def merge_config(bmad_root):
config_path = os.path.join(bmad_root, "_config", "config.yaml")
if not os.path.exists(config_path):
print(f"BMAD config not found at {config_path}")
sys.exit(1)
as_config = """
# --- Abenteuer-Schmiede Module ---
abenteuer-schmiede:
abenteuer_name: ""
setting: ""
epoche: ""
spieleranzahl: "3-4"
erfahrungsstufe: "Durchschnittlich (300-600 AP)"
abenteuer_typ: "Gemischt"
geschaetzte_dauer: "Mittel (4-6 Abende)"
sprache: "Deutsch"
"""
with open(config_path, "r") as f:
content = f.read()
if "abenteuer-schmiede:" in content:
print("Abenteuer-Schmiede config already present. Skipping.")
return
with open(config_path, "a") as f:
f.write(as_config)
print("Abenteuer-Schmiede config merged into BMAD config.")
if __name__ == "__main__":
if len(sys.argv) < 2:
print("Usage: python merge-config.py <bmad-root-path>")
sys.exit(1)
merge_config(sys.argv[1])

View file

@ -0,0 +1,52 @@
#!/usr/bin/env python3
"""Merge Abenteuer-Schmiede module-help.csv into BMAD help.csv."""
import csv
import sys
import os
def merge_help(bmad_root):
help_path = os.path.join(bmad_root, "_config", "help.csv")
module_help = os.path.join(os.path.dirname(__file__), "..", "assets", "module-help.csv")
if not os.path.exists(module_help):
print(f"Module help CSV not found: {module_help}")
sys.exit(1)
# Read module help entries
with open(module_help, "r", encoding="utf-8") as f:
reader = csv.reader(f)
header = next(reader)
new_rows = list(reader)
# Read existing BMAD help (or create new)
existing_ids = set()
existing_rows = []
if os.path.exists(help_path):
with open(help_path, "r", encoding="utf-8") as f:
reader = csv.reader(f)
existing_header = next(reader)
for row in reader:
existing_ids.add(row[0])
existing_rows.append(row)
# Merge: only add rows that don't exist yet
added = 0
for row in new_rows:
if row[0] not in existing_ids:
existing_rows.append(row)
added += 1
# Write back
with open(help_path, "w", encoding="utf-8", newline="") as f:
writer = csv.writer(f)
writer.writerow(header)
writer.writerows(existing_rows)
print(f"Merged {added} new entries into BMAD help.csv.")
if __name__ == "__main__":
if len(sys.argv) < 2:
print("Usage: python merge-help-csv.py <bmad-root-path>")
sys.exit(1)
merge_help(sys.argv[1])