ec4b6c0b2f
CI / checks (push) Successful in 1m43s
- Django 6.0 mit Einstellungen aus Umgebungsvariablen (SQLite lokal, PostgreSQL im Betrieb) - Pakete engine (reine Spielregeln) und game (Startseite, Health-Check, Worker-Platzhalter) - uv mit Lockfile, ruff, mypy (strict für engine), pytest mit Smoke-Tests - pre-commit-Hooks und vorbereiteter Gitea-Actions-Workflow - Dockerfile und docker-compose (web, worker, db) - README, CLAUDE.md, MIT-Lizenz Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1.8 KiB
1.8 KiB
Hercules Pyloaded – Hinweise für Claude
Python-Neubau des PHP-Browsergames Hercules. Die Altversionen liegen unverändert daneben
(../v001-warpman, ../v002-hercules-reload, ../v003-hercules-rereload) und dienen nur als
Quelle für Spielideen und Balancing-Werte; Code wird nicht übernommen.
Konzept: https://claude.ai/code/artifact/745bf02e-46d7-4087-9f78-d941c55997f1 (Claude Doc, mit den Docs-Werkzeugen lesen). Vor größeren Änderungen an Spielregeln dort nachsehen.
Befehle
uv ist nicht im PATH, daher immer python -m uv run …:
- Tests:
python -m uv run pytest - Lint/Format:
python -m uv run ruff check/python -m uv run ruff format - Typen:
python -m uv run mypy - Server:
python -m uv run python manage.py runserver
Architekturregeln
src/engine/ist reines Python ohne Django-Import,mypy --strict, jede Formel hat Tests.- Views rufen Services auf; Services laden Daten, rufen die Engine, schreiben in einer Transaktion.
- Erweiterbarkeit ist eine harte Anforderung: neue Rohstoffe, Gebäude, Forschungen, Rumpfe und
Bauteile nur über Daten (
data/*.yaml), nie über neue Spalten oder Code. Keine Spalte pro Rohstoff oder Gebäude; Verweise nur über stabile Text-Schlüssel (titan,zentrale). - Wirkungen von Gebäuden und Forschung laufen über das Effekt-System; neuer Code nur für eine neue Effekt-Art.
- Wachstum exponentiell, Parameter pro Eintrag in den Stammdaten.
- Zeitgesteuertes über die Event-Queue (
run_worker); Rohstoffe werden beim Lesen hochgerechnet. - Einstellungen nur über Umgebungsvariablen (
src/config/settings.py,.env.example).
Sprache
Oberfläche, Kommentare, Docstrings und Commit-Nachrichten auf Deutsch. Code-Bezeichner (Klassen, Funktionen, Variablen) auf Englisch.
Repository
Gitea: https://git.pertl-ing.de/ (privat). Push nur nach Freigabe durch den User.