mirror of
https://github.com/praktimarc/kst4contest.git
synced 2026-10-19 13:53:01 +02:00
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.
52 lines
2.6 KiB
Markdown
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.
|