Files
kst4contest/CLAUDE.md
T
Rsclub2_2 63380eb7db Remove the implementation plans now that every stage is executed
Thirteen plans, all of them step-by-step instructions for work that is committed. A plan left
behind reads to the next person like an open intention, and these describe a build that no
longer exists -- the first still explains how to introduce Gradle.

The specifications stay. They say why the architecture is what it is, which the code cannot,
and three of them are still argued from. The live-findings note stays too: CLAUDE.md sends
people to it, and its hardest lesson -- that a blocking wait on the AWT event thread deadlocks
the interface while the build stays green -- is written down nowhere else.

Its sweep script stays as well. The note argues explicitly that the script belongs beside the
finding so the next reader can measure rather than believe, and removing it would contradict
the reasoning it illustrates.

Two references in the note and one in the JavaFX-removal spec pointed at plans and now say
where the reasoning went instead.
2026-10-05 22:36:02 +02:00

52 lines
2.6 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 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/` und bleiben: sie sagen, **warum** die
Architektur so ist, und das steht nirgends sonst. Umsetzungspläne werden nach der Ausführung
entfernt — sie sind Arbeitsanweisungen für erledigte Arbeit, und ein liegengebliebener Plan
liest sich für den Nächsten wie eine offene Absicht. Was aus ihnen zu behalten war, steht in
den Commit-Nachrichten und in `docs/PROJECT_CONTEXT.md`. 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.