mirror of
https://github.com/praktimarc/kst4contest.git
synced 2026-10-19 05:42:58 +02:00
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.
49 lines
2.3 KiB
Markdown
49 lines
2.3 KiB
Markdown
# CLAUDE.md
|
|
|
|
Diese Datei gilt für Claude Code in diesem Repository.
|
|
|
|
## Projektregeln
|
|
|
|
Die fachlichen und stilistischen Regeln stehen in **[AGENTS.md](AGENTS.md)** und
|
|
**[docs/PROJECT_CONTEXT.md](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.
|