Doku: ManaWebShell bewusst behalten (Hybrid-Scaffold für neue Apps)

CLAUDE.md war veraltet (nannte nur ManaAuthUI). Aktualisiert auf alle
drei Products (ManaAuthUI, ManaWebShell, ManaLLMUI) + dokumentiert die
Entscheidung (Till, 2026-05-25), ManaWebShell trotz 0 Konsumenten zu
behalten: Baustein zum schnellen Hybrid-Start neuer Apps (Web-App in
nativer Schale), bevor sie schrittweise nativ werden — der Weg von
zitare + seepuls. Inkl. Bootstrap-Hinweis + Entfern-Rezept.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Till JS 2026-05-25 23:16:35 +02:00
parent 3aa90762cc
commit 4b7c605a9c

View file

@ -8,15 +8,42 @@ Guidance für Claude Code in diesem Repo.
## Was dieses Repo ist
Swift-Package mit native UI-Komponenten für alle nativen
mana-e.V.-Apps. Heute genau ein Library-Product:
mana-e.V.-Apps. Drei Library-Products:
- **ManaAuthUI** — vollständige Auth-Reise als SwiftUI-Views:
Login, Sign-Up, Email-Verifikation, Passwort-Reset,
Account-Management. Konsumiert `ManaCore` (für API-Calls) und
`ManaTokens` (für Vereins-Designwerte).
`ManaTokens` (für Vereins-Designwerte). Breit konsumiert (memoro,
seepuls, mukke, herbatrium, …).
- **ManaWebShell** — dünne `WKWebView`-Hülle (`WebShellView` +
`WebShellConfig` + `WebShellScripts`) zum Anzeigen einer Web-App in
einer nativen Schale. **Siehe Retention-Hinweis unten.**
- **ManaLLMUI** — Settings-UI für lokale LLMs (konsumiert `ManaLLM`).
Wird konsumiert von `cards-native`, `manaspur-native`, `memoro-native`,
geplant `nutriphi-native` und weiteren.
## ManaWebShell — bewusst behalten, aktuell ohne Konsument
**Stand 2026-05-25: ManaWebShell hat null Konsumenten.** Die beiden
Hybrid-Apps wurden voll nativ (zitare η-0..η-9, seepuls σ-7); mukkes
toter Dependency-Eintrag wurde entfernt.
**Wir behalten das Paket trotzdem** — Entscheidung Till, 2026-05-25.
Begründung: Es ist der naheliegende Baustein, um eine **neue App
schnell als Hybrid zu starten** (Web-App in nativer Schale + Widget/
Share/Universal-Links), bevor sie — wenn sie sich bewährt — schrittweise
nativ wird. Genau diesen Weg sind zitare und seepuls gegangen. Das
Paket ist getestet (`ManaWebShellTests`), pure SwiftUI/WKWebView, ohne
Laufzeitkosten solange es niemand importiert.
**Wenn du eine neue App schnell bootstrappen willst:** `ManaWebShell`
als Dependency ziehen, `WebShellView(target:config:)` in einen Tab,
`WebShellConfig` mit `allowedHosts` + `userScripts` (z.B.
`preferDarkScheme`, `hideElements`) konfigurieren. Vorbild-Pattern (vor
der De-Hybridisierung): `seepuls-native` Git-History vor σ-7 bzw.
`zitare-native` vor η-0.
**Beim Entfernen** (falls je beschlossen): Library-Target +
`ManaWebShellTests` aus `Package.swift`, dann prüfen dass `swift build`
sauber bleibt.
## Status
@ -55,16 +82,20 @@ mana-swift-ui/
├── CHANGELOG.md
├── CLAUDE.md dieses File
├── Sources/
│ └── ManaAuthUI/
│ ├── Brand/ ManaBrandConfig (App-injiziert)
│ ├── Components/ ManaAuthScaffold, ManaTextField, ...
│ ├── Login/ ManaLoginView + ViewModel
│ ├── Register/ ManaSignUpView + ViewModel
│ ├── Verify/ ManaEmailVerifyGateView
│ ├── Reset/ ManaForgotPasswordView, ManaResetPasswordView
│ └── Account/ ChangeEmail/ChangePassword/DeleteAccount
│ ├── ManaAuthUI/
│ │ ├── Brand/ ManaBrandConfig (App-injiziert)
│ │ ├── Components/ ManaAuthScaffold, ManaTextField, ...
│ │ ├── Login/ ManaLoginView + ViewModel
│ │ ├── Register/ ManaSignUpView + ViewModel
│ │ ├── Verify/ ManaEmailVerifyGateView
│ │ ├── Reset/ ManaForgotPasswordView, ManaResetPasswordView
│ │ └── Account/ ChangeEmail/ChangePassword/DeleteAccount
│ ├── ManaWebShell/ WebShellView + WebShellConfig + WebShellScripts
│ │ (Hybrid-Scaffold, aktuell ohne Konsument)
│ └── ManaLLMUI/ Lokal-LLM-Settings-UI
└── Tests/
└── ManaAuthUITests/
├── ManaAuthUITests/
└── ManaWebShellTests/
```
## Konventionen