Phase 1: Level-Up (PF2e regelkonform) - Discussion Log
Audit trail only. Do not use as input to planning, research, or execution agents.
Decisions are captured in CONTEXT.md — this log preserves the alternatives considered.
Date: 2026-04-27
Phase: 01-level-up-pf2e-regelkonform
Areas discussed: Prereq-DSL-Scope, Free-Archetype-Regel, Wizard-Flow + DRAFT, Klassen+Spellcaster-Daten
Prereq-DSL-Scope
Frage: Welche Prereq-Patterns soll der DSL-Evaluator automatisch prüfen?
| Option |
Beschreibung |
Selected |
| Empfohlener Scope |
Skill-Rang, Feat-Besitz, Level, Klasse, Ancestry, Heritage evaluierbar; Deity, Spellcasting-Tradition, Multi-Class, Free-Text → Warnung. ~80%+ Coverage |
✓ |
| Minimal-Scope |
Nur Skill-Rang + Level + Klasse |
|
| Maximal-Scope |
Plus Attribut-Score, Spellcasting-Tradition, Deity-Kategorien |
|
Notes: Empfehlung aus .planning/research/SUMMARY.md direkt akzeptiert.
Frage: Wie soll die UI mit nicht-evaluierbaren Prereqs umgehen?
| Option |
Beschreibung |
Selected |
| Inline-Warning + Confirm |
Warn-Icon + Tooltip + Confirm-Dialog beim Wählen |
✓ |
| Nur Inline-Warning |
Warn-Icon ohne Confirm — Risiko Flüchtigkeitsfehler |
|
| Separater Tab "Manuell prüfen" |
Eigene Liste, mehr Klicks |
|
Frage: Woher kommen die Prereq-Strings, die der DSL-Evaluator parst?
| Option |
Beschreibung |
Selected |
| Bestehende Feat-Tabelle |
Feat.prerequisites: String? existiert bereits in schema.prisma |
✓ |
| Neue strukturierte Prereq-AST-Tabelle |
Vor-geparstes AST-JSON pro Feat |
|
| Hybrid: Lazy Parse + Cache |
In-Memory-Cache nach erstem Lookup |
|
Notes: Bestehendes Feld macht Migration unnötig.
Frage: Soll der Evaluator auch beim Pathbuilder-Import laufen?
| Option |
Beschreibung |
Selected |
| Nein, nur im Wizard |
Pathbuilder-Import bleibt unverändert |
|
| Ja, auch beim Import |
Existierende Talente werden validiert |
✓ |
Notes: Abweichung vom Default-Vorschlag — User wollte explizit Import-Validation. Folge-Frage zur Behandlung der Verletzung.
Frage: Was passiert beim Pathbuilder-Import bei Prereq-Verletzung?
| Option |
Beschreibung |
Selected |
| Import + Warn-Liste |
Charakter-Header zeigt Banner mit Liste |
✓ |
| Import + Inline-Markierung |
Pro Talent ein Icon, keine zentrale Liste |
|
| Block Import |
Strikt — bricht bei jeder Inkonsistenz |
|
| Keine Anzeige (lautlos) |
Nur intern geloggt |
|
Free-Archetype-Regel
Frage: Wie soll der Free-Archetype-Slot nach gewählter Dedication funktionieren?
| Option |
Beschreibung |
Selected |
| Pathbuilder-Verhalten |
Nach Dedication beliebige Archetyp-Talente (Multi-Archetype) |
✓ |
| Strikt nur gewählter Archetyp |
RAW-strikt, bricht Multi-Archetype |
|
| Hybrid mit GM-Override |
Default strikt, Toggle erlaubt mehr |
|
Notes: Spike-flagged in ROADMAP — direkt entschieden zugunsten Pathbuilder, weil Gruppe das gewohnt ist.
Frage: Wo wird der Free-Archetype-Toggle pro Charakter eingestellt?
| Option |
Beschreibung |
Selected |
| Char-Settings + Wizard-Schritt 0 |
Settings + Lese-Anzeige im Wizard |
✓ |
| Nur Char-Settings |
Schlanker, weniger transparent |
|
| Pro Level-Up neu wählbar |
Inkonsistent mit RAW (FA ist Kampagnen-Variant) |
|
Frage: Wie soll mit Free-Archetype umgegangen werden bei Pathbuilder-Import?
| Option |
Beschreibung |
Selected |
| Auto-detect aus Pathbuilder |
Toggle automatisch basiert auf Pathbuilder-JSON |
✓ |
| Manuell setzen nach Import |
Toggle bleibt inaktiv, Spieler aktiviert |
|
| Wizard fragt beim ersten Level-Up |
Einmalige Wizard-Frage |
|
Wizard-Flow + DRAFT
Frage: Wie soll der Wizard-Flow strukturiert sein?
| Option |
Beschreibung |
Selected |
| Step-by-Step Modal |
Sequenzielle Schritte, mobile-friendly |
✓ |
| Single-Page mit Akkordeons |
Alles auf einer Seite, Mobile-Scroll |
|
| Tab-basiert |
Frei wechseln, kein klarer Fortschritt |
|
Frage: Wo wird der DRAFT-State persistiert?
| Option |
Beschreibung |
Selected |
| Server-DRAFT-Session |
Neue Prisma-Tabelle LevelUpSession, Cross-Device |
✓ |
| Client-State (Zustand) |
Reload → alles weg |
|
| LocalStorage |
Resume nach Reload, kein Cross-Device |
|
Frage: Soll der Wizard eine Live-Vorschau der neuen Werte anzeigen?
| Option |
Beschreibung |
Selected |
| Live-Vorschau im Review-Schritt |
Vorher/Nachher gegenübergestellt am Ende |
✓ |
| Live-Vorschau in jedem Schritt |
Per-PATCH-Recompute, Performance-Cost |
|
| Nur nach Commit sichtbar |
Schlankste Implementierung |
|
Frage: Wer darf den Level-Up-Wizard für einen Charakter öffnen?
| Option |
Beschreibung |
Selected |
| Spieler (Owner) + GM |
Konsistent mit checkCharacterAccess |
✓ |
| Nur Spieler (Owner) |
GM kann nicht für abwesende Spieler leveln |
|
| Nur GM |
Kein selbstständiges Spieler-Leveln |
|
Frage: Was passiert mit einer offenen DRAFT-Session ohne Commit?
| Option |
Beschreibung |
Selected |
| Bleibt unbegrenzt offen |
UI bietet "fortsetzen oder verwerfen?" |
✓ |
| TTL 24h, dann auto-löschen |
Aufgeräumte DB, Risiko Datenverlust |
|
| TTL 7 Tage |
Mittelweg |
|
Klassen+Spellcaster-Daten
Frage: Woher kommen die Per-Class-Progression-Tabellen?
| Option |
Beschreibung |
Selected |
| Neue ClassProgression-Tabelle + JSON-Seed |
Konsistent mit "alle PF2e-Daten in DB" |
✓ |
| Hardcoded TS-Konstanten |
Widerspricht Projekt-Regel |
|
| Lazy aus Pathbuilder ableiten |
Nicht regelkonform für neue Stufen |
|
Frage: Welche PF2e-Klassen werden in v1 unterstützt?
| Option |
Beschreibung |
Selected |
| Alle Core- + APG-Klassen |
16 Klassen, ~95% Coverage |
✓ |
| Nur die Klassen, die eure Gruppe spielt |
Schmaler Scope |
|
| Alle Klassen aus PC1 + PC2 (Remaster) |
Mehr Klassen, mehr Seed-Aufwand |
|
Frage: Welche PF2e-Datenquelle für den Class-Progression-Seed?
| Option |
Beschreibung |
Selected |
| Foundry PF2e-System Open Data |
Aktiv gepflegt, ORC-lizenziert |
✓ |
| Manuell aus Archives of Nethys |
Volle Kontrolle, sehr aufwendig |
|
| Open5e / pf2e-data NPM-Paket |
Oft unvollständig |
|
Frage: Wie wird der Spellcaster-Repertoire-Increment-Schritt präsentiert?
| Option |
Beschreibung |
Selected |
| Eigener Wizard-Schritt |
Klar separiert von Slot-Increment |
✓ |
| Inline in Spellcaster-Schritt |
Kompakter, weniger klar |
|
| Später im Charakterbogen |
Charakter nach Commit nicht "fertig" |
|
Frage: Wie sollen Wahl-Klassenmerkmale (Doctrine, Schule, Weapon Mastery) gehandhabt werden?
| Option |
Beschreibung |
Selected |
| Wizard erkennt + zeigt Sub-Schritt |
Volle Regelkonformität, Charakter "fertig" |
✓ |
| Erst nach Commit füllen |
Spieler vergisst es vielleicht |
|
| Nur Anzeige + manuelle Notiz |
Kein strukturiertes Datenmodell |
|
Claude's Discretion
- UI-Layout-Details des Step-by-Step-Modals (Header, Footer, Progress-Indicator)
- Spaltenstruktur des Review-Schritts (Tabelle vs. zwei Spalten)
- DRAFT-API-Endpoint-Naming
- JSON-Format des Snapshot-Vorher
- Genaue deutsche Error-Messages
- Test-Granularität jenseits der Kern-Funktionen
Deferred Ideas
- Level-up-Historie-Ansicht (LVL-V2-01)
- Reverse-Level-Up (LVL-V2-02)
- Variant-Class-Features (Rogue Eldritch Trickster etc.)
- Multi-Classing (out of scope)
- Live-Recompute pro Schritt (verworfen)
- Remaster-Klassen (PC1+PC2)