Files
tessera-ctl/.planning/quick/260907-ipz-anrede-vereinheitlichen-duzen-auf-siezen/260907-ipz-SUMMARY.md
T
schalli 594d6099dd
Tessera CI/CD / Lint & Type Check (push) Successful in 44s
Tessera CI/CD / Tests (push) Successful in 48s
Tessera CI/CD / Build & Publish Images (push) Successful in 1m29s
docs(quick-260907-ipz): Abnahme dokumentiert, Sprachmaengel abgeschlossen
Beide Korrekturen im Browser gegengeprueft. Der aussagekraeftigste Fall ist die
Gruppe "Alle Benutzer" mit zwei Mitgliedern und einer Freigabe: der Dialog schreibt
"2 Mitglieder und 1 Modul-Freigabe" — Mehrzahl und Einzahl im selben Satz, jede Zahl
einzeln richtig. Bei "Vertrieb Innendienst" mit je einem heisst es durchgaengig
Einzahl.

Die vier Du-Stellen sind ebenfalls im Browser bestaetigt: Aktivierungsdialog,
Sperrseite und Marktplatz-Hinweis siezen jetzt. Der Leerzustand der Gruppenliste ist
live nicht erreichbar, weil Gruppen existieren — er bleibt durch den Komponententest
abgedeckt.

Der UAT-Bericht zu Phase 15, in dem beide Maengel urspruenglich notiert wurden, ist
entsprechend nachgezogen. Dort war nur der Aktivierungsdialog als Du-Stelle vermerkt;
bei der Korrektur kamen drei weitere zum Vorschein.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K5jtbGzC5Sf9npJ3JCjKhq
2026-09-07 13:45:37 +02:00

7.0 KiB

quick_id, subsystem, tags, provides, affects, actuals, tech-stack, key-files, key-decisions, requirements-completed, duration, completed, status
quick_id subsystem tags provides affects actuals tech-stack key-files key-decisions requirements-completed duration completed status
260907-ipz i18n
next-intl
icu-plural
de.json
en.json
vitest
Vier deutsche Oberflaechentexte auf Sie-Form umgestellt (leere Gruppenliste, Modul-Aktivierungsdialog, Modul-Sperrseite, Marktplatz-Hinweis)
ICU-Plural fuer memberCount/grantCount im Gruppen-Loeschdialog (de + en), behebt falsche Mehrzahl bei genau 1
Mock-Uebersetzer in groups-page.test.tsx kann jetzt ICU-Plural aufloesen (nach Vorbild der select-Aufloesung in grants-matrix.test.tsx)
Neuer Regressionstest fuer den Einzahl-Fall (memberCount: 1, grantCount: 1)
tokens tasks commits plan_head_before
2409 2 3 04827a4
added patterns
ICU-Plural in next-intl-Nachrichten: `{name, plural, one {# Form} other {# Formen}}`, wie bereits bei admin.ldap...resultSummary etabliert
created modified
apps/web/src/messages/de.json
apps/web/src/messages/en.json
apps/web/src/app/(portal)/admin/groups/groups-page.test.tsx
apps/web/src/app/(portal)/admin/modules/grants/grants-matrix.test.tsx
apps/web/src/components/modules/module-access-gate.test.tsx
Neuer Einzahl-Test wurde angelegt (nicht nur der bestehende Text korrigiert), weil beide bestehenden Loeschdialog-Tests nur mit memberCount:4/grantCount:2 laufen und den Einzahl-Fall nie abgedeckt haetten
Keiner der fuenf bestehenden Test-Fundstellen wurde geloescht — alle wurden auf den neuen Wortlaut nachgezogen
en.json wurde nur fuer den Loeschdialog (Defekt 2) angefasst, nicht fuer die Anrede (Defekt 1) — Englisch kennt die Du/Sie-Unterscheidung nicht
12min 2026-09-07 complete

Quick Task 260907-ipz: Anrede vereinheitlichen (Duzen auf Siezen) und Einzahl korrigieren Summary

Vier duzende deutsche Texte auf Sie-Form umgestellt und die falsche Mehrzahl im Gruppen-Loeschdialog durch echtes ICU-Plural in de.json/en.json ersetzt.

Performance

  • Duration: 12min
  • Commits: 3
  • Files changed: 5

Accomplishments

Task 1: Anrede auf Siezen vereinheitlichen (Defekt 1)

Alle vier bisher duzenden Werte in apps/web/src/messages/de.json wurden auf die Sie-Form umgestellt:

  • admin.groups.noGroupsBody: "Legen Sie Ihre erste Gruppe an, um Modulzugriff gezielt zu vergeben."
  • adminModules.activationDialog.body: "… oder möchten Sie die Freigaben separat konfigurieren?"
  • modules.accessDenied.body: "Sie haben für dieses Modul keine Freigabe. Wenden Sie sich an Ihren Administrator."
  • marketplace.toastNoAccess: "Kein Zugriff auf dieses Modul — wenden Sie sich an Ihren Administrator."

en.json blieb fuer diese Aufgabe unveraendert. Die drei betroffenen Testdateien (groups-page.test.tsx, grants-matrix.test.tsx, module-access-gate.test.tsx) wurden mit ihren Mock-Nachrichten und der einen betroffenen Zusicherung (Leerzustand-Text in groups-page.test.tsx) auf denselben Wortlaut nachgezogen. Kein Test wurde geloescht.

Commit: b701617 — fix(260907-ipz): Anrede in vier deutschen Texten auf Siezen umstellen

Task 2: Ein-/Mehrzahl im Loeschdialog korrigieren (Defekt 2), TDD

RED: Der Mock-Uebersetzer resolve() in groups-page.test.tsx wurde um eine ICU-Plural-Aufloesung erweitert (Regex /\{(\w+),\s*plural,\s*one\s*\{...\}\s*other\s*\{...\}\}/g, nach dem Vorbild der bestehenden select-Aufloesung in grants-matrix.test.tsx). Ein neuer Test 'uses singular wording for exactly one member and one module grant' mit impact: { memberCount: 1, grantCount: 1 } wurde direkt nach dem bestehenden Mehrzahl-Test eingefuegt. Zu diesem Zeitpunkt trug die Mock-Nachricht noch den alten Wortlaut ({memberCount} Mitglieder), sodass der Test nachweislich rot lief mit dem Rendering "Diese Gruppe hat 1 Mitglieder und 1 Modul-Freigaben." — exakt der live beobachtete Defekt. Commit: dee52a2 — test(260907-ipz): failing test fuer Einzahl im Loeschdialog

GREEN: admin.groups.deleteConfirm.body wurde in de.json und en.json auf ICU-Plural umgestellt (memberCount und grantCount je mit eigenem plural-Argument, Zweige one/other, Zahl als #), im selben Stil wie das bestehende admin.ldap.…resultSummary. Die Mock-Nachricht in groups-page.test.tsx wurde wortgleich nachgezogen. Danach liefen alle 12 Tests in der Datei gruen — der neue Einzahl-Test, die beiden bestehenden Mehrzahl-Tests und alle uebrigen. Commit: 3746754 — feat(260907-ipz): ICU-Plural fuer Mitglieder- und Freigabenzahl im Loeschdialog

Kein REFACTOR-Commit war noetig — die Implementierung war bereits minimal.

Verification

  • grep ueber de.json und alle drei Testdateien nach Du-Formen: leer.
  • pnpm --dir apps/web test -- groups-page.test.tsx grants-matrix.test.tsx module-access-gate.test.tsx umlaut-guard.spec.ts — 4 Testdateien, 26 Tests, alle gruen.
  • pnpm --dir apps/web test (volle Suite) — 38 Testdateien, 226 Tests, alle gruen.
  • pnpm --dir apps/web run type-check — tsc --noEmit, keine Fehler, keine Ausgabe.
  • Schluesselsatz-Parität de.json/en.json: 787 Schluessel identisch (Node-Skript, beide Richtungen leer).
  • grep -c 'memberCount, plural' und grep -c 'grantCount, plural': je genau 1 Treffer in beiden Sprachdateien.

Deviations from Plan

None - plan executed exactly as written.

Known Stubs

None.

TDD Gate Compliance

RED-Commit (test(260907-ipz): ...) und GREEN-Commit (feat(260907-ipz): ...) sind in dieser Reihenfolge im Git-Log vorhanden. Kein Gate-Verstoss.

Not Yet Verified (Human/Browser)

Die im Plan genannte Sichtpruefung im Browser (Docker-Rebuild + manuelle Pruefung aller vier Textstellen plus des Loeschdialogs auf Deutsch und Englisch) wurde bewusst NICHT von diesem Executor durchgefuehrt — das obliegt laut Ausfuehrungsauftrag dem Orchestrator/User.

Abnahme im Browser am 2026-09-07 — alle sechs Punkte bestanden

Web neu gebaut, echter Chrome, beide Konten.

Prüfpunkt Ergebnis
Löschdialog "Vertrieb Innendienst" (1 Mitglied, 1 Freigabe) „Diese Gruppe hat 1 Mitglied und 1 Modul-Freigabe."
Löschdialog "Alle Benutzer" (2 Mitglieder, 1 Freigabe) „Diese Gruppe hat 2 Mitglieder und 1 Modul-Freigabe." — Mehrzahl und Einzahl im selben Satz, beide richtig
Aktivierungsdialog „… oder möchten Sie die Freigaben separat konfigurieren?"
Sperrseite als nutzer2 „Sie haben für dieses Modul keine Freigabe. Wenden Sie sich an Ihren Administrator."
Marktplatz-Hinweis als nutzer2 „Kein Zugriff auf dieses Modul — wenden Sie sich an Ihren Administrator."
Duz-Formen irgendwo in de.json keine mehr (Wortgrenzen-Suche über alle Werte)

Der gemischte Fall bei "Alle Benutzer" ist der aussagekräftigste: er zeigt, dass die Pluralregel je Zahl einzeln greift und nicht pauschal auf eine Form umschaltet.

Der Leerzustand der Gruppenliste (admin.groups.noGroupsBody) ist live nicht erreichbar, weil Gruppen existieren — er bleibt durch den Komponententest abgedeckt.