# Nexumi – Phasen-Tracking Dieses Dokument hält den aktuellen Implementierungsstand fest. Es wird bei jedem Arbeitsfortschritt aktualisiert. ## Assets - Bot-Logo vorhanden: `docs/logo/nexumi-logo.svg` ## Phase 1 – Fundament (Status: in Arbeit) ### Bereits abgeschlossen - Monorepo-Basis mit Workspaces: - `apps/bot` - `packages/shared` - Basis-Tooling: - TypeScript strict - ESLint - Prettier - Vitest - Turbo - Docker-Compose-Grundstack: - `postgres` mit Healthcheck - `redis` mit Healthcheck - `bot` - `webui`-Scaffold-Service (temporär) - `backups` Volume angebunden - Prisma-Grundmodell inkl. Moderationsdaten: - `Guild` - `GuildSettings` - `User` - `Case` - `Warning` - `ModNote` - `EscalationRule` - Bot-Grundarchitektur: - Sharding-Startpfad - Command-Registrierung - Command-Routing - zentraler Permission-Check - Basis-i18n in `@nexumi/shared` - Guild-Locale-Auflösung über DB-Settings mit Fallback auf Env-Default - Health-Endpoint (`/health`) und token-geschütztes `/metrics`-Scaffold - BullMQ-Integration: - Moderation-Queue - Temp-Ban-Expire-Job - täglicher Backup-Job (`pg_dump`) - Backup-Retention-Cleanup - Moderation als Referenzmodul (implementiert): - `/ban`, `/unban`, `/kick`, `/timeout`, `/untimeout` - `/warn add|list|remove|clear` - `/warn escalation-set|escalation-list|escalation-remove` - `/purge` (Filter: User, Bots, Links, Attachments, Regex) - `/slowmode`, `/lock`, `/unlock` - `/nick set|reset` - `/case view|edit|delete` - `/modnote add|list` - user-facing Reply-Strings im Moderationsfluss auf i18n-Keys umgestellt (`de`/`en`) - Slash-Command-Beschreibungen und Optionstexte lokalisiert (`de` + `en-US` via Discord-Localizations) - Bestätigungsflow für destruktive Aktionen (`/ban`, `/purge`, `/case delete`) mit Buttons - standardisierte Case-Audit-Metadaten über `@nexumi/shared` (`buildCaseMetadata`) - Prisma-Migrationen versioniert: - `apps/bot/prisma/migrations/20260722123000_init` - Tests (aktuell vorhanden): - `packages/shared/src/i18n.test.ts` - `packages/shared/src/audit.test.ts` - `apps/bot/src/modules/moderation/duration.test.ts` ### Noch offen für Phase 1 - `docker compose up -d` End-to-End gegen echte `.env` und Test-Discord-Guild final verifizieren. ### Verifikation (letzter Lauf) - `pnpm prisma:generate` erfolgreich - `pnpm typecheck` erfolgreich - `pnpm lint` erfolgreich - `pnpm test` erfolgreich ## Nächster geplanter Schritt - Phase 1 vollständig abschließen (offene Punkte oben), dann erst nach expliziter Freigabe in Phase 2 wechseln.