Skip to content

#15 i18n Full-Rollout — Session 0: coverage scanner + parity gate (tooling)#58

Merged
WolfTasks merged 9 commits into
mainfrom
worktree-i18n-rollout-session0
Jul 13, 2026
Merged

#15 i18n Full-Rollout — Session 0: coverage scanner + parity gate (tooling)#58
WolfTasks merged 9 commits into
mainfrom
worktree-i18n-rollout-session0

Conversation

@WolfTasks

Copy link
Copy Markdown
Owner

Was & Warum

Session 0 des i18n Full-Rollouts (#15, Folge zu #13 Fundament+Pilot). Diese Session liefert nur die Werkzeuge, die den mehrsession-Rollout objektiv auf „100% lokalisiert" zwingen — keine Feature-String-Extraktion, keine Backend-Änderung.

Mechanik (objektive 100%-Ziellinie)

  • Hardcoded-String-Scanner (frontend/scripts/i18n-scan*.mjs) über die TypeScript-Compiler-API — abhängigkeitsfrei (kein ESLint-Stack; nutzt das bereits installierte typescript, passend zur strengen Supply-Chain-Haltung des Repos). Erkennt JSX-Text-Kinder, String-/Template-Literal-Werte der Attribute placeholder/title/aria-label/alt/label und String-/Template-Literal-JSX-Expression-Kinder.
  • Baseline-Allowlist (frontend/scripts/i18n-allowlist.json, 66 Dateien) — CI ab jetzt grün; jede Folge-Session streicht ihre Dateien daraus. Leere Allowlist + Scanner grün = 100%. Neue/un-gelistete .tsx-Dateien sind sofort scanner-pflichtig (Regressionsschutz).
  • en/de-Key-Paritätscheck (frontend/scripts/i18n-parity*.mjs).
  • CI-Gate: neue Schritte test:i18n + lint:i18n im frontend-build-Job (vor dem Build).

Commits

Verifikation

  • npm run test:i18n17/17 grün · npm run lint:i18n → Scanner OK (0 Verstöße außerhalb Allowlist), Parität OK · npm run build (tsc + Vite) grün.
  • SDD subagent-driven: Task-Review nach jedem Task + finales Whole-Branch-Review (opus) = merge-ready, keine Critical/Important offen.

Nicht in dieser Session

Feature-String-Extraktion (startet Session 1 = issues), Backend-MessageSource (separater Eintrag #16). Reihenfolge & DoD: Master-Spec docs/superpowers/specs/2026-07-13-i18n-full-rollout-design.md; Plan docs/superpowers/plans/2026-07-13-i18n-full-rollout-session0-tooling.md.

Zurückgestellte Minor (aus Reviews, nicht blockierend)

Allowlist-Shrink-only nicht maschinell erzwungen (Konvention + Review); walk() withFileTypes; Parität-Bad-JSON = rohe SyntaxError (bricht Build trotzdem korrekt); Stale-Allowlist-Eintrag-Warnung; kind-Asserts/Later-Span-Test für die neuen Detection-Tests.

🤖 Generated with Claude Code

Wolfgang Kozian and others added 9 commits July 13, 2026 17:39
…amespace)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…anner correction

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Adds the CLI wrapper around findViolations (Task 1) that walks
frontend/src/**/*.tsx, skips allowlisted files, and exits non-zero
on violations; --init regenerates the baseline allowlist. Also wires
up the scan:i18n / scan:i18n:init / check:i18n / test:i18n / lint:i18n
npm scripts.

AppLayout.tsx (one of the 8 already-localized pilot files) surfaced
as an offender during --init: the "TaskWolf" brand/logo text in the
sidebar. Marked it with an i18n-ignore comment since a brand name is
non-UI content, not translatable copy. Re-ran --init afterward; all
8 pilot files are now absent from the allowlist and scan:i18n is
green (0 hardcoded strings, 66 files still allowlisted).
@WolfTasks
WolfTasks merged commit c80f31c into main Jul 13, 2026
11 checks passed
@WolfTasks
WolfTasks deleted the worktree-i18n-rollout-session0 branch July 24, 2026 10:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant