From 39a47074ae9bf5f6aaf3b622ea461cbc60f01868 Mon Sep 17 00:00:00 2001 From: smueller Date: Wed, 22 Jul 2026 11:21:08 +0200 Subject: [PATCH] Add documentation requirements and asset respect guidelines to nexumi.mdc - Mandate progress documentation in `docs/PHASE-TRACKING.md` for relevant changes. - Emphasize the importance of respecting and documenting existing project assets, such as the bot logo. --- .cursor/rules/nexumi.mdc | 2 + docs/PHASE-TRACKING.md | 84 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 86 insertions(+) create mode 100644 docs/PHASE-TRACKING.md diff --git a/.cursor/rules/nexumi.mdc b/.cursor/rules/nexumi.mdc index 2b68353..2c6fd65 100644 --- a/.cursor/rules/nexumi.mdc +++ b/.cursor/rules/nexumi.mdc @@ -16,6 +16,8 @@ alwaysApply: true - Keine Stub-Implementierungen, keine `TODO`-Platzhalter, keine auskommentierten Halbfertigteile in abgeschlossener Arbeit. Ein Modul ist fertig, wenn Commands, Datenbank, Jobs und (ab Phase 7) die WebUI-Seite funktionieren. - Das Moderations-Modul aus Phase 1 ist das Referenzmodul. Jedes weitere Modul übernimmt dessen Struktur (Ordnerlayout, Command-Registrierung, Settings-Zugriff, Fehlerbehandlung, Tests) exakt. - Bei Unsicherheit über Discord-API-Verhalten: discord.js-v14-Dokumentation prüfen statt raten. Keine erfundenen Methoden oder Events. +- Fortschritt verpflichtend dokumentieren: `docs/PHASE-TRACKING.md` bei jeder relevanten Änderung aktualisieren (abgeschlossen/offen/manuelle Tests). +- Vorhandene Projekt-Assets respektieren und dokumentieren (z. B. Bot-Logo unter `docs/logo/`). ## Stack (nicht verhandelbar) diff --git a/docs/PHASE-TRACKING.md b/docs/PHASE-TRACKING.md new file mode 100644 index 0000000..657d70d --- /dev/null +++ b/docs/PHASE-TRACKING.md @@ -0,0 +1,84 @@ +# 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` + - 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` +- Tests (aktuell vorhanden): + - `packages/shared/src/i18n.test.ts` + - `apps/bot/src/modules/moderation/duration.test.ts` + +### Noch offen für Phase 1 + +- Vollständige i18n-Auslagerung: + - Alle user-facing Moderations-Strings in Locale-Dateien verschieben (de/en parallel). +- Slash-Command-Bestätigungen für destruktive Aktionen gemäß SPEC-Regel: + - Ban, Purge und weitere destruktive Flows sollen explizite Bestätigungsschritte erhalten. +- Audit-/Case-System weiter härten: + - Einheitliche, nachvollziehbare Audit-Metadaten pro Moderationsaktion. +- Migrations-Workflow finalisieren: + - Neue Prisma-Migration für `EscalationRule` erzeugen und versionieren. +- Setup-Doku erweitern: + - Konkrete Restore-/Backup-Runbook-Schritte mit Beispielbefehlen pro Umgebung. +- `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.