TODO-CODESCENE-OPTIMIERUNG-FUER-CLAUDE.md #1
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Claude-Auftrag: CodeScene-getriebene Sanierung von My Weekly ToDo List
Verwendung
Diesen Auftrag in Claude Code im Repository
My-Weekly-ToDo-Listverwenden.Claude soll zuerst analysieren und einen umsetzbaren Plan vorlegen. Erst nach
expliziter Freigabe des Repository-Owners darf Claude Code veraendern.
Rolle und Ziel
Du arbeitest als erfahrener TypeScript-/React-/Next.js-Refactoring-Engineer am
Projekt My Weekly ToDo List. Verbessere die Wartbarkeit der nachfolgend
belegten CodeScene-Hotspots, ohne sichtbares Verhalten, APIs, Persistenz,
Authentifizierung, Kalender-Synchronisation oder Datenformat zu veraendern.
Das Ziel ist keine kosmetische Aufteilung nach Zeilenzahl und kein Umschreiben
der Anwendung. Das Ziel sind kleine, verifizierbare Refactoring-Schritte, die
Verantwortlichkeiten trennen, komplexe Logik isoliert testbar machen und das
Aenderungsrisiko der haeufig bearbeiteten Dateien senken.
Lies vor jeder Arbeit mindestens:
CLAUDE.mdREADME.mdpackage.jsonHalte den Branch-, Commit-, Versions- und Tag-Prozess aus
CLAUDE.mdein. Wenneine Anweisung dieses Auftrags dazu im Widerspruch steht, weise vor einer
Aenderung darauf hin und frage den Owner.
Belastbare CodeScene-Ergebnisse
Analysezeitpunkt: 2026-09-11, Repository-Stand
dcbcb77(v1.120.1).Gesamtbild:
coverage: null)wichtiger als eine grosse parallele Umstrukturierung
Refactoring-Ziele nach CodeScene
src/components/WeeklyView.tsxsrc/components/CalendarEventModal.tsxsrc/lib/calendar-events.tssrc/components/GridTaskBlock.tsxsrc/lib/apple-calendar.tsCalendarEventModal.tsxfiel innerhalb eines Monats von rund 6,08 auf3,62. Das ist nach der ersten sicheren Entlastung von
WeeklyView.tsxderdringendste Trendbefund.
Weitere niedrige Werte, die erst nach den fuenf empfohlenen Zielen betrachtet
werden sollen:
src/lib/synology-calendar.ts: 3,33src/components/PriorityView.tsx: 3,34src/components/SettingsSidebar.tsx: 3,53 bei 5.215 LOCsrc/app/api/tasks/route.ts: 3,72src/app/api/tasks/sync/route.ts: 3,72Konkrete Befunde in
WeeklyView.tsxCodeScene meldet unter anderem:
fetchUserInfo: Komplexitaet 80, ca. 160 LOC, „Bumpy Road"handleEventSave: Komplexitaet 72fetchProfile: Komplexitaet 52renderKanbanCard: Komplexitaet 36, ca. 129 LOChandleDrop: Komplexitaet 28, ca. 127 LOC, Verschachtelungstiefe 6Positiver Kontext: Die Datei wurde bereits durch Auslagerungen verbessert
(Code Health ca. 1,72 -> 1,93; Komplexitaet sank). Vorhandene Module unter
src/components/weekly/undsrc/lib/weekly/sind weiterzuverwenden. Keinezweite, konkurrierende Komponentenstruktur anlegen.
Weitere konkrete Befunde
CalendarEventModal.tsx: Die Komponente umfasst praktisch die gesamte Dateiund wird als Bumpy Road, Complex Method und Large Method gewertet.
calendar-events.ts: sehr grosse Datei;getCalendarEventsist ein langer,komplexer und stark verschachtelter Ablauf. Auch
updateCalendarEventunddeleteCalendarEvententhalten komplexe Regeln.GridTaskBlock.tsx: Die Hauptkomponente umfasst fast die gesamte Datei undwird als Bumpy Road, Complex Method und Large Method gewertet.
apple-calendar.ts: Brain Method ingetUpcomingEventsBatch, komplexe Logikin
getUpcomingEvents, tiefe Verschachtelung und Duplikation.Zeitliche Kopplung, die bei Modulgrenzen zu beachten ist:
apple-calendar.ts<->calendar-events.ts: 62 %apple-calendar.ts<->synology-calendar.ts: 57 %calendar-events.ts<->outlook-calendar.ts: 44 %CalendarEventModal.tsx<->calendar-events.ts: 38 %api/calendar/events/route.ts<->calendar-events.ts: 42 %Behandle diese Kopplungen als Hinweis auf gemeinsame Vertrage und fachliche
Grenzen, nicht als Auftrag, alle Dateien gleichzeitig umzubauen.
Wichtige Einordnung der Messung
Die CodeScene-Analyse enthaelt auch Dateien, die den Produktcode nicht
repraesentieren, beispielsweise
Version 01/,.opencode/, Debugskripte undtests/debug/. Markdown wurde ebenfalls in grossem Umfang gezaehlt. Leite ausder Gesamtgroesse deshalb keine pauschalen Ziele ab.
package.jsonerscheint wegen der im Projekt vorgeschriebenenVersionsaenderung pro Commit als groesster Aenderungs-Hotspot. Das ist ein
Prozessartefakt und kein Refactoring-Ziel. Veraendere oder schreibe die
Git-Historie nicht um.
package-lock.jsonist ebenfalls kein manuellesOptimierungsziel.
Empfiehl dem Owner separat folgende CodeScene-Excludes und warte auf dessen
Entscheidung; vermische diese Konfigurationsbereinigung nicht mit dem Code-Diff:
Verbindliche Arbeitsweise
1. Bestandsaufnahme und Plan, noch kein Code
Pruefe zuerst:
Lege danach einen phasenweisen Plan vor. Fuer jeden Schritt nenne:
Warte anschliessend auf ein ausdrueckliches Go des Owners.
2. Tests vor jedem Refactoring-Schnitt
CodeScene kennt aktuell keine importierte Coverage. Behaupte deshalb weder,
dass keine Tests existieren, noch dass die Hotspots ausreichend getestet sind.
Ermittle die reale Abdeckung aus dem Repository.
Vor jeder Extraktion muessen relevante Verhaltenstests vorhanden und gruen
sein. Bevorzuge:
node:testfuer pure TypeScript-DomaenenlogikFuehre keine neue Testbibliothek ohne Freigabe des Owners ein. Falls sich eine
React-Komponente mit den vorhandenen Mitteln nicht sinnvoll isoliert testen
laesst, beschreibe Kosten und Nutzen einer Testbibliothek und frage zuerst.
Mindestens zu schuetzende Kernablaeufe:
3. Umsetzungsreihenfolge
Arbeite in kleinen, separat pruefbaren Scheiben:
Phase A -
WeeklyView.tsxstabilisierenin die bestehende Struktur
src/lib/weekly/verschieben.fetchUserInfo,fetchProfile, Task-CRUD, Kalender-CRUD und Sync voneinander trennen. Keine beliebigen
„utils"-Sammeldateien anlegen.
Ziel-/Validierungsregeln separat testen.
handleDropmit Guard Clauses undbenannten Teilablaeufen entlasten.
src/components/weekly/-Struktur extrahieren. Props nach fachlicherVerantwortung schneiden; keine Komponente mit dutzenden Einzel-Props
erzeugen.
vereinheitlichen, wenn sie tatsaechlich dieselbe fachliche Semantik haben.
Nicht die komplette Datei in einem Schritt neu schreiben. Bestehende
Auslagerungen (
TaskItem,ProjectsSidebar,NotesSidebar,TaskInput,VisualsPopover, Datums-/Formatierungshelfer usw.) nicht zurueckdrehen.Phase B - fallenden Trend stoppen
Zerlege
CalendarEventModal.tsxentlang stabiler Verantwortlichkeiten, zumBeispiel Formularzustand/Validierung, Wiederholung, Kalenderauswahl und
Praesentation. Die konkrete Grenze ist aus dem Code abzuleiten. API-Payloads
und Nutzerverhalten muessen identisch bleiben.
Phase C - Kalender-Domaene modularisieren
Teile
calendar-events.tsentlang der tatsaechlichen Verantwortlichkeiten vonLesen/Normalisieren, Erstellen, Aktualisieren, Loeschen und Recurrence auf.
Definiere zuerst durch Tests einen schmalen, typisierten Vertrag. Beachte die
Kopplung zu API-Route, Modal und Provider-Modulen.
Danach
apple-calendar.tsbearbeiten. Wiederverwendbare Provider-Logik nurextrahieren, wenn mindestens zwei Provider nachweislich dieselbe Semantik
haben. Provider-spezifische Fehlerbehandlung, Zeitzonen- und Recurrence-Regeln
nicht durch eine voreilige Abstraktion verwischen.
Phase D - uebrige empfohlene Ziele
GridTaskBlock.tsxentlang von Darstellung, Benutzerinteraktion und purenBerechnungen schneiden. Erst danach anhand einer neuen CodeScene-Analyse
entscheiden, ob
SettingsSidebar.tsx,synology-calendar.tsoder dieTask-Routen als naechstes bearbeitet werden.
Nicht erlaubt
@ts-nocheck, pauschalen Lint-Suppressions oder neuenany-Auswegepackage.json/Lockfile nur wegen des Hotspot-RangsPruefung nach jedem kleinen Schritt
Fuehre, soweit fuer den Schritt relevant, mindestens aus:
Wenn E2E eine externe Umgebung, Zugangsdaten oder Dienste benoetigt, nicht
umgehen oder faelschen. Dokumentiere exakt, was lokal nachgewiesen wurde und
was der Owner in seiner Zielumgebung pruefen muss.
Nach einem fachlich zusammenhaengenden Schritt:
CLAUDE.mdzu Version und Tagbeachten.
Abnahmekriterien
Eine Phase gilt nur dann als erfolgreich, wenn:
wurde
utils.tsals Verschiebebahnhofentstanden ist
besser werden
Fuer die erste
WeeklyView.tsx-Iteration ist nicht „10/10" das Ziel. Realistischist eine klar messbare Reduktion von Dateigroesse, Funktionsanzahl und den
konkreten Komplexitaetsbefunden bei vollstaendig gruenem Verhaltenstest. Nenne
vorab einen begruendeten Zielkorridor; passe ihn nicht nachtraeglich an, nur um
die Phase als erfolgreich zu deklarieren.
Gewuenschtes erstes Ergebnis von Claude
Antworte zunaechst ausschliesslich mit:
Noch keinen Code aendern und noch keinen Commit erstellen. Warte auf das Go.