# Codex Instructions – helldivers ## Pflichtlektüre vor dem ersten Code-Zugriff Lies **PROJECT_MAP.md** in diesem Verzeichnis – sie enthält alle Funktionen, API-Routen, WebSocket-Message-Types, State-Struktur und Datenbank-Details. ## Projekt-Überblick - **Port:** 3012 - **Typ:** Authenticated Multiplayer App (WebSocket, SQLite, ELO-Rating) - **Stack:** Node.js / Express, WebSocket (ws), SQLite (better-sqlite3), bcrypt, Helmet, rate-limit, Vanilla JS - **Features:** Stratagem-Trainer (Timed/Endless/Drill/Speedrun), 1v1-Multiplayer-Matches, ELO-Rangliste, Tages-Challenge, Admin-Panel ## Struktur ``` helldivers/ ├── server.js # Express + WebSocket + SQLite (~650 Zeilen) ├── public/app.js # Gesamte Client-Logik (~1840 Zeilen) ├── public/styles.css ├── public/index.html ├── scripts/ # DB-Migrations / Seed └── data/helldivers.db # SQLite (Scores, Users, History, Sessions) ``` ## Git-Workflow 1. Branch: immer `bugfixes-features` für Änderungen 2. Commit: `type: kurze Beschreibung` – **keine Co-Authored-By-Zeile** 3. Vor Commit: `CHANGELOG.md` aktualisieren 4. Vor Commit: `PROJECT_MAP.md` aktualisieren, falls Funktionen/Routen/WS-Types geändert wurden 5. `git add` nur einzelne Dateien – kein `git add -A` 6. Merge nach `main` nur auf explizite Anweisung ## Sicherheit - Niemals `data/helldivers.db` committen ## Release-Automation - **Version ist Single Source of Truth:** `package.json` - **Cache-Busting nie manuell pflegen** – stattdessen `npm run release:sync` - **Vor jedem Commit zusätzlich:** `npm run release:verify` - Repo-Hook: `.githooks/pre-commit` führt `release:sync` und `release:verify` automatisch aus - Für Versionssprünge: `npm run release:bump:patch`, `release:bump:minor` oder `release:bump:major`