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>
40 lines
1.8 KiB
Markdown
40 lines
1.8 KiB
Markdown
# 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.
|