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