Files
Hercules-Pyloaded/CLAUDE.md
T
Hofei90 ec4b6c0b2f
CI / checks (push) Successful in 1m43s
M0: Projektgerüst für Hercules Pyloaded
- 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>
2026-09-25 11:50:40 +02:00

1.8 KiB
Raw Blame History

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.