197 lines
7.9 KiB
Markdown
197 lines
7.9 KiB
Markdown
# 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)
|