Agent Skill
2/7/2026

clean-translations

Remove unused translation keys from all translation files (en, he, sv, ja, es). This skill should be used when cleaning up translations, after removing features, or to reduce translation file size. Finds keys defined but never used via t() calls in the codebase.

O
ohadf2015
0GitHub Stars
1Views
npx skills add ohadf2015/boggle-new

SKILL.md

Nameclean-translations
DescriptionRemove unused translation keys from all translation files (en, he, sv, ja, es). This skill should be used when cleaning up translations, after removing features, or to reduce translation file size. Finds keys defined but never used via t() calls in the codebase.

name: clean-translations description: Remove unused translation keys from all translation files (en, he, sv, ja, es). This skill should be used when cleaning up translations, after removing features, or to reduce translation file size. Finds keys defined but never used via t() calls in the codebase.

Clean Translations

Remove unused translation keys from all language files in the project.

Execution Steps

When this skill is invoked, execute the following steps in order:

Step 1: Preview Changes (Dry Run)

Run the script in dry-run mode to see what would be removed:

node scripts/remove-unused-translations.js --dry-run

Review the output and report the number of unused keys found by namespace.

Step 2: Apply Changes

If the dry run looks correct, apply the changes:

node scripts/remove-unused-translations.js

Step 3: Verify Build

Run the build to ensure no required translations were removed:

npm run build

If the build fails due to missing translations, restore them from git and update the script's ALWAYS_KEEP list.

Step 4: Run Lint

Check for any linting issues:

npm run lint

Step 5: Validate with /complete-translation

After cleaning, invoke the /complete-translation skill to:

  • Validate that all languages have consistent keys
  • Fill any missing translations across language files

Important Notes

  • The script preserves keys in the seo.* namespace (used in metadata)
  • Keys accessed via optional chaining (e.g., translations[lang]?.joinView?.defaultPlayerNames) are in the ALWAYS_KEEP list
  • Dynamic key patterns (achievements, difficulty, etc.) are automatically preserved
  • A report of removed keys is saved to unused-translations-report.txt
Skills Info
Original Name:clean-translationsAuthor:ohadf2015