[KAT-04] Fehlendes Spiel melden #13
Labels
No labels
epic/katalog
epic/konto
epic/partien
epic/querschnitt
epic/sammlung
needs-clarification
prio/could
prio/must
prio/should
size/l
size/m
size/s
size/xl
status/in-progress
status/ready-for-merge
status/spec-review
type/bug
type/epic
type/story
type/tech
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Blocks
Depends on
#25 [SAM-08] Sammlung und Wunschliste aus BGG importieren
cschlaefke/Shuffle
#1 [KTO-01] Registrieren, anmelden und Passwort zurücksetzen
cschlaefke/Shuffle
#2 [KAT-05] Katalogdaten laden und aktuell halten
cschlaefke/Shuffle
#3 [KAT-01] Spiele suchen
cschlaefke/Shuffle
Reference: cschlaefke/Shuffle#13
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Story
Als Nutzer
möchte ich ein fehlendes Spiel melden und sofort als vorläufigen privaten Eintrag nutzen,
damit mich ein Katalogloch nicht beim Erfassen blockiert.
Akzeptanzkriterien
Quelle:
requirements/20-r1-akzeptanzkriterien.md§ KAT-04 (Referenz in Tests/PR: „KAT-04 Kriterium n“), Stand 2026-11-02 inkl. Klärungen und N12Querschnitt
Es gelten alle Querschnittskriterien aus
20-r1-akzeptanzkriterien.md§ „Querschnitt für R1“ (Datenschutz QUE-04, Sicherheit der Daten, Sprachen QUE-05, Barrierefreiheit QUE-06, Zustände/Fehler/Netz, Plattformen).Besonders relevant: Sicherheit der Daten Kriterium 1–3 (Meldungen und vorläufige Einträge nur für Melder und Admin), Zustände Kriterium 3.
Nicht im Scope
Klärungen
Verbindlich laut
requirements/r1-klaerungen.md(2026-11-02):Offene Fragen
Keine. (Folgefrage N12a zum Geltungsbereich der Deduplizierung steht in #25 und ändert die Kriterien dieser Story nicht.)
Planung
Referenzen
requirements/20-r1-akzeptanzkriterien.md§ KAT-04requirements/r1-klaerungen.md(inkl. N12)requirements/r1-story-entwurf.md(freigegeben 2026-11-02)requirements/backlog.mdOffene fachliche Fragen aus
requirements/r1-story-entwurf.md, Abschnitt 5 (Nummerierung wie im Entwurf). Bitte hier beantworten; nach Klärung wirdneeds-clarificationentfernt.Frage 6: KAT-04: Für Meldungen (Status offen/freigegeben/abgelehnt/zusammengeführt, Link, Verweis auf Zieleintrag) gibt es keine Tabelle. Bitte bestätigen, dass dies in R1 neu dazukommt (Umsetzung: architect).
Frage 15: KAT-04 Krit. 2: Ab wann ist ein Eintrag „sehr ähnlich“ (gleicher Titel, Titel + Jahr …)?
Frage 26: KAT-04 Krit. 5: Wie erfährt der Nutzer von Freigabe/Ablehnung/Zusammenführung? Benachrichtigungen (QUE-01) sind erst R2 – reicht ein Hinweis in der App? Was passiert mit dem vorläufigen Eintrag bei Ablehnung ohne Zieleintrag?
Frage 27: KAT-04 / Moderation: Gemeldete Titel und Links sind Nutzerinhalte. Prüft Chris jede Meldung manuell? Gibt es ein Limit gegen Spam-Meldungen?
Frage 45 (Querschnitt Benachrichtigungen): E-Mails in R1 (Bestätigung, Reset, Export fertig, ggf. Meldungsergebnis) – reichen Systemmails, Sprache der Mails nach Profil-
locale?Klärungen eingearbeitet (2026-11-02): Fragen 6, 15, 26, 27, 44/25, 45 laut
requirements/r1-klaerungen.md. Kriterium 2 enthält jetzt die Definition von „sehr ähnlich“. Kriterien 4 und 5 bekommen den Hinweis in der App statt einer E-Mail. Neu sind Kriterium 6 (Ablehnung ohne Zieleintrag → Eintrag bleibt als „abgelehnt“ markiert), 7 (Tageslimit 10) und 8 (Meldung bleibt offen bis zur manuellen Prüfung). Keine offenen Fragen mehr,needs-clarificationentfernt. Ob automatisch beim BGG-Import erzeugte Meldungen auf das Tageslimit zählen, ist als Frage N12 in #25 offen.Klärungen N12 eingearbeitet (2026-11-02)
Quelle:
requirements/r1-klaerungen.md, Abschnitt „Neue Fragen aus dem Einarbeiten (N1–N14)“.Hinweis aus der KAT-05-Spec (PR #51, Entscheidung von Chris 2026-11-03): Wird eine Meldung aus diesem Issue vom Admin freigegeben oder zusammengeführt, werden die Varianten des privaten vorläufigen Eintrags nicht in den öffentlichen Katalog kopiert (sonst würden private Nutzerdaten ohne Prüfung öffentlich). Verweise in Sammlung und Partien auf eine Variante (Edition) werden auf eine gleichnamige Variante des Zielspiels abgebildet, sonst auf
null.Folge für KAT-04 Kriterium 4 („eigene Angaben bleiben erhalten"): Für die Edition gilt das nur eingeschränkt; sie kann beim Umhängen verloren gehen. Bitte bei der Spec zu #13 berücksichtigen (z. B. Hinweis an Nutzer oder Edition als Freitext sichern). Die Meldungstabelle
game_reportsentsteht in PR 2c von #2; 2c muss vor der Umsetzung von #13 gemergt sein.Spec-Entwurf zu KAT-04 liegt zur Freigabe bereit (architect, 2026-11-03)
Spec:
docs/specs/13-fehlendes-spiel-melden.mdauf Branchdocs/13-kat04-spec(Commitab438ac, noch kein PR).Voraussetzung: #2 PR 2b und 2c müssen gemergt sein, bevor 13a (Backend) beginnt (Spec #2 E12). Der Hinweis aus PR #51 (Klärung N15, Edition) ist eingearbeitet: § 2 „Abweichung bei Krit. 4“, E7, § 5.4.
Kernentscheidungen in Kurzform: Zu jeder Meldung gehört genau ein vorläufiger privater Eintrag mit nur Titel und Jahr. Das Anlegen läuft über eine atomare RPC (
security invoker). Die Datenbank schützt über Spaltenrechte, eine Insert-Policy und einen Limit-Trigger mit Sperre je Nutzer. Die Ähnlichkeitsprüfung läuft serverseitig mitpg_trgm. Bei „abgelehnt mit Verweis“ wechselt der Nutzer selbst auf den Zieleintrag (adopt_report_target,security definer, streng geprüft). Die Ergebnishinweise lassen sich wegklicken (result_seen_at). Geschnitten in zwei PRs: 13a Backend (Refs #13) und 13b Flutter (Closes #13).Offene Fragen mit Empfehlung (§ 9.2). Keine blockiert die Umsetzung, deshalb setze ich kein
needs-clarification. Wenn du nichts anderes entscheidest, gilt die Empfehlung mit der Freigabe.edition_cleared, dann als Nachtrag in Spec #2, bevor 2b/2c gebaut werden.Bitte Spec freigeben oder Änderungen nennen. Bis zur Freigabe wird nichts umgesetzt.
Nachtrag zur Spec (Commit
ece8e3e, gleicher Branchdocs/13-kat04-spec)translate()-Zuordnung.similarity() >= 0.8nicht nutzbar. Bei der Größe des Katalogs reicht ein sequenzieller Durchlauf.result_seen_at, und nur an eigenen, bereits bearbeiteten Meldungen. Der Test08aus 2c wird entsprechend angepasst.report_dayrechnet den Berliner Kalendertag aus.Die übrigen Fragen und Empfehlungen sind unverändert.
Review-Befunde eingearbeitet (Commit
f7a7c1eaufdocs/13-kat04-spec)Für dich zur Entscheidung, Chris:
search_normalize). Für #13 ist nur noch offen, welche Artikel ignoriert werden. Empfehlung: nur ein führender Artikel auf Deutsch oder Englisch.game_reports.editions_cleared. Dafür ist ein Nachtrag in Spec #2 nötig, solange 2b und 2c noch nicht gemergt sind.Die übrigen Fragen und Empfehlungen sind unverändert.
Spec an Spec #3 und PR 2c angeglichen (Commit
a4c7b47aufdocs/13-kat04-spec)Wichtig, Chris: Spec-F6 (Edition) bitte vor dem Merge von PR #57 (2c) entscheiden.
Empfehlung: ein Zähler
game_reports.editions_cleared. 2c legt die Spalte an und setzt sie inadmin_resolve_reportaus dem schon vorhandenenvariants_cleared. Der in der letzten Fassung genannte Nachtrag in 2b entfällt; dort war ich falsch.Wenn die Entscheidung erst nach dem Merge von PR #57 fällt, müsste 13a
admin_resolve_reportpercreate or replaceändern.Sonst nur Abgleich mit Spec #3, fachlich unverändert:
title_search.