- Datenmodell + eigene Migration 0001_neuheiten_tabelle (Tabelle neuheiten: Titel, Verlag, Autor, Erscheinungsjahr, BGG-ID, Status 'neuheit', Quelle, Zeitstempel; bgg_id eindeutig als Merge-Kriterium) - BoardGameGeek XML API2-Client (search + thing, Batches à 20 IDs): Rate-Limit >= 1 s zwischen Requests, Retry mit exponentiellem Backoff bei 5xx/429/Netzwerkfehlern, HTTP 202 gemäß Retry-After, robustes XML-Parsing; Transport/Uhr/Sleep injizierbar (keine echten Calls in Tests) - Filter: Erweiterungen (boardgameexpansion) auf Request- und Elementebene ausgeschlossen; Prototypen per Titel-Heuristik (BGG hat keinen Marker) - Sync-Service mit Update-statt-Duplikat-Logik über die eindeutige BGG-ID (Status bleibt erhalten); Fehler je Suchbegriff brechen den Lauf nicht ab - APScheduler-Hintergrundjob (Standard 24 h) mit Überlappungsschutz, abschaltbar/intervallkonfigurierbar per Env; manueller 'Jetzt synchronisieren'-Endpunkt nur für Admin/Redakteur, optional mit Sofort-Suchbegriff - UI /neuheiten: sortier-/filterbare Tabelle mit Volltextsuche (HTMX-Teilladung, noscript-fähig), deutsche Oberfläche, BGG-Links, Ergebnis-Banner - Plugin-Loader: idempotentes Laden (Modul-Caching), damit mehrere create_app()-Aufrufe dieselben Plugin-Klassen/Tabellen nutzen - Tests: Parsing, Erweiterungs-/Prototyp-Filter, Rate-Limit/Backoff/202, Update-statt-Duplikat, Rollen am Sync-Endpunkt, Scheduler-Lifecycle — ausschließlich mit gemockten BGG-Antworten (uv run pytest: 96 grün) - README/AGENTS: Plugin-Doku, Env-Variablen, Fortschrittstabelle aktualisiert
1.1 KiB
1.1 KiB
Spiele-Redaktion
Ziel
Multi-User-Webanwendung „KI-Assistenz für Spielemagazin-Redaktionen": Neuheitenliste (BGG), Dedup-Prüfungen, Planungsliste, Archivierung, Erinnerungen, Benachrichtigungen (E-Mail/Telegram/In-App), Audit-Log, Export.
Status
Kern mit Plugin-System/Auth/Migrationen fertig; audit-log,
benachrichtigung und neuheiten (BGG-Sync) vollständig implementiert;
übrige Plugins Stubs.
Live-Status: README.md → „Projekt-Fortschritt“.
Struktur
| Pfad | Inhalt |
|---|---|
| PROMPT.md | Ursprünglicher Projekt-Prompt (freigegebene Fassung) |
Konventionen
- Stack: FastAPI + Plugin-Architektur (Entry-Points/Namensraum-Pakete), SQLite→Postgres-fähig, HTMX + Jinja2 + Tailwind + Alpine.js
- Jede Funktion = Plugin mit eigener Migration/Routen/Templates; Kern schlank
- UI: Deutsch. Rollen: Admin/Redakteur vs. Rezensent
- Deployment: Docker/Podman Compose, portabel (Lab → Kundenhardware)
Für KI-Agenten
Zuerst PROMPT.md lesen — enthält die vollständigen Anforderungen. Plugin-Kontrakt nicht umgehen: keine Feature-Logik im Kern.