chore(docs): füge ADRs 0025–0027 und Wizard-DSL-Referenz hinzu, aktualisiere Roadmap und ADR-Index

Signed-off-by: StefanMoCoAt <stefan.mo.co@gmail.com>
This commit is contained in:
2026-04-21 16:21:19 +02:00
parent 0ab1807235
commit ec124e9acd
7 changed files with 281 additions and 1 deletions
@@ -0,0 +1,30 @@
---
type: ADR
status: PROPOSED
owner: Lead Architect
date: 2026-04-21
---
# ADR-0025 — Wizard-Orchestrator (State-Machine, DSL, Guards, Effects)
## Kontext
- Aktuelle Wizard-Implementierungen sind linear (`next/previous`) und hart verdrahtet in ViewModels.
- Anforderungen: Kontextabhängige Pfade, OfflineFirst (Autosave/Resume), testbare Regeln, einheitliche UX.
## Entscheidung
- Einführung eines generischen Orchestrators mit deklarativem Flow:
- `StepId` (typsicher je Flow), `WizardContext`, `WizardState`, `Guard`, `Transition`, `StepEffects`.
- KotlinDSL: `flow { step { whenGuard(id) go target; otherwise go … } }`.
- SideEffects an Hooks (`onEnter/onLeave/onComplete`) für Prefetch, Autosave, Finalisierung.
## Konsequenzen
- Vorteile: zentrale, testbare Navigationslogik; konsistente DraftPolicy; bessere Übersicht/Erweiterbarkeit.
- Risiken: Initialer Overhead, Lernkurve, GuardSprawl; mitigiert durch README, DevTools, Linting/Namenskonventionen.
## Umsetzung
- Modul `frontend/core/wizard` (runtime, dsl, devtools, draft) und `WizardScaffold` (Breadcrumb, Footer, Hotkeys).
- StranglerMigration beginnend mit EventFlow; FeatureFlag `WizardRuntimeEnabled`.
## Verweise
- RoadmapAbschnitt: `docs/01_Architecture/MASTER_ROADMAP.md#3-initiative-wizard-orchestrator--offline-drafts-q2q3-2026`
- Reference: `docs/01_Architecture/Reference/Wizard-DSL-README.md`