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.
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.