Files
kst4contest/CLAUDE.md
T
Rsclub2_2 06446cf1d8 Document the two languages, and how to contribute a third
Both manuals get the language picker in full: where it sits, that it applies per profile and
takes effect at once in every open window, and -- at more length -- what is deliberately left
alone and why. An operator who sees an English beacon text in a German client should be able
to read that it is meant that way.

The contribution route is written down in both, because plain text files are only useful if
somebody knows they are there: copy, translate, submit; a partial file is welcome; the build
reports mistakes by file name and writes a worksheet of what is still missing.

PROJECT_CONTEXT records the decisions that outlive this stage -- the four kinds of text and
the rule that the addressee decides, that core produces no display text, that incompleteness
is allowed and incorrectness is not, that anything built outside a composition needs its text
read inside one, and that a column id is never translated.

CLAUDE.md said two modules; there are three, and the third never ships. It also states the
German orthography now, which this session got wrong across a spec and two plans: ss after a
short vowel, so muss and dass.
2026-10-05 22:36:01 +02:00

2.3 KiB

CLAUDE.md

Diese Datei gilt für Claude Code in diesem Repository.

Projektregeln

Die fachlichen und stilistischen Regeln stehen in AGENTS.md und docs/PROJECT_CONTEXT.md. Beide sind verbindlich und werden hier nicht wiederholt. Besonders wichtig: Kommunikation auf Deutsch, Quelltextkommentare und Javadoc auf Englisch, und das Konzept-vor-Umsetzung-Vorgehen aus dem Abschnitt „Mandatory interaction rule" in AGENTS.md.

Subagenten

Subagenten (Agent-Tool) dürfen ohne Rückfrage genutzt werden, wenn eine Aufgabe davon profitiert — insbesondere für Abschlussprüfungen ganzer Zweige und für umfangreiche Umbauten, bei denen ein frischer Blick pro Teilaufgabe etwas wert ist.

Nicht sinnvoll bei kleinen, aufeinander aufbauenden Schritten: dort liest jeder neue Subagent die Codebasis von null und kostet mehr, als er beiträgt.

Build

Gradle, nicht Maven. ./gradlew clean build, Java 21. Das Projekt besteht aus drei Modulen: core (Fachlichkeit), app-desktop (Oberfläche) und i18n-generator (reines Bauwerkzeug, das aus den Übersetzungsdateien Kotlin erzeugt und nicht ausgeliefert wird). Paketnamen sind über core und app-desktop hinweg dieselben.

Sprache

Kommunikation mit Marc auf Deutsch, in neuer Rechtschreibung — muss und dass, nicht muß und daß. Quelltextkommentare und Javadoc bleiben ausschließlich Englisch.

Oberflächentexte stehen seit Etappe 9 in app-desktop/src/main/i18n/strings_<code>.properties und nicht mehr im Quelltext. Wer dort etwas ändert: der Erzeuger prüft beim Bau, und die Regel, was übersetzt wird, steht in docs/PROJECT_CONTEXT.md unter „Important Decisions".

Laufende Arbeit

Spezifikationen liegen unter docs/superpowers/specs/, Umsetzungspläne unter docs/superpowers/plans/. Die Ablösung von JavaFX durch Compose Multiplatform ist abgeschlossen: unter src/main steht kein javafx. mehr, und org.openjfx ist aus app-desktop/build.gradle.kts und gradle/libs.versions.toml entfernt. Die Begründungen und die harten Lehren stehen in docs/superpowers/notes/2026-10-01-javafx-lebendbefund.md; die wichtigste: ein blockierendes Warten auf dem AWT-Ereignisfaden verklemmt die Oberfläche, und der grüne Build sagt über Fadenzugehörigkeit nichts.