Intake of the 26 R1 stories from requirements/20-r1-akzeptanzkriterien.md into Forgejo issues #1-#26. backlog.md maps story IDs to issues, stages R1.1-R1.4, dependencies and the 48 open questions. Refs #1, #2, #3, #4, #5, #6, #7, #8, #9, #10, #11, #12, #13, #14, #15, #16, #17, #18, #19, #20, #21, #22, #23, #24, #25, #26 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
173 lines
11 KiB
Markdown
173 lines
11 KiB
Markdown
# Backlog R1
|
||
|
||
Stand: 2026-11-02 · Pflege: requirements-analyst · Quelle: `requirements/r1-story-entwurf.md` (freigegeben durch Chris am 2026-11-02), Akzeptanzkriterien in `requirements/20-r1-akzeptanzkriterien.md`.
|
||
|
||
Repo: [cschlaefke/Shuffle](https://git.cshomelabs.work/cschlaefke/Shuffle/issues) · Milestone: **R1** (in Forgejo noch nicht angelegt, Issues aktuell ohne Milestone) · 4 Epics, 26 Stories, 26 Issues.
|
||
|
||
Akzeptanzkriterien stehen 1:1 als nummerierte Checkliste in den Issues und werden als „KTO-01 Kriterium 3“ referenziert. Die Querschnittskriterien (Datenschutz, Sicherheit, Sprachen, Barrierefreiheit, Zustände/Netz, Plattformen) gelten für jede Story.
|
||
|
||
## Stories nach Umsetzungsreihenfolge
|
||
|
||
Status: `offen` = Issue angelegt, noch keine Spec. Clarification = Label `needs-clarification` gesetzt (offene Fragen als Kommentar im Issue).
|
||
|
||
| Story-ID | Issue | Titel | Epic | Prio | Größe | Etappe | Status | Clarification |
|
||
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
|
||
| KTO-01 | [#1](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/1) | Registrieren, anmelden und Passwort zurücksetzen | Konto | Must | XL | R1.1 | offen | ja |
|
||
| KAT-05 | [#2](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/2) | Katalogdaten laden und aktuell halten | Katalog | Must | XL | R1.1 (Import), R1.2 (Admin-Pflege, Meldungen) | offen | ja |
|
||
| KAT-01 | [#3](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/3) | Spiele suchen | Katalog | Must | L | R1.1 | offen | ja |
|
||
| KAT-02 | [#4](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/4) | Spieldetailseite | Katalog | Must | M | R1.1 | offen | ja |
|
||
| KTO-04 | [#5](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/5) | Privatsphäre (in R1 nur der Hinweis) | Konto | Must | S | R1.1 | offen | ja |
|
||
| SAM-01 | [#6](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/6) | Spiel zur Sammlung hinzufügen | Sammlung | Must | S | R1.2 | offen | nein |
|
||
| SAM-02 | [#7](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/7) | Eigene Angaben pro Spiel | Sammlung | Must | M | R1.2 | offen | ja |
|
||
| SAM-04 | [#8](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/8) | Wunschliste mit Priorität | Sammlung | Must | M | R1.2 | offen | ja |
|
||
| SAM-05 | [#9](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/9) | Einkaufsliste führen | Sammlung | Must | M | R1.2 | offen | ja |
|
||
| SAM-06 | [#10](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/10) | In die Sammlung übernehmen | Sammlung | Must | S | R1.2 | offen | ja |
|
||
| SAM-03 | [#11](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/11) | Sammlung durchsuchen, filtern und sortieren | Sammlung | Must | L | R1.2 | offen | ja |
|
||
| KAT-03 | [#12](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/12) | Erweiterungen und Editionen | Katalog | Must | M | R1.2 | offen | ja |
|
||
| KAT-04 | [#13](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/13) | Fehlendes Spiel melden | Katalog | Must | L | R1.2 | offen | ja |
|
||
| KTO-02 | [#14](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/14) | Profil bearbeiten | Konto | Must | L | R1.2 | offen | ja |
|
||
| PAR-01 | [#15](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/15) | Partie erfassen | Partien | Must | XL | R1.3 | offen | ja |
|
||
| PAR-02 | [#16](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/16) | Mitspieler hinzufügen | Partien | Must | M | R1.3 | offen | ja |
|
||
| PAR-03 | [#17](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/17) | Ergebnis erfassen | Partien | Must | L | R1.3 | offen | ja |
|
||
| PAR-04 | [#18](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/18) | Wertungsbogen je Spiel | Partien | Must | M | R1.3 | offen | ja |
|
||
| PAR-05 | [#19](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/19) | Partie bearbeiten und löschen | Partien | Must | M | R1.3 | offen | ja |
|
||
| PAR-06 | [#20](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/20) | Partienverlauf | Partien | Must | M | R1.3 | offen | ja |
|
||
| PAR-07 | [#21](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/21) | Persönliche Statistik | Partien | Must | L | R1.3 | offen | ja |
|
||
| PAR-08 | [#22](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/22) | Statistik je Spiel | Partien | Must | M | R1.3 | offen | ja |
|
||
| KTO-05 | [#23](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/23) | Konto löschen und Daten exportieren | Konto | Must | XL | R1.4 | offen | ja |
|
||
| SAM-07 | [#24](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/24) | BGG-Konto verknüpfen | Sammlung | Should | S | R1.4 (nur mit BGG-Lizenz) | offen | ja |
|
||
| SAM-08 | [#25](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/25) | Sammlung und Wunschliste aus BGG importieren | Sammlung | Should | XL | R1.4 (nur mit BGG-Lizenz) | offen | ja |
|
||
| SAM-09 | [#26](https://git.cshomelabs.work/cschlaefke/Shuffle/issues/26) | BGG-Import wiederholen und abgleichen | Sammlung | Should | L | R1.4 (nur mit BGG-Lizenz) | offen | ja |
|
||
|
||
## Epics
|
||
|
||
| Epic | Label | Stories (Issues) |
|
||
| --- | --- | --- |
|
||
| KTO Konto & Profil | `epic/konto` | KTO-01 (#1), KTO-02 (#14), KTO-04 (#5), KTO-05 (#23) |
|
||
| KAT Spielekatalog | `epic/katalog` | KAT-01 (#3), KAT-02 (#4), KAT-03 (#12), KAT-04 (#13), KAT-05 (#2) |
|
||
| SAM Sammlung & Listen | `epic/sammlung` | SAM-01 (#6), SAM-02 (#7), SAM-03 (#11), SAM-04 (#8), SAM-05 (#9), SAM-06 (#10), SAM-07 (#24), SAM-08 (#25), SAM-09 (#26) |
|
||
| PAR Partien & Statistik | `epic/partien` | PAR-01 (#15), PAR-02 (#16), PAR-03 (#17), PAR-04 (#18), PAR-05 (#19), PAR-06 (#20), PAR-07 (#21), PAR-08 (#22) |
|
||
|
||
## Etappen (im Milestone R1)
|
||
|
||
| Etappe | Issues |
|
||
| --- | --- |
|
||
| R1.1 Fundament | #1, #2 (Import), #3, #4, #5 |
|
||
| R1.2 Sammlung | #6, #7, #8, #9, #10, #11, #12, #13, #2 (Admin-Pflege, Meldungen), #14 |
|
||
| R1.3 Partien | #15, #16, #17, #18, #19, #20, #21, #22 |
|
||
| R1.4 Abschluss | #23, #24, #25, #26 (BGG-Block nur mit Lizenz, S1) |
|
||
|
||
## XL-Stories
|
||
|
||
Nicht geteilt (Entscheidung Chris, Label `size/xl`). Die Schnittvorschläge stehen im Issue unter „Mögliche Schnitte für die Spec“ und werden in der Spec (architect) entschieden: KTO-01 (#1), KTO-05 (#23), KAT-05 (#2), SAM-08 (#25), PAR-01 (#15).
|
||
|
||
## Abhängigkeiten
|
||
|
||
In Forgejo als blockierende Abhängigkeiten gesetzt (Issue hängt ab von …):
|
||
|
||
| Issue | hängt ab von |
|
||
| --- | --- |
|
||
| #3 KAT-01 | #2 |
|
||
| #4 KAT-02 | #3 |
|
||
| #5 KTO-04 | #1 |
|
||
| #6 SAM-01 | #1, #3, #4 |
|
||
| #7 SAM-02 | #6 |
|
||
| #8 SAM-04 | #1, #4 |
|
||
| #9 SAM-05 | #1, #4 |
|
||
| #10 SAM-06 | #6, #8, #9 |
|
||
| #11 SAM-03 | #6, #7 |
|
||
| #12 KAT-03 | #4, #6 |
|
||
| #13 KAT-04 | #1, #2, #3 |
|
||
| #14 KTO-02 | #1, #3 |
|
||
| #15 PAR-01 | #1, #3, #6 |
|
||
| #16 PAR-02 | #15 |
|
||
| #17 PAR-03 | #16 |
|
||
| #18 PAR-04 | #17 |
|
||
| #19 PAR-05 | #15, #16, #17, #18 |
|
||
| #20 PAR-06 | #15, #16, #17 |
|
||
| #21 PAR-07 | #17, #20 |
|
||
| #22 PAR-08 | #4, #17 |
|
||
| #23 KTO-05 | #1 |
|
||
| #24 SAM-07 | #1 |
|
||
| #25 SAM-08 | #2, #6, #8, #13, #24 |
|
||
| #26 SAM-09 | #7, #25 |
|
||
|
||
Nur im Issue-Text vermerkt (kriterienbezogene Rückverweise, die als blockierende Abhängigkeit Zyklen erzeugen würden):
|
||
|
||
- KAT-01 (#3) Kriterium 6 → KAT-04 (#13)
|
||
- KAT-02 (#4) Kriterien 3–4 → SAM-01 (#6), SAM-04 (#8), SAM-05 (#9); Kriterium 6 → PAR-08 (#22)
|
||
- SAM-05 (#9) Kriterium 3 → SAM-06 (#10)
|
||
- KTO-05 (#23) inhaltlich → alle Daten-Stories (u. a. #6–#11, #13, #14, #15–#18)
|
||
- Externe Voraussetzung BGG-Lizenz (S1) für #24, #25, #26; Admin-Rolle für #2 und #13
|
||
|
||
## Offene Fragen
|
||
|
||
Nummerierung wie in `requirements/r1-story-entwurf.md` § 5. Der Wortlaut steht als Kommentar im jeweiligen Issue.
|
||
|
||
### A. Widersprüche zwischen Akzeptanzkriterien und Datenmodell/Migrationen
|
||
|
||
| Nr | Thema | Issues |
|
||
| --- | --- | --- |
|
||
| 1 | Spiel gleichzeitig in Sammlung, Wunsch- und Einkaufsliste? (`unique (owner_id, game_id)`) | #8, #10, #25 |
|
||
| 2 | Felder für SAM-02/04/05 fehlen im Datenmodell | #7, #8, #9 |
|
||
| 3 | Deutscher und englischer Titel (alternative Titel) | #3 |
|
||
| 4 | Verlagsfeld fehlt | #3, #4 |
|
||
| 5 | Beziehung Erweiterung ↔ Basisspiel fehlt | #12 |
|
||
| 6 | Tabelle für Meldungen fehlt | #13 |
|
||
| 7 | Ausblenden, manuell gepflegte Felder, Erlaubnis je Quelle | #2 |
|
||
| 8 | Profil-Genres fehlen, gleiche Liste wie Katalog? | #14 |
|
||
| 9 | Stadt im Profil vs. „alles privat“ | #5 |
|
||
| 10 | Löschumfang Partien, private Katalogeinträge, Meldungen | #23 |
|
||
| 11 | Ort, Gästeliste, kooperativ/Teams fehlen im Modell | #15, #16, #17, #20 |
|
||
| 12 | BGG-Import: „nicht gefunden“ vs. automatische private Einträge | #25 |
|
||
|
||
### B. Unklare oder nicht testbare Kriterien
|
||
|
||
| Nr | Thema | Issues |
|
||
| --- | --- | --- |
|
||
| 13 | KAT-01 Kriterium 8 unvollständig, Filterumfang | #3 |
|
||
| 14 | „Normale Verbindung“ für 2 s | #3 |
|
||
| 15 | Wann ist ein Eintrag „sehr ähnlich“? | #13 |
|
||
| 16 | „Flüssig“ bei 1000 Spielen – Zielwert | #11 |
|
||
| 17 | „Einige Sekunden“ für Rückgängig | #8, #9, #10 |
|
||
| 18 | Drosselung, Gültigkeit Reset- und Bestätigungslink | #1 |
|
||
| 19 | KTO-04 Kriterium 2 in R1 nicht testbar | #5 |
|
||
| 20 | Löschfrist, Exportformat und -umfang, Benachrichtigung, Neuregistrierung | #23 |
|
||
| 21 | Datenschutzerklärung/AGB, Prüfung Mindestalter, optionale Dienste | #1 |
|
||
|
||
### C. Fachliche Lücken je Story
|
||
|
||
| Nr | Thema | Issues |
|
||
| --- | --- | --- |
|
||
| 22 | Regeln Anzeigename bei Registrierung, Abmelden/E-Mail/Passwort ändern | #1 |
|
||
| 23 | Vorläufige Spiele als Lieblingsspiele, Reihenfolge ändern | #14 |
|
||
| 24 | Zugelassene Datenquellen ohne BGG-Lizenz (kritisch für R1) | #2, #4 |
|
||
| 25 | Admin-Bereich in der App oder internes Werkzeug, wer ist Admin | #2 |
|
||
| 26 | Rückmeldung zu Meldungen, Ablehnung ohne Zieleintrag | #13 |
|
||
| 27 | Moderation und Spam-Limit für Meldungen | #13 |
|
||
| 28 | Edition Pflicht/optional, auch für Listen und Partien | #12 |
|
||
| 29 | Werte der Zustandsliste, Verwaltung von Tags/Standorten | #7 |
|
||
| 30 | Suche/Filter auch für Wunsch- und Einkaufsliste, Leerzustand ohne Lizenz | #11 |
|
||
| 31 | Summe der Einkaufsliste, Verhalten bei abgelehnter Übernahme | #9 |
|
||
| 32 | Umgang mit Listen-Notiz bei vorhandener Sammlungsnotiz | #10 |
|
||
| 33 | Eine BGG-Verknüpfung je Konto, mehrfach verknüpfter BGG-Name | #24 |
|
||
| 34 | Zählende BGG-Status, Prioritätsabbildung, Erweiterungen | #25 |
|
||
| 35 | „In Shuffle selbst hinzugefügt“, Dauer der Hervorhebung | #26 |
|
||
| 36 | Datum/Uhrzeit, wählbare Spiele, Offline-Konflikte, Offline im Web | #15, #19 |
|
||
| 37 | Selbst entfernen, Namensvergleich, Gäste löschen, Längenbegrenzung | #16 |
|
||
| 38 | Kooperativer Sieg in Siegquote, Teampunkte, niedrigste Punktzahl gewinnt | #17, #21 |
|
||
| 39 | Mehrere Wertungsbögen, Kategorien löschen, Minus-Kategorien | #18 |
|
||
| 40 | Siegquote ohne eigene Teilnahme, Diagrammzeitraum, Spielzeit | #21 |
|
||
| 41 | Definition Bestwert, Gäste als häufigste Mitspieler | #22 |
|
||
|
||
### D. Querschnitt und fehlende Stories
|
||
|
||
| Nr | Thema | Issues |
|
||
| --- | --- | --- |
|
||
| 42 | Startseite/Dashboard (F18) – keine Story | keinem Issue zugeordnet, Entscheidung Chris offen |
|
||
| 43 | Einstellungsbereich (Sprachwechsel, Abmelden, Hinweis, Konto löschen) – keine Story | keinem Issue zugeordnet, Entscheidung Chris offen |
|
||
| 44 | Admin-Rolle (QUE-07) und Admin-Bereich (QUE-08) – keine Story, von KAT-04/KAT-05 vorausgesetzt | keinem Issue zugeordnet, Entscheidung Chris offen |
|
||
| 45 | E-Mails in R1, Sprache der Mails | #1, #13, #23 |
|
||
| 46 | Diagramme für Screenreader | #21 |
|
||
| 47 | Selbstbestätigung Mindestalter 16 ausreichend? | #1 |
|
||
| 48 | Kennzeichnung fremdsprachiger Katalogtexte | #4 |
|