DOC/ Aktualisiert am 2026-09-19
Entwicklung
Setup, Befehle und der Beitrags-Workflow dieses Repos.
- Node.js 24 oder neuer
- pnpm 12 (über
packageManagerin package.json gepinnt)
pnpm install
pnpm dev # turbo dev: Web-App mit HMR
pnpm type-check # turbo type-check über das ganze Monorepo
pnpm lint # eslint (next + typescript Regeln), null Warnings
pnpm test # turbo test (vitest)
pnpm build # Produktions-Build nach apps/web/.next
Alle Checks müssen vor dem Push bestehen: pnpm lint mit null Fehlern,
pnpm type-check mit null Fehlern, pnpm format:check ohne Unterschiede
und ein erfolgreicher pnpm build.
- UI-Strings:
packages/i18n/messages/en.jsonbearbeiten, dann die anderen sechs Sprachdateien übersetzen. Die Schlüsselstruktur identisch halten. - Docs:
packages/content/docs/en/<slug>.mdbearbeiten, dann die Übersetzungen aktualisieren. Fehlende Übersetzungen fallen automatisch auf Englisch zurück. - Nach Änderungen an Messages oder Docs
pnpm buildausführen und jede Sprachroute im Browser prüfen.
Commits im Repository werden mit der GitLab-Identität des Projekteigentümers erstellt, damit CI-Jobs mit Identitätsprüfung laufen, und jeder Commit trägt einen Co-Author-Trailer:
Co-authored-by: Ella Mizuki
Das ist erforderlich, damit die Pipeline läuft; siehe deployment.md.
main ist geschützt: Push durch Maintainer, Force Push deaktiviert.
History-Umschreibungen (etwa das Neu-Zuweisen von Commit-Autoren)
erfordern, den Schutz vorübergehend zu entfernen, den Force Push zu machen
und ihn mit exakt denselben Einstellungen wiederherzustellen.
Die in .gitlab-ci.yml definierte Pipeline führt vier Jobs aus:
qualityLint und Typecheck;semgrep-sastSicherheits-Scan (Template);buildProduktions-Build mit Artefakt;secret_detectionSecret-Scan (Template).
Das pnpm-Setup ist auf die Jobs quality und build beschränkt. Die
Bilder der Sicherheits-Templates enthalten kein corepack und dürfen es
nicht erben.
Die Validierung ist:
- Lint, Typecheck, Build;
- Browser-Durchlauf bei 375, 768, 1024, 1440 und 1920px mit null horizontalem Overflow, in allen Sprachen;
- Reduced-Motion-Durchlauf: kein Shimmer, keine aktiven Übergänge, Inhalt sichtbar;
- Anker-Navigation räumt den fixen Header frei (Scroll-Padding);
- Doc-Routen lösen in allen Sprachen auf, einschließlich Englisch-Fallback.