Projekt-Alert nur für registrierte Projektpartner
/projektportal/projektalert einen Teaser mit Erklär-Copy und Login-/Registrieren-CTAs statt des Formulars. Die 7.314 aktiven Gast-Alerts aus dem Neos-Altsystem werden nicht migriert (Hard Cut); migriert werden ausschließlich user-gebundene aktive Alerts. Der bereits gebaute Anonym-Code (Double-Opt-in, anonymer Dedup-Pfad, Enumeration-Schutz) wird vor der Deadline minimal gegated, nicht zurückgebaut; der Token-Abbestellen-Link in Digest-Mails bleibt als One-Click-Abmeldung bestehen. Der Kern von ADR-0055 — ein System, Modul B als Basis, Freitext + kuratierte Vorschläge, Modul-A-Stilllegung, URL-Kanon — bleibt unverändert.
Kontext
ADR-0055 (02.07.2026) konsolidierte die zwei parallelen Alert-Systeme auf solcom_project_offer_alert und sah ausdrücklich beide Zielgruppen vor: anonyme Abonnent:innen (Double-Opt-in, Token-Verwaltung) und eingeloggte Projektpartner:innen (sofort aktiv, Portal-Pflege). Tragendes Argument war die Kontinuität des Altsystem-Bestands: 12.912 aktive Neos-Alerts, davon 7.314 gast-gebunden — die anonyme Anlage war im Altsystem gelebte Realität, keine Relaunch-Neuerung.
Am 03.07.2026 — nach Abschluss der ersten Implementierungsrunde (anonymer Pfad inklusive Token-Edit-Route, Dedup und Enumeration-Schutz war bereits gebaut) — entschied der Site Owner eine Scope-Änderung: „Projektalert nur für registrierte User." Die drei daraus folgenden Detailfragen wurden ihm mit Optionen vorgelegt und wie folgt entschieden:
| Frage | Entscheidung |
|---|---|
| Gast-Alt-Bestand (7.314 aktive Gast-Alerts) | Hard Cut — nicht migrieren; nur user-gebundene aktive Alerts werden übernommen. |
Anonyme Besucher:innen auf /projektportal/projektalert | Teaser-Seite mit Erklär-Copy und Login-/Registrieren-CTAs; Formular erst eingeloggt. |
| Umgang mit dem gebauten Anonym-Code | Minimal gaten — Routen/Endpunkte für Anonyme sperren, Code bleibt; sauberer Rückbau als Follow-up nach Go-Live (08.07.2026). |
Randbedingung: Die Härtungsrunde der Implementierung lief zu diesem Zeitpunkt bereits; scope-neutrale Arbeitspakete (Formular-Härtung, Modul-A-Stilllegung, Matcher-Tests, Trefferzähler) blieben unangetastet, die Migrations- und Gating-Pakete wurden umgespect.
Entscheidung
1. Zugriff nur für Eingeloggte, Teaser für Anonyme
Das Alert-Formular auf /projektportal/projektalert ist nur noch eingeloggt erreichbar. Anonyme Besucher:innen sehen unter derselben URL einen Teaser: die Versandlogik-Erklärung („E-Mail, sobald neue passende Projekte online gehen — jedes Projekt nur einmal."), den Nutzen des Alerts und zwei CTAs „Anmelden" und „Registrieren", jeweils mit ?destination zurück auf das Formular. Eingeloggte Projektpartner:innen legen ihren Alert wie in ADR-0055 beschlossen ohne erneute Kontaktdaten-Eingabe an (Profil-Daten), er ist sofort aktiv — Double-Opt-in entfällt im neuen Scope vollständig.
2. Gast-Alt-Bestand: Hard Cut
Die Neos-Migration übernimmt ausschließlich aktive, user-gebundene Alerts (Join auf die migrierten Projektpartner-Accounts). Gast-Alerts werden nicht migriert; ihre Abonnements enden mit dem Relaunch. Die Soll-Zahl der Migration wird nicht mehr mit 12.912 angesetzt, sondern per Quell-Query (aktiv ∧ user-gebunden, abzüglich dokumentierter Skips durch fehlende User-Zuordnung) ermittelt und belegt. Der Massen-Versand-Schutz (Vorbefüllung des Pro-Projekt-Versandprotokolls mit dem Ist-Projektbestand) bleibt unverändert Pflicht.
3. Minimal-Gating statt Rückbau
Der in Runde 1 gebaute Anonym-Code bleibt im Modul, wird aber unerreichbar: der anonyme Anlage-/Submit-Pfad und der Trefferzähler-Endpunkt antworten Anonymen mit 403 bzw. werden per Route-Access gesperrt. Die Token-Routen (bestätigen/bearbeiten/abbestellen) bleiben technisch bestehen. In Digest-Mails zeigt der „Alert bearbeiten"-Link künftig auf die Portal-Seite (login-pflichtig); der Token-„Abbestellen"-Link bleibt als One-Click-Abmeldung ohne Login erhalten — rechtlich sauber und bestandskompatibel. Der saubere Rückbau (Double-Opt-in-Flow, anonymer Dedup-Pfad, ggf. Token-Edit-Route) ist ein dokumentiertes Follow-up nach Go-Live.
4. Tests folgen dem neuen Scope
Alle Seam-Tests, die anonym anlegen, werden auf eingeloggten Kontext umgestellt; neu hinzu kommen Gating-Negativtests (anonym: Teaser ohne Formular, Submit/Zähler 403) und der eingeloggte Voll-Flow (anlegen → Digest → Portal-Pflege → löschen). Der Token-Unsubscribe-Test bleibt anonym.
Abgelehnte Alternativen
Bestandsschutz-Hybrid: Gast-Alerts migrieren und per Token-Links weiterlaufen lassen
Verworfen (Site-Owner-Entscheidung): Registered-only soll konsequent gelten; ein dauerhafter Zwei-Klassen-Betrieb (Token-verwaltete Gäste neben Portal-verwalteten Partnern) hält genau die Doppel-Komplexität am Leben, die der neue Scope beseitigen soll.
Gast-Alerts migrieren + Registrierungs-Einladung per Mail
Verworfen: braucht einen Konto-Übernahme-Flow (Gast-Alert → User-Alert beim ersten Login) und eine Einladungs-Mail-Strecke — vor dem 08.07.2026 nicht leistbar, und der Ertrag ist ungewiss.
Login-Redirect statt Teaser
Verworfen: Ein kommentarloser Redirect auf die Login-Maske erklärt Erstbesucher:innen nicht, was der Projekt-Alert ist und warum sich die Registrierung lohnt. Der Teaser übernimmt die Erklär-Copy aus dem Formular und macht die Seite zum Registrierungs-Treiber.
Sofortiger Voll-Rückbau des Anonym-Codes
Verworfen: Rückbau von DOI, Dedup-Pfad und Token-Edit inklusive Test-Umbau unmittelbar vor der Deadline ist unnötiges Umbaurisiko. Access-Gating erreicht denselben Sicherheitseffekt; toter Code ist ein akzeptierter, zeitlich begrenzter Preis mit dokumentiertem Follow-up.
Konsequenzen
Positiv:
- Kleinere Angriffs- und Betriebsfläche: keine anonyme Schreib-API, kein Double-Opt-in-Betrieb, Enumeration-Fragen entfallen praktisch.
- Der Alert wird Registrierungs-Treiber für das Projektpartnerportal (Teaser mit CTAs).
- Migrationsvolumen und Versandprotokoll-Vorbefüllung schrumpfen deutlich (nur user-gebundene Alerts).
- Ein einziger Verwaltungsort (Portal-Formular) statt zwei paralleler Verwaltungswege.
Risiken / Kosten:
- 7.314 aktive Gast-Abonnements enden ersatzlos. Das kehrt die bisherige Kontinuitäts-Argumentation um (PRD-Stories des Anonym-Clusters und Story 20 entfallen). Die Stakeholder-Kommunikation muss den bewussten Bruch tragen — bisher wurde intern mit „niemand verliert sein Abo" argumentiert.
- Toter Code bis zum Rückbau-Follow-up: DOI-Flow, anonymer Dedup und Enumeration-Schutz bleiben ungenutzt im Modul und kosten Wartungsaufmerksamkeit.
- Token-Edit-Route bleibt erreichbar (bewusst, minimal-invasiv). Vertrauensmodell unverändert UUID-Token; im neuen Scope wird sie aus Mails nicht mehr verlinkt.
- PRD/Plan tragen Amendment-Hinweise statt Neufassung (Zeitdruck): Das PRD vom 02.07. bleibt als historisches Dokument stehen, der Scope-Delta lebt in diesem ADR.
Verifikation: Gating-Negativtests + eingeloggter Voll-Flow am HTTP-Seam, Migrations-Tests mit Gast-Negativ-Fixture, Live-Migrationslauf mit Quell-Query-Beleg, Browser-Verify (anonymer Teaser, eingeloggtes Formular, One-Click-Unsubscribe).
Offene Punkte
filter_plz/filter_radius_km bleiben auf Site-Owner-Wunsch (03.07.2026) erhalten, werden vom Matcher aber nicht ausgewertet — Matching-Anbindung oder bewusster Verzicht ist separat zu entscheiden.