docs(quick-260921-bi2): Entwickleranleitung auf Endstand 465/386/79 gebracht

Der Lint-Abschnitt trug noch den Zwischenstand aus Aufgabe 1 (754/633/121).
Jetzt der tatsaechliche Endstand nach allen drei Aufgaben, beide Ausnahmen
weiterhin begruendet, plus die namentlich benannten Folgeaufgaben: fuenf
zurueckgestellte a11y-Regeln, die bewusst nicht angewendete
noUselessSwitchCase-Fundstelle, und die vier gemeldeten D-03-Symptomfunde.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TPPB4ApQxzSU1rwV2Ffj9J
This commit is contained in:
2026-09-21 09:43:40 +02:00
parent c79bafa179
commit 97a6836444
+22 -5
View File
@@ -70,11 +70,28 @@ Attrappen hängt und eine Umschreibung viel Bewegung bei null Gewinn wäre. In `
`emitDecoratorMetadata` erzeugten Abhängigkeitsdaten zerstört — Biome räumt das in der eigenen
Regelbeschreibung ein (`biome explain useImportType`, Abschnitt „Caveat with TypeScript
experimental decorators") und rät dort selbst zum Abschalten bei solchen Dekoratoren; der Schaden
würde von keinem Tor dieses Projekts bemerkt, da kein Test `createTestingModule` aufruft. Nach der
Konfigurationsbereinigung steht der Rückstand bei 754 Warnungen (633 in echtem Quelltext, 121 in
Testdateien), Fehlerstufe weiterhin 0 — vorher waren es 2923. Als eigene, benannte Folgeaufgaben
stehen noch aus: ein maschineller Durchgang über die verbleibenden mechanischen Regeln plus toter
Code, und danach ein von Hand gepflegter Durchgang über die Barrierefreiheits-Befunde in `apps/web`.
würde von keinem Tor dieses Projekts bemerkt, da kein Test `createTestingModule` aufruft.
Nach Abschluss des gesamten Vorgangs 260921-bi2 (Konfiguration, maschineller Durchgang plus toter
Code, und von Hand gepflegte Barrierefreiheit) steht der Rückstand bei **465 Warnungen (386 in
echtem Quelltext, 79 in Testdateien)**, Fehlerstufe durchgehend 0 — vorher waren es 2923. Sechs
namentlich benannte Klassen bleiben absichtlich offen, weil jede eine Gestaltungsentscheidung oder
einen Verhaltenswechsel verlangt, den ein reiner Aufräum-Vorgang nicht treffen darf:
`a11y/noNoninteractiveElementInteractions` (11 Fundstellen) und `a11y/noStaticElementInteractions`
(5) verlangen die Entscheidung, ob ein geklickter Bereich eine echte Bedienung wird oder der Klick
verschwindet; `a11y/useKeyWithClickEvents` (5) verlangt einen bisher fehlenden Tastaturweg;
`a11y/noAutofocus` (4) würde den Eingabefokus beim Seitenaufruf verschieben;
`a11y/useAriaPropsSupportedByRole` (5) verlangt einen Blick auf jede Rolle einzeln; und
`complexity/noUselessSwitchCase` (1, in `apps/api/src/tenders/tender-normalizer.service.ts:60`)
wurde bewusst nicht angewendet, weil der Vorschlag eine Fallmarke streichen würde, die einen
Kommentar zur Absicht des Standardzweigs trägt — eine Unterdrückung wäre hier unehrlicher als das
sichtbare Stehenlassen. Dazu vier gemeldete, nicht reparierte Symptome aus dem toten-Code-Durchgang
(D-03): `force-password-change.interceptor.ts` prüft das HTTP-Verfahren nicht, bevor es eine Route
freigibt; `change-password/page.tsx` leitet nach erzwungenem Passwortwechsel nicht weiter und
frischt die Benutzerablage nicht auf; `VehicleTable.tsx` hat keinen Besetztzustand auf der
Löschschaltfläche; `SplitTab.tsx` trägt fest verdrahtete Texte statt Übersetzungen. Alle vier sind
als eigene Folgeaufgaben zu planen.
`pnpm lint` formatiert dabei nichts und besteht auch nicht auf Formatierung; für Formatierung gibt es
getrennt `biome format --write`, das absichtlich von Hand angestoßen wird. Testrunner ist **Vitest**
in beiden Apps (`apps/api/vitest.config.ts`, `apps/web/vitest.config.ts`); für `apps/web` läuft die