diff --git a/docs/compliance-implementation.md b/docs/compliance-implementation.md
index bd6a813..482c5d1 100644
--- a/docs/compliance-implementation.md
+++ b/docs/compliance-implementation.md
@@ -3,12 +3,51 @@
**Erstellt:** 2026-05-09
**Zuletzt aktualisiert:** 2026-05-10
**Audit-Basis:** `docs/compliance-audit.md`
-**App-Version nach Umsetzung:** 0.8.68
+**App-Version nach Umsetzung:** 0.8.69
---
## Freigegebene Pakete und Umsetzungsstatus
+### P-01 – Rechtstexte ⚠️ (technischer Teil umgesetzt; juristische Inhalte offen)
+
+**Status:** Technisch teilweise umgesetzt (2026-05-10, Version 0.8.69)
+
+**Betroffene Dateien:**
+- `frontend/src/pages/LegalPage.jsx` (neu) — Platzhalter-Komponente für alle vier Seiten
+- `frontend/src/App.jsx` — 4 neue öffentliche Routen
+- `frontend/src/pages/LoginPage.jsx` — Rechtstext-Links im Card-Footer
+- `frontend/src/components/DesktopSidebar.jsx` — Rechtstext-Links im Sidebar-Footer
+
+**Technische Änderung:**
+Vier öffentliche Routen angelegt, kein Auth erforderlich, kein Redirect für nicht eingeloggte Nutzer:
+- `/impressum` → ``
+- `/datenschutz` → ``
+- `/nutzungsbedingungen` → ``
+- `/medienrichtlinie` → ``
+
+Jede Seite enthält:
+- Deutlich sichtbaren Platzhalterhinweis: „MUSTER / PLATZHALTER – Inhalt wird vor Produktivbetrieb juristisch geprüft und durch den Betreiber ergänzt."
+- Strukturierte Pflichtfelder je Rechtstext (Betreiber, Rechtsgrundlagen, Betroffenenrechte etc.)
+- Querlinks zu den anderen drei Rechtstextseiten
+
+Links zu allen vier Seiten sind in der Login-/Registrierungsseite (Card-Footer) und im Desktop-Sidebar-Footer sichtbar ohne Anmeldung erreichbar.
+
+**Nicht umgesetzt (außerhalb Freigabe):**
+Juristische Texte, inhaltliche Überprüfung, Admin-konfigurierbare Inhalte, Einwilligungs-Checkboxen.
+
+**KRIT-01 Blocking-Status:**
+Der Blocker KRIT-01 bleibt **offen** bis juristisch geprüfte Texte durch den Betreiber eingepflegt sind. Die technische Voraussetzung (Routen und Seitenstruktur) ist erfüllt.
+
+**Tests:** 5 Playwright-Tests, alle grün:
+- Impressum ohne Auth erreichbar + Platzhalterhinweis sichtbar + Reload OK
+- Datenschutz ohne Auth erreichbar + Platzhalterhinweis sichtbar + Reload OK
+- Nutzungsbedingungen ohne Auth erreichbar + Platzhalterhinweis sichtbar + Reload OK
+- Medienrichtlinie ohne Auth erreichbar + Platzhalterhinweis sichtbar + Reload OK
+- Login-Seite enthält alle vier Rechtstext-Links
+
+---
+
### P-03 – Papierkorb-Retention-Job aktivieren ✅
**Status:** Umgesetzt
@@ -202,18 +241,22 @@ allow_headers=["Content-Type", "X-Auth-Token", "X-Active-Club-Id"],
---
-## Test-Zusammenfassung (Stand 0.8.68)
+## Test-Zusammenfassung (Stand 0.8.69)
```
tests/test_auth_password_reset_minlength.py 7 passed (neu, P-05b)
tests/test_media_assets_copyright_promotion.py 7 passed (gehärtet, P-04)
tests/test_security_release.py 9 passed (inkl. 2 P-07-Tests)
Weitere bestehende Tests: 81 passed, 6 skipped
-Gesamt: 104 passed, 6 skipped, 1 failed
+Gesamt (Backend): 104 passed, 6 skipped, 1 failed
Fehlgeschlagener Test: test_list_media_assets_invalid_lifecycle_400
→ Pre-existing: benötigt laufenden PostgreSQL-Container (Hostname "postgres")
→ Bestand bereits vor allen Compliance-Änderungen (verifiziert per git stash)
+
+Playwright E2E (dev-smoke-test.spec.js): 14 passed (inkl. 5 neue P-01-Tests)
+→ P-01: 4× Route ohne Auth + Platzhalterhinweis + Reload, 1× Login-Links
+→ P-12: sessionStorage-Bereinigung (grün)
```
---
@@ -248,7 +291,7 @@ Fehlgeschlagener Test: test_list_media_assets_invalid_lifecycle_400
## Re-Audit-Empfehlung
-Operativ nach Deployment 0.8.68 prüfen:
+Operativ nach Deployment 0.8.69 prüfen:
1. **P-03/P-03b**: `docker logs shinkan-retention-cron` — Job läuft täglich 03:00 Uhr; Retention-Zeiten: 30 → 30 Tage
2. **P-04**: Manuell: PATCH privates Medium auf `official` ohne `copyright_notice` → muss 400 liefern
diff --git a/docs/compliance-package-register.md b/docs/compliance-package-register.md
index e67e29f..2be46c4 100644
--- a/docs/compliance-package-register.md
+++ b/docs/compliance-package-register.md
@@ -3,7 +3,7 @@
**Typ:** Kanonisches Referenzdokument
**Erstellt:** 2026-05-10
**Basisdokument:** `docs/compliance-audit.md` (Initial-Audit 2026-05-09, App-Version 0.8.65)
-**Letzte Aktualisierung:** 2026-05-10 (App-Version 0.8.68)
+**Letzte Aktualisierung:** 2026-05-10 (App-Version 0.8.69)
---
@@ -31,10 +31,10 @@
| **Kanonischer Titel** | Rechtstexte (Impressum, Datenschutzerklärung, AGB, Medienrichtlinie) |
| **Findings** | KRIT-01 |
| **Etappe** | 1 |
-| **Status** | ❌ open |
-| **Letzter Stand** | Nicht umgesetzt. Technische Routen fehlen. Inhalt durch Rechtsanwalt erforderlich. |
-| **Verweise** | `docs/compliance-audit.md` §14.2, §17, §19.1 |
-| **Hinweise** | Keine Nummerierungsabweichung in nachgelagerten Dokumenten festgestellt. |
+| **Status** | ⚠️ partially implemented |
+| **Letzter Stand** | Technischer Teil umgesetzt (2026-05-10, Version 0.8.69): Routen `/impressum`, `/datenschutz`, `/nutzungsbedingungen`, `/medienrichtlinie` öffentlich erreichbar ohne Auth. Platzhalterseiten mit strukturierten Pflichtfeldern und sichtbarem Muster-Hinweis. Links in LoginPage und DesktopSidebar. **Juristisch geprüfte Inhalte fehlen noch — Betreiber + Rechtsanwalt erforderlich. KRIT-01 bleibt offen.** |
+| **Verweise** | `docs/compliance-audit.md` §14.2, §17, §19.1; `docs/compliance-implementation.md` §P-01; `frontend/src/pages/LegalPage.jsx` |
+| **Hinweise** | Keine Nummerierungsabweichung festgestellt. Scope Drift ausgeschlossen: Keine juristischen Texte, keine Einwilligungs-Checkboxen, keine Admin-Konfiguration. |
---
@@ -392,7 +392,7 @@
| ID | Kanonischer Titel | Etappe | Findings | Status |
|----|------------------|--------|----------|--------|
-| P-01 | Rechtstexte | 1 | KRIT-01 | ❌ open |
+| P-01 | Rechtstexte | 1 | KRIT-01 | ⚠️ partially implemented |
| P-02 | Self-Service-Kontolöschung + Datenexport | 1 | KRIT-02, KRIT-05 | ❌ open |
| P-03 | Papierkorb-Retention-Job aktivieren | 1 | KRIT-07 | ✅ implemented |
| P-03b | _Nacharbeit:_ Retention-Zeiten mit Löschkonzept abgleichen | — | — | ✅ implemented |
@@ -423,9 +423,10 @@
## Fortschritt
-**Implementiert:** P-03, P-03b, P-04, P-05, P-05b, P-07, P-12, P-23, P-24 — 9 Pakete (inkl. 2 Nacharbeiten)
-**Offen:** P-01, P-02, P-06, P-08, P-09, P-10, P-11, P-13, P-14, P-15, P-16, P-17, P-18, P-19, P-20, P-21, P-22 — 17 Pakete
-**App-Version bei letzter Aktualisierung:** 0.8.68
+**Implementiert (vollständig):** P-03, P-03b, P-04, P-05, P-05b, P-07, P-12, P-23, P-24 — 9 Pakete (inkl. 2 Nacharbeiten)
+**Teilweise implementiert:** P-01 (technischer Teil; juristische Inhalte offen) — 1 Paket
+**Offen:** P-02, P-06, P-08, P-09, P-10, P-11, P-13, P-14, P-15, P-16, P-17, P-18, P-19, P-20, P-21, P-22 — 16 Pakete
+**App-Version bei letzter Aktualisierung:** 0.8.69
**Letztes Umsetzungsdatum:** 2026-05-10
---
diff --git a/docs/compliance-roadmap.md b/docs/compliance-roadmap.md
index fd9f0c8..06bbc96 100644
--- a/docs/compliance-roadmap.md
+++ b/docs/compliance-roadmap.md
@@ -2,7 +2,7 @@
**Typ:** Lebendes Steuerungsdokument
**Erstellt:** 2026-05-10
-**App-Version:** 0.8.68
+**App-Version:** 0.8.69
**Zuletzt aktualisiert:** 2026-05-10
---
@@ -29,9 +29,15 @@ Diese Roadmap ist nach jedem Re-Audit zu aktualisieren. Abweichungen von der bis
## 2. Aktueller Stand (2026-05-10)
-### App-Version: 0.8.68
+### App-Version: 0.8.69
-### Geschlossene Pakete
+### Teilweise umgesetzte Pakete
+
+| ID | Titel | Version | Offen |
+|----|-------|---------|-------|
+| P-01 | Rechtstexte | 0.8.69 | Juristische Inhalte — Betreiber + Rechtsanwalt |
+
+### Vollständig geschlossene Pakete
| ID | Titel | Version |
|----|-------|---------|
@@ -45,11 +51,12 @@ Diese Roadmap ist nach jedem Re-Audit zu aktualisieren. Abweichungen von der bis
| P-23 | LoginPage: minLength angleichen + Versionsstring entfernen | 0.8.66 |
| P-24 | CORS einschränken (Methoden + Header) | 0.8.66 |
-**Abgeschlossene Pakete:** 7 Hauptpakete + 2 Nacharbeiten = 9 Umsetzungseinheiten
+**Vollständig abgeschlossen:** 7 Hauptpakete + 2 Nacharbeiten = 9 Umsetzungseinheiten
+**Teilweise umgesetzt (technisch):** P-01
-### Offene Pakete (17)
+### Offene Pakete (16)
-P-01, P-02, P-06, P-08, P-09, P-10, P-11, P-13, P-14, P-15, P-16, P-17, P-18, P-19, P-20, P-21, P-22
+P-02, P-06, P-08, P-09, P-10, P-11, P-13, P-14, P-15, P-16, P-17, P-18, P-19, P-20, P-21, P-22
### Gesamtstatus
@@ -74,8 +81,9 @@ Die folgenden Pakete sind vor der Freigabe für allgemeine öffentliche Registri
### Blocker 1 — P-01: Rechtstexte
**Finding:** KRIT-01 (Ordnungswidrigkeit, § 5 DDG)
-**Warum zwingend:** Eine öffentlich erreichbare App ohne Impressum ist seit dem ersten Tag der öffentlichen Zugänglichkeit bußgeldbewehrt. Auch eine Beta-/Invite-Only-Phase ohne Impressum trägt dieses Risiko, sobald die URL öffentlich bekannt ist.
-**Abhängigkeit:** Technische Seiten können sofort angelegt werden (Platzhalter). Inhalt erfordert Rechtsanwalt.
+**Technischer Stand:** ⚠️ Routen und Platzhalterseiten vorhanden (Version 0.8.69). Juristische Inhalte fehlen noch.
+**Warum noch offen:** Impressum, Datenschutzerklärung und AGB ohne geprüfte Inhalte genügen der gesetzlichen Pflicht nicht. Die Platzhalterseiten machen die Lücke sichtbar, schließen sie aber nicht.
+**Nächster Schritt:** Rechtsanwalt beauftragt werden → Inhalte durch Betreiber ergänzen → Platzhaltermarkierung entfernen.
### Blocker 2 — P-06: Upload-Einwilligungsdialog
@@ -205,21 +213,20 @@ Erst wenn diese Fragen beantwortet und als Spec dokumentiert sind, wird P-02 in
## 6. Nächste empfohlene Freigabe
-**Empfehlung: P-01 allein (technischer Teil).**
+**P-01 technisch umgesetzt (Version 0.8.69).** Juristische Inhalte bleiben offen.
-> „Freigabe zur Umsetzung P-01: Rechtstexte technisch anlegen"
+Die nächste technische Freigabe sollte **Etappe B** umfassen — beginnend mit dem kleinsten Paket:
-**Begründung:**
-- P-12 (Etappe A) ist abgeschlossen — kein weiteres Sofortpaket offen
-- P-01 ist das kleinste verbleibende Pflichtpaket mit technischem Umsetzungsanteil
-- Technische Seiten (Routen `/impressum`, `/datenschutz`, `/nutzungsbedingungen`, Platzhalter-Inhalte) sind von der juristischen Ausarbeitung unabhängig
-- Schließt die technische Grundvoraussetzung für Rechtstexte; der juristische Inhalt folgt separat
-- Keine Abhängigkeiten zu anderen offenen Paketen
-- Aufwand: 2–4 Stunden (Technik), danach Rechtsanwalt für Inhalte
+> „Freigabe zur Umsetzung P-06: Upload-Einwilligungsdialog"
-**Nicht enthalten in dieser Freigabe:** Juristisch geprüfte Texte für Impressum, Datenschutzerklärung, AGB. Diese bleiben als separate Betreiber-Aufgabe.
+oder als Paket:
-**Nach dieser Freigabe:** Mini-Re-Audit P-01, dann Freigabe für Etappe B (P-06, P-11, P-13) als Paket oder einzeln.
+> „Freigabe zur Umsetzung Etappe B: P-06, P-11, P-13"
+
+**Parallel dazu Betreiber-Aufgabe:**
+Rechtsanwalt für die Ausarbeitung der Inhalte von P-01 beauftragen — dies ist eine Betreiber-Aufgabe, keine weitere technische Freigabe.
+
+**Nach P-01 vollständig (Inhalte eingepflegt):** Gate 1 rückt näher — verbleibende Blocker: P-06, P-02 (Spez.), P-11, P-13, P-08 (Betreiber).
---
@@ -231,7 +238,7 @@ Folgende Bedingungen müssen **alle** erfüllt sein:
| Bedingung | Paket | Typ |
|-----------|-------|-----|
-| Impressum und Datenschutzerklärung mit juristisch geprüftem Inhalt | P-01 | Code + Rechtsanwalt |
+| Impressum und Datenschutzerklärung mit juristisch geprüftem Inhalt | P-01 | ⚠️ Routen vorhanden — Inhalte durch Rechtsanwalt erforderlich |
| Upload-Einwilligungsdialog aktiv | P-06 | Code |
| DSGVO-Löschprozess spezifiziert (Spec akzeptiert, auch wenn nicht vollständig implementiert) | P-02 | Spezifikation |
| Legal-Hold-Status vorhanden | P-11 | Code |
@@ -333,8 +340,9 @@ Diese Punkte liegen außerhalb des Code-Scopes und erfordern organisatorische Ma
| Freigabe | Formulierung | Status |
|----------|-------------|--------|
| ~~P-12 allein~~ | ~~„Freigabe zur Umsetzung P-12: sessionStorage bei Logout bereinigen"~~ | ✅ historisch abgeschlossen (Version 0.8.68) |
-| **P-01 allein (empfohlen)** | **„Freigabe zur Umsetzung P-01: Rechtstexte technisch anlegen"** | ⬅ nächste empfohlene Freigabe |
-| Etappe B (nach P-01) | „Freigabe zur Umsetzung Etappe B: P-06, P-11, P-13" | offen |
+| ~~P-01 technisch~~ | ~~„Freigabe zur Umsetzung P-01: Rechtstexte technisch anlegen"~~ | ✅ historisch abgeschlossen (Version 0.8.69) |
+| **P-06 (empfohlen)** | **„Freigabe zur Umsetzung P-06: Upload-Einwilligungsdialog"** | ⬅ nächste empfohlene Freigabe |
+| Etappe B komplett | „Freigabe zur Umsetzung Etappe B: P-06, P-11, P-13" | offen |
| P-02 Spezifikation | „Freigabe zur Spezifikation P-02: DSGVO-Self-Service-Prozess" | offen |
---