From 1b5cce36216fb5f4ccc941d12ab49f16b4f2819d Mon Sep 17 00:00:00 2001 From: Mao Nakamoto <41178744+maonakamoto@users.noreply.github.com> Date: Tue, 28 Jul 2026 11:34:09 +0200 Subject: [PATCH] ci(umlauts): enforce lint:umlauts gate in CI and pre-deploy MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Swiss umlaut convention (display text keeps ä/ö/ü; only code identifiers/slugs may use ASCII ue/oe/ae) was enforced only when someone ran `npm run lint:umlauts` by hand. Wire it into the CI quality job and the pre-deploy checks so the class of bug is gated on every PR, push, and deploy instead of relying on memory. Gate currently passes clean (exit 0), so no behavior change today. Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/ci.yml | 5 +++++ .github/workflows/deploy-selfhost.yml | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8010cec37..ee48db8f7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -33,6 +33,11 @@ jobs: - name: Run ESLint run: npm run lint + # Enforces the Swiss umlaut convention (display text keeps ä/ö/ü; only + # code identifiers/slugs may use ASCII). Was manual-only before — now gated. + - name: Check umlauts + run: npm run lint:umlauts + - name: Type check run: npx tsc --noEmit diff --git a/.github/workflows/deploy-selfhost.yml b/.github/workflows/deploy-selfhost.yml index 5a09a86f6..22ea8420e 100644 --- a/.github/workflows/deploy-selfhost.yml +++ b/.github/workflows/deploy-selfhost.yml @@ -70,6 +70,10 @@ jobs: if: steps.secrets.outputs.configured == 'true' run: npm run lint + - name: Check umlauts + if: steps.secrets.outputs.configured == 'true' + run: npm run lint:umlauts + - name: Type check if: steps.secrets.outputs.configured == 'true' run: npm run typecheck