Files
kst4contest/CLAUDE.md
T
Rsclub2_2 cc8c90204e Draw the whole interface in Compose
Etappen 3 to 6a of the migration (129 commits). Every window the operator sees
is Compose; the JavaFX ones still exist beside them so the two could be
compared against a live session, which is the only way the differences came to
light.

The toolchain first, then the settings window with its eleven tabs and 72 real
preferences; then the multi-column table as a component, and with it the rules
it needs -- stable row identity, a selection that survives a refresh, column
order the operator can drag, and a repaint when the rows change rather than
when the list instance does. Then the update and monitor windows, and the main
window: 22 station columns, the filter bar, the selected-station panel, the
message tabs, the priority bar, the sked controls, the status indicators and
the timeline, assembled behind a splitter because Compose has none.

The map stops being a WebView. A Compose canvas projects WebMercator tiles
itself, with the clustering in core and an asynchronous fetcher in place of the
local tile proxy; derive() becomes a pure Kotlin reimplementation instead of a
reflection call into com.sun.javafx.

Most of the volume here is parity the operator would notice rather than new
behaviour: desktop density instead of Material's phone minimums, colours taken
from the JavaFX stylesheets instead of Material's palette, row dividers, band
columns, grid-square labels and their colours, the home marker and antenna
beam, pinch-to-zoom under Wayland, and layouts that survive a window narrower
than the chart they stack.

Two lessons are worth more than the diff. A control bound to a value Compose
cannot observe writes through and never redraws -- that one shipped repeatedly
with a green build, because no test drew anything. And a layout that clips
instead of wrapping is worse than one that is merely too narrow: half a word
is the worst available outcome.
2026-10-05 22:33:28 +02:00

1.4 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 zwei Modulen: core (Fachlichkeit) und app-desktop (Oberfläche). Paketnamen sind über beide Module hinweg dieselben.

Laufende Arbeit

Spezifikationen liegen unter docs/superpowers/specs/, Umsetzungspläne unter docs/superpowers/plans/. Der aktuelle Umbau ist die Ablösung von JavaFX durch Compose Multiplatform in neun Etappen; Etappe 1 (Gradle, zwei Module, JPMS raus) ist abgeschlossen.