presseportale/docs/STATUS-ABGLEICH-USER-PANEL.md
Kevin Adametz c8dc99c3c8 Phase 9E (Abschluss): Checkout-Flows und Plan-Kontingent statt Quota-Stub
- Checkout-Backend: me.checkout.subscription (Tarif-Abo monatlich/jährlich)
  und me.checkout.single-pm (Einzel-PM 19 € netto, pending-Kauf mit
  Webhook-Erfüllung); StripeCheckoutService als mockbarer Stripe-Wrapper;
  Stripe Tax via Cashier::calculateTaxes() (Netto-Preise, USt-ID-Abfrage)
- Slot-Logik: Kontingent aus dem Tarif (plans.press_release_quota) plus
  bezahlte Einmalkäufe; Verbrauch bei Veröffentlichung zuerst aus dem
  Plan-Zähler, danach Einlösung des ältesten Einmalkaufs (consumed +
  PM-Verknüpfung); Grandfathered = unbegrenzt (Entscheidung 12.06.2026,
  Bestandsschutz); Stub-Spalte users.press_release_quota entfernt
- billing:sync-stripe-plans legt zusätzlich das Einzel-PM-Produkt an
  (STRIPE_PRICE_SINGLE_PM); Test-Mode-Sync gelaufen
- Buchungs-Seite: Rückmeldung nach Checkout (erfolg/abbruch/Guard-Hinweis)
- Tests: PressReleaseQuotaTest auf Plan-Semantik neu geschrieben,
  CheckoutFlowTest (8 Tests), Modal-/API-Tests angepasst; Suite 510 passed
- Doku: Billing-und-Rechnungskreise (Kontingent-Tabelle, Checkout-Routen,
  Webhook-Events, Stripe-CLI-Hinweis), PHASE-9-Plan 9E , Checkliste,
  STATUS-ABGLEICH, PROGRESS

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-12 12:10:32 +00:00

23 KiB
Raw Blame History

Status-Abgleich · User Panel

Stand: 2026-06-11 (Phase 8 vollständig abgeschlossen; KI-Prüf-Pipeline Phasen 05 umgesetzt; Titelbild-/Lizenz-/Zeitzonen-Umbau vom 10./11.06. eingearbeitet. Preise & Veröffentlichungs-Flow: siehe Decision-Update Preisstruktur & Veröffentlichungs-Flow.md)

Dieses Dokument vergleicht die Konzept-Dokumente im Ordner docs/ mit dem tatsächlichen Code-Stand. Es dient als Single Source of Truth für die Entscheidung, welche Konzept-Abschnitte aktualisiert werden müssen und wo weiterhin Lücken bestehen.

Methode: Code-Inspektion aller Customer-Komponenten in resources/views/livewire/customer/, Models, Migrationen und Services gegen die Inhalte der Doku in docs/user-admin/ und docs/konzept/.

Lese-Hilfe:

  • Doku stimmt mit Code überein — kein Handlungsbedarf
  • 🔄 Doku ist überholt — Code ist schon weiter, Doku muss nachgezogen werden
  • 📝 Code ist hinter Doku — Konzept beschreibt etwas, das noch nicht gebaut ist
  • ⚠️ Inkonsistent — Doku und Code widersprechen sich
  • Nicht im Konzept — im Code da, aber nirgends dokumentiert

1. Globale Architektur des User Backends

Konzept-Aussage Quelle IST im Code Status
User/Admin getrennt, technisch gemeinsames Backend, Trennung über Rollen/Policies Admin-User.md Umgesetzt: PressReleasePolicy, Spatie-Rollen, Customer-/Admin-Routen
Navigation in „Mein Bereich · Finanzen · Konto" Admin-User.md, checkliste-user-backend.md components/layouts/app/sidebar.blade.php setzt die drei Gruppen
Topbar oben rechts mit Firmen-Kontext-Switcher Admin-User.md customer/company-switcher.blade.php + Layout-Integration
„Pressemappen" terminologisch auf „Firmen" umbenannt checkliste-user-backend.md Im UI durchgehend „Firmen" / „Meine Firmen"; Routen heißen aus Legacy-Gründen weiterhin me.press-kits.* 🔄 (Doku-Nacharbeit: Hinweis ergänzen, dass die internen Route-Namen weiterhin press-kits heißen)
Phase 1 funktional abgeschlossen checkliste-user-backend.md Z. 71 Trifft zu — alle in „Erledigt" markierten Punkte sind im Code verifizierbar

2. Customer-Pages — IST-Stand pro Page

Dashboard (customer/dashboard.blade.php)

Konzept-Aussage IST Status
Datenqualitäts-Hinweise (Profil, Rechnungsadresse, Pressekontakte, PMs ohne Firma) umgesetzt mit <x-portal.hint-card>
KPI-Reihe Pressemitteilungen umgesetzt mit <x-portal.stat-card>, Trend-Slot mit pub/prüf/entwurf
Filter-Reaktion auf Firmen-Kontext recent und companies queries respektieren selectedCompany

Pressemitteilungen-Liste (customer/press-releases/index.blade.php)

Konzept-Aussage IST Status
Status-Tabs (Alle/Veröffentlicht/Entwürfe/Prüfung/Abgelehnt/Archiv) umgesetzt als view-tabs mit Counter-Pillen
Filter ohne Firma, Status, Portal statusFilter, portalFilter, companyFilter aktiv
Filter-Presets (user_filter_presets) fehlt 📝 (in Phase 2 lt. Doku — bleibt pending)
PM-Detail Tab „Verlauf" aus press_release_status_logs als „Status & Verlauf"-Card eingebaut, nicht als eigener Tab 🔄 (Doku-Anpassung: Card statt Tab; funktional gleichwertig)
Hinweis Scheduling/Embargo in der Liste umgesetzt (Sub-Label „geplant · …" / „Embargo bis …" in der Datums-Spalte, index.blade.php Z. 505514) (Phase 8B)

Pressemitteilungs-Forms

Konzept-Aussage IST Status
Einfacher Editor mit Absätzen, fett + kursiv Flux-Editor mit `heading bold italic
Pflichtfeld company_id für Customer Validation required
Portal aus Firma abgeleitet (Customer) updatedCompanyId() setzt portal aus company->portal
subtitle-Feld seit Phase 7 da (im Konzept nicht erwähnt, aber sinnvoll)
scheduled_at, embargo_at-Felder im Form scheduled_at da (Datum via flux:date-picker + Uhrzeit via flux:time-picker, Eingabe/Anzeige in Europe/Berlin, Speicherung UTC). Embargo aus der Form-UI entfernt (11.06.) — embargo_at bleibt im Schema, wird beim Speichern auf null geführt 🔄 (bewusste Vereinfachung; Doku: Umsetzung Pressemitteilung Bearbeitung Titelbild Veroeffentlichung.md)
Titelbild pro PM ein einzelnes Cover-Bild (1280×580) oder SVG-Platzhalter; Upload-Form einklappbar, Platzhalter-Picker (Phase 8F/8G + Umbau 11.06.)
Einreichungs-Modal in allen Customer-Ansichten confirm-submit-review-Modal in Show, Create und Edit (KI-Plan Phase 0)
HTML-Sanitizer auf Save PressReleaseHtmlSanitizer (mews/purifier) (Konzept-Punkt 2/Bilder nennt KI-Check, aber keinen HTML-Sanitizer — sollte dokumentiert werden)
Boilerplate-Override pro PM seit Phase 7 als optionaler Override-Text (im Konzept nicht erwähnt)
Pressekontakt-Zuordnung Single-Select (1 pro PM, n:m beibehalten) seit Phase 7, jetzt optional; Warn-Box in der Sidebar-Card, wenn kein Kontakt gewaehlt (create/edit.blade.php) (Phase 8C; Konzept-Punkt: war ursprünglich „mehrere möglich", jetzt 1 pro PM optional)
Attachment-Manager temporär deaktiviert wegen Security-Review ⚠️ (Konzept beschreibt Anhänge, Code hat es auskommentiert)

Pressemitteilungs-Detail (Customer Show)

Konzept-Aussage IST Status
Status & Verlauf inkl. Logs umgesetzt
Zugeordnete Pressekontakte umgesetzt
Rejection-Begründung sichtbar umgesetzt
Vorschau-Link für externe Reviewer generateShareLink via Magic-Link-Token
Anzeige Subtitle / scheduled_at / embargo_at / boilerplate_override / no_export umgesetzt — Subtitle unter H1, Scheduling/Embargo als Cards im „Status & Verlauf"-Block, Boilerplate-Override als eigene Card (customer/press-releases/show.blade.php) (Phase 8A; Admin-Show analog)

Firmen-Liste (customer/press-kits/index.blade.php)

Konzept-Aussage / Mockup IST Status
Karten-Grid pro Firma mit Logo, Status, Portal, Rolle, KPIs umgesetzt auf Mockup-Niveau (.firm-card, deterministische Logo-Varianten, Status-Badge, Portal-Pills, Rolle-Pill, KPIs) (Phase 8E)
Counter-Strip (X Firmen, X aktiv, X PMs total, X Kontakte) umgesetzt (Phase 8E)
Saved-View-Tabs (Alle / Aktiv / In Anlage / Inaktiv / Mit mir geteilt) umgesetzt mit Live-Counts; „In Anlage" bewusst noch leer (Phase-2-Heuristik) (Phase 8E)
Filter-Chips (Status / Portal / Rolle / Branche) Portal + Rolle via FluxUI-Dropdown + URL-Sync umgesetzt (Phase 8E)
Seg-Toggle Karten/Liste umgesetzt (?mode=list) (Phase 8E)
Empty-States (keine Firma / Filter ohne Treffer) umgesetzt (3-Schritt-Onboarding + Reset-CTA) (Phase 8E)
Rollen-Legende (Admin / Redakteur / Beobachter) umgesetzt als panel-warm (Phase 8E)
„Firma anlegen"-CTA zeigt „Firma anlegen anfragen" → Profil (Add-Tile); Self-Service-Anlage bleibt Phase-2-Thema 🔄 (bewusst, Firma-Self-Service ist Phase 2)

Firmen-Detail (customer/press-kits/show.blade.php)

Konzept-Aussage IST Status
Tabs Übersicht / Stammdaten / Pressekontakte / PMs / Statistik / Abrechnung eine lange Seite mit Quick-Nav-Anker, keine echten Tabs 🔄 (Doku-Update: Quick-Nav statt Tabs; visuell gleichwertig)
Stammdaten inkl. Logo bearbeitbar umgesetzt
Pressekontakte verwalten umgesetzt
Eigentümer-Anzeige konsolidiert aus owner_user_id + company_user.role umgesetzt
Statistik-Tab nur Stub („In Vorbereitung") 📝 (Phase 2)
Abrechnung-Tab nur Stub 📝 (Phase 2)
Magic-Link aktiv/inaktiv-Badge pro Kontakt fehlt 📝
Anzahl PMs pro Kontakt aus press_release_contact fehlt 📝
„+ Neuer Pressekontakt" mit Magic-Link-Berechtigung-Toggle nur Basis-Form, kein Magic-Link-Toggle 📝 (gehört zu Magic-Link-Flow → Phase 2)

Settings (settings/*, customer/profile, customer/security)

Konzept-Aussage IST Status
Profil + Rechnungsadresse + Sicherheit + Newsletter + API-Tokens alles vorhanden
Magic-Link-Verlauf in Sicherheit fehlt 📝 (Phase 2)
API-Nutzungs-Log fehlt 📝 (Phase 2)
Team-Tab (Agency-Tarif) fehlt 📝 (Phase 2)

Finanzen

Zentrale Billing-Referenz: user-admin/Billing-und-Rechnungskreise.md.

Konzept-Aussage IST Status
Rechnungen mit Legacy-Archiv umgesetzt
Hybride Rechnungskreise STR-/MAN- (Decision 12.06.) umgesetzt (Phase 9D) — Nummern-Generator, MAN-Fälligkeitslauf, Grandfather-Migration, USt-Logik (VatResolver)
Tarif-Datenmodell + Cashier umgesetzt (Phase 9D) — plans, single_purchases, User ist Billable
Stripe-Checkout/Webhooks + STR-Spiegelung umgesetzt (Phase 9E) — Produkt-Sync, Webhook-Verarbeitung, Checkout-Backend, Plan-Kontingent (UI → 9F)
Buchungen & Add-ons (UI) nur Stub 📝 (mit 9F Tarif-Seite)
Zahlungsmethoden firmenscharf fehlt 📝 (Phase 2)

3. Großthemen aus dem Konzept — Status

3.1 KI-Freigabe-Workflow

Konzept-Stand: Presseportal Konzept für Relaunch.md Abschnitt 1 + §15. Umsetzungs-Doku: user-admin/Entwicklungsplan KI-Pruefung und Veroeffentlichung.md (Phasen 05 , 11.06.2026).

Punkt Code-Stand
KI-Prüfung mit JSON-Antwort umgesetztClassifyPressRelease-Job (Queue classification), OpenAI-Treiber + deterministischer Fallback, provider-agnostische Architektur unter app/Services/PressRelease/Classification/
Drei-Stufen-Ergebnis grün/gelb/rot umgesetztpress_releases.classification; Routing (seit Phase 9A, Entscheidung 12.06.2026): Rot → rejected + Mail, Gelb/Grün → Auto-Publish (sofort/zum Termin); unklassifizierte PMs bleiben als Fallback in der manuellen Queue
Logging der KI-Antworten umgesetztki_audits-Tabelle (append-only, inkl. Provider/Modell/Begründung/Raw-Response)
Content-Score 0100 → Stufe umgesetztcontent_score/content_tier (ScorePressRelease-Job), Editor-Panel, Admin-Badges, öffentliches Stufen-Badge in Customer-Show
Re-Klassifikation bei Änderung umgesetztreclassifyIfClassified()/rescoreIfScored() bei Titel-/Text-Änderung (Customer, Admin, API)
Admin-On-Demand-Prüfung umgesetzt — „Prüfung"-Button + Modal im Admin-Editor (Re-Check ohne Statusänderung)
API-Absicherung umgesetzt — API kann status nicht mehr setzen; eigene Submit-Route läuft durch denselben Funnel
Trust-Score fehlt (Phase 3 / KI-Plan Phase 6)
Blacklist-Wort-Check vorhanden als synchroner Hard-Filter vor der KI-Klassifikation

Bewertung: — Kern-Pipeline produktionsbereit. ⚠️ Betriebs-Voraussetzung: Queue-Worker für classification in Produktion (Test-Drain: php artisan classification:work). 📝 verbleibend: Trust-Score, Live-Update des Ergebnisses in der UI (aktuell erst nach Reload sichtbar), Stufen-Badges im öffentlichen Web-Frontend.

3.2 Bilder & Lizenzen

Konzept-Stand: Presseportal Konzept für Relaunch.md Abschnitt 2 + Admin-User.md Punkt 4.

Punkt Code-Stand
Upload-Workflow (Eigenes / Stock / KI) Nur „Eigenes Bild" via press-release-images-manager; auf ein Titelbild pro PM begrenzt, Cover-Variante 1280×580, Original wird nach Variantenerzeugung gelöscht (Stock/KI weiterhin offen)
Pflichtfelder (Urheber, Lizenztyp, Lizenz-URL, Personen-Einwilligung, Rechte-Bestätigung) umgesetzt (Phase 8H, erweitert 10./11.06. nach Lizenztyp Bildupload.md) — author, license_type (7 Typen, App\Enums\ImageLicenseType), license_detail, license_url (bedingt Pflicht), source_url, people_rights_status, property_rights_status, rights_notes, rights_confirmed_at; Risikohinweise bei unklaren Lizenzfällen
KI-Wasserzeichen-Check fehlt
Unsplash/Pexels-API fehlt
KI-Bildgenerierung fehlt
is_preview-Flag für Titelbild im Modell vorhanden, im Manager toggelbar
Bild-Varianten (thumb/medium/large) ImageService::PRESS_RELEASE_IMAGE_VARIANTS generiert sie automatisch
SVG-Platzhalter, falls keine Bilder umgesetzt (Phase 8F/8G) — zentrales Set in public/images/press-release-placeholders/, App\Enums\PressReleasePlaceholder, PressReleaseCoverImage-Resolver, Hero in Customer-/Admin-Show

Bewertung: für Lizenzfelder + SVG-Platzhalter (Phase 8). 📝 verbleibend: Stock-/KI-Quellen, Wasserzeichen-Check (Phase 2/3).

3.3 Notice-and-Action (Meldung durch Dritte)

Konzept-Stand: Presseportal Konzept für Relaunch.md Abschnitt 3.

Punkt Code-Stand
Öffentliches Melden-Formular fehlt
Ticketsystem mit Kategorien (Urheberrecht, Persönlichkeitsrecht, …) fehlt
KI-Triage fehlt
Quarantäne-Flow fehlt

Bewertung: 📝 — Phase 2/3-Thema, im Konzept gut beschrieben.

Konzept-Stand: Presseportal Konzept für Relaunch.md Abschnitt 6.

Punkt Code-Stand
magic_links-Tabelle vorhanden
Magic-Link-Generator MagicLinkGenerator existiert (wird für PM-Vorschau-Links genutzt)
Magic-Link für Pressekontakt-Zugang fehlt als eigener Flow
Token-Tabelle press_release_access_requests o. ä. fehlt
Änderungs-Wizard (Tippfehler/Daten/Korrektur/Update/DSGVO) fehlt

Bewertung: 📝 — Phase 2-Thema, vollständig im Konzept beschrieben.

3.5 Pricing / Tarife / Credits

Verbindlicher Konzept-Stand: Decision-Update Preisstruktur & Veröffentlichungs-Flow.md (11.06.2026 — überschreibt §810 in Konzept-Update 1 und im Relaunch-Konzept).

Punkt (laut Decision-Update) Code-Stand
Tarif-Raster Starter/Business/Pro/Agency (29/49/99/199 €, 3/10/25/60 PMs) nicht im Datenmodell
Einzel-PM 19 € (No-Abo-Block) + Einzel→Abo-Brücke fehlt
Zahlung/Checkout (Stripe) Backend umgesetzt (Phase 9E) — Checkout-Routen, Webhooks, STR-Spiegelung; UI folgt mit 9F
Slot-Verbrauch bei Veröffentlichung (Rot = kein Slot) umgesetzt (Phase 9B) — zählt idempotent beim ersten published-Übergang; Einreichen erfordert freien Slot, verbraucht aber keinen
Submit-Gate: „Zur Prüfung einreichen" gegated hinter Buchung vorbereitet (Phase 9C) — User::hasActiveBooking()-Stub hinter billing.enforce_booking (Default aus), Modal-Hinweis + Server-Guard + API 402; echte Buchungs-Prüfung seit 9D/9E (Abo Einmalkauf Legacy-Vereinbarung)
Tageslimit (Business 2 / Pro 3 / Agency 5) fehlt
Launch-Credits: Extra-PM, Boost (nur grün), Veröffentlichungsnachweis-PDF fehlt
Jahrespreis als „2 Monate gratis" Kommunikations-Regel, greift mit Tarif-UI
user_payment_options-Tabelle vorhanden (Pivot zu Companies da, aber kein aktiver Flow)

Bewertung: 📝 — der Launch-Block und damit das größte ungebaute Feature. Vorhandene Anschlusspunkte: Plan-Kontingent (pressReleaseQuotaRemaining(), null = unbegrenzt/Bestandsschutz), Veröffentlichungs-Modal (zeigt Kontingent), KI-Klassifikation (liefert das Rot/Gelb/Grün für den Slot-Verbrauch). Bewusst nicht zum Launch: Re-Check-Loop, Vorab-Prüfung, Prüfzähler (alles Phase 2, siehe Decision-Update §7).

3.6 Korrektur-Modell & Tombstones

Konzept-Stand: Presseportal Konzept für Relaunch.md Abschnitt 4.

Punkt Code-Stand
Korrektur-Hinweis fehlt
Update-Hinweis (am Ende anhängen) fehlt
Anonymisierung (DSGVO) fehlt
Tombstone statt Hard-Delete PressReleaseService::deleteFromAdmin() setzt veröffentlichte PMs auf „archiviert" mit Ersatztext — rudimentär da
Textvorlagen admin-pflegbar fehlt

Bewertung: 🔄 — Tombstone-Variante existiert minimal; Konzept-Doku sollte den Ist-Stand notieren, der Rest ist Phase 2.

3.7 Score / Trust-Score (Konzept-Update 2)

Konzept-Stand: Konzept-Update 2 Score-Stufen-System.md.

Punkt Code-Stand
Content-Score 0100 → Stufe (Standard/Geprüft/Hochwertig) umgesetzt (KI-Plan Phase 5) — content_score/content_tier, Schwellen kalibrierbar in config/scoring.php (Geprüft ≥ 60, Hochwertig ≥ 80)
Stufen-Badges im Backend + Customer-Ansicht umgesetzt (Standard wird laut Konzept nicht beworben)
Stufen-Badges im öffentlichen Web-Frontend fehlt (Folgearbeit)
Trust-Score (User-/Firmen-Ebene) fehlt (Phase 3 / KI-Plan Phase 6)
Auto-Publishing in Abhängigkeit vom Score Klassifikations-basiert umgesetzt (Grün → Auto-Publish); Trust-Score-Lockerung fehlt
Boost-Eligibilität nach Stufe fehlt — zum Launch gilt laut Decision-Update: Boost nur für grüne PMs, Score-Feinstufung ist Phase 2

Bewertung: Content-Score-Kern da; 📝 Trust-Score + öffentliche Badges + Boost-Stufung.


4. Was im Code da ist, aber im Konzept nicht / nur am Rande steht

Feature Wo im Code Doku-Nacharbeit
Phase-7-Schema-Erweiterungen (press_releases.subtitle, scheduled_at, embargo_at, boilerplate_override, no_export) Migrationen 2026_05_20_* Im Konzept ergänzen, dass PMs Untertitel + Scheduling/Embargo unterstützen
mews/purifier für HTML-Sanitization PressReleaseHtmlSanitizer Im Konzept-Abschnitt zu Editor erwähnen
press_release_attachments-Tabelle + Model Migration 2026_05_20_143424_* UI auskommentiert, Tabelle bleibt → Doku-Anker für spätere Reaktivierung
Background-Job für scheduled publishing app/Console/Commands/PublishScheduledPressReleases.php, alle 5 Min via Scheduler; publiziert seit der KI-Anbindung nur noch grün klassifizierte fällige PMs Im Konzept als „automatische Veröffentlichung zum geplanten Termin" hinzufügen
Zeitzonen-Handling für geplante Termine PressRelease::DISPLAY_TIMEZONE (Europe/Berlin), scheduledAtLocal()/embargoAtLocal(); Eingabe Berlin, Speicherung UTC dokumentiert in Umsetzung Pressemitteilung Bearbeitung Titelbild Veroeffentlichung.md; published_at/created_at weiterhin UTC-Anzeige (Folgeschritt)
Monatlicher Quota-Reset press-releases:reset-monthly-quota (Scheduler, 1. des Monats) Setzt den Plan-Kontingent-Zähler zurück (seit 9E)
FluxUI Toast für UX-Feedback Flux::toast() durchgehend in Customer-Forms Konzept-übergreifend, kein Konzept-Update nötig
Smooth-Scroll zu Validation-Errors resources/js/portal-form-hooks.js UX-Detail, keine Konzept-Doku
Pre-Submit-Check-Liste in PM-Forms computed presubmitChecks Im Konzept als „Pre-Submit-Check senkt Support-Aufwand" ergänzen
Hub-Design-System (Tokens + Komponenten) dev/frontend/hub-flux/ (Phase 07) Eigene Roadmap-Doku, nicht teil von docs/
Theme-Override pro Domain ThemeServiceProvider + config/domains.php In Echte öffentliche Unterseiten.md ergänzen
Public-Detail-Page (web/release-detail.blade.php) umgesetzt In Echte öffentliche Unterseiten.md als „existiert" markieren

5. Offene Punkte aus dem letzten Code-Review

Diese Punkte habe ich beim Review der Phase-7-Forms gefunden, sie sind weder in den Konzept-Dokumenten erfasst noch in einem Plan:

Lücke Betroffene Dateien Status
Customer-Show zeigt weder subtitle noch scheduled_at/embargo_at/boilerplate_override customer/press-releases/show.blade.php erledigt (8A)
Admin-Show zeigt weder subtitle noch boilerplate_override admin/press-releases/show.blade.php erledigt (8A)
Liste-Indikator für Scheduling/Embargo customer/press-releases/index.blade.php, admin/press-releases/index.blade.php erledigt (8B)
Pressekontakt-Sidebar zeigt keine Warn-Box, wenn kein Kontakt gewählt customer/press-releases/create.blade.php, edit.blade.php erledigt (8C)
Anhang-Tests laufen ins Leere tests/Feature/PressReleaseAttachmentsManagerTest.php, Teile von PressReleasePhase7SchemaTest.php via ->skip(...) mit Verweis auf Security-Review
Roadmap-Doku 19-PHASE-7-PRESS-RELEASE-FORM.md ist nicht mehr aktuell Letzte 3 große Änderungen fehlen offen → wird im Phase-8-Abschluss (8K) als 20-PHASE-8-…md dokumentiert

6. Empfehlungen zur Pflege der Doku

6.1 Sofort ohne Risiko machbar

  1. In Admin-User.md ergänzen: „PMs unterstützen Untertitel, Scheduling und Embargo seit Phase 7".
  2. In Presseportal Konzept für Relaunch.md Abschnitt 1: aktuellen Blacklist-Stand notieren („KI-Vorprüfung folgt; aktuell wird per Blacklist gegen offensichtliche Verstöße geprüft").
  3. In Presseportal Konzept für Relaunch.md Abschnitt 2: hinzufügen, dass Bilder aktuell nur als „Eigenes Bild" hochgeladen werden können, Stock- und KI-Quellen folgen.
  4. In Presseportal Konzept für Relaunch.md Abschnitt 4: notieren, dass Tombstone-Variante rudimentär da ist (deleteFromAdmin-Ersatztext), die Korrektur-/Update-Hinweise aber noch fehlen.
  5. In checkliste-user-backend.md neuen Block „Phase 7" hinzufügen mit Verweis auf dev/frontend/hub-flux/19-PHASE-7-PRESS-RELEASE-FORM.md.

6.2 Mit Phase 8 ergänzen

  1. Neuer Abschnitt im Admin-User.md: „Titelbild & SVG-Platzhalter".
  2. Neuer Abschnitt im Presseportal Konzept für Relaunch.md: „Veröffentlichungs-Modal & Quota-Kommunikation".
  3. Aktualisierung der Firmen-Liste-Doku im Admin-User.md mit den neuen UI-Bausteinen (Counter-Strip, Saved-Views, Filter-Chips, Card/List-Toggle, Rollen-Legende).

6.3 Längerfristig (Phase 2/3)

  1. Magic-Link-Flow für Pressekontakte → eigenes Doku-Kapitel, sobald gebaut.
  2. Tarif-/Credit-System → eigener Architektur-Block (Datenmodell, Stripe-Integration, Quota-Counter-Implementierung).

7. Quellen-Übersicht für die nächsten Schritte

Frage Quelle
Was ist konzeptuell der User-Backend-Aufbau? docs/user-admin/Admin-User.md
Was ist bereits umgesetzt, was offen? docs/user-admin/checkliste-user-backend.md (Phase 1 )
Datenmodell-Übersicht? docs/user-admin/user-zusammenhaenge.md
Großthemen-Konzept (KI, Bilder, Tombstones, Magic-Link, Pricing)? docs/user-admin/Presseportal Konzept für Relaunch.md
Brand- & Design-System? docs/konzept/Entwicklungs-Konzept - Frontend-Komponenten Multi-Brand.md, dev/frontend/hub-flux/*
Score-System? docs/konzept/Konzept-Update 2 Score-Stufen-System.md
Aktuelle Phase 7 (PM-Form-Refactor)? dev/frontend/hub-flux/19-PHASE-7-PRESS-RELEASE-FORM.md
Nächste Phase 8? docs/PHASE-8-USER-PANEL-PLAN.md (neu, neben diesem Dokument)