Agent skill

I18n Before Release

by letehaha in letehaha/moneymatter

Occasional i18n catch-up: strip unused en keys, then fill any uk translations that slipped through via i18n-editor subagents.

AGPL-3.0Auto-check passedFrontend & Design

Install I18n Before Release

skills CLI
$ npx skills add letehaha/moneymatter --skill i18n-before-release -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install letehaha/moneymatter i18n-before-release --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/letehaha/moneymatter.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/i18n-before-release .claude/skills/i18n-before-release && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
i18n-before-release
GitHub stars
163
Token cost
~1.1k tokens
SKILL.md length
537 words
Files
2
Skills in repo
10
Repo updated
First seen
Licence
AGPL-3.0

At a glance

Occasional i18n catch-up: strip unused en keys, then fill any uk translations that slipped through via i18n-editor subagents.

  • Works in 6 steps: Find unused en keys → Confirm and strip → Find missing translations → …
  • /i18n-before-release
  • Runs JavaScript scripts from its folder; calls node, git and npm
  • Fill missing translations

What it does

I18n Before Release is an agent skill from letehaha/moneymatter. Occasional i18n catch-up: strip unused en keys, then fill any uk translations that slipped through via i18n-editor subagents. Not a required release step – uk is translated alongside en during feature work, so this is a safety net. Trigger on "/i18n-before-release", "actualize i18n", "fill missing translations", "strip unused translation keys".

Its SKILL.md is about 1.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file.

It sits in Frontend & Design, covering Internationalization and Translation. The repository describes itself as: Open-source, self-hosted budget tracker and personal finance app. Bank sync, multi-currency, investments, and a built-in MCP server for Claude and ChatGPT. The licence is AGPL-3.0.

When your agent uses it

  • /i18n-before-release
  • Fill missing translations
  • Strip unused translation keys

Example prompts

  • “/i18n-before-release”
  • “actualize i18n”
  • “fill missing translations”
  • “/i18n-before-release”

Requirements

  • Node.js

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Find unused en keys
  2. Confirm and strip
  3. Find missing translations
  4. Translate via i18n-editor subagents
  5. Verify
  6. Wrap up

What it can do on your machine

Read from SKILL.md and the folder at commit 3bcd627. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships script files (JavaScript), which the agent can run.

    Shell commands in SKILL.md call:

    • node
    • git
    • npm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git and npm, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

I18n Before Release loads about 1.1k tokens when it runs. Until then it costs about 92 tokens; SKILL.md has 537 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~92
When it runs · the whole SKILL.md, loaded when a task matches
~1.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from letehaha/moneymatter at commit 3bcd627, republished under its AGPL-3.0 licence (© letehaha). 537 words, ~1,139 tokens.

Download SKILL.mdSave it as .claude/skills/i18n-before-release/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
i18n-before-release
description
Occasional i18n catch-up: strip unused en keys, then fill any uk translations that slipped through via i18n-editor subagents. Not a required release step – uk is translated alongside en during feature work, so this is a safety net. Trigger on "/i18n-before-release", "actualize i18n", "fill missing translations", "strip unused translation keys".

Occasional i18n catch-up (a safety net, not a required release step – uk is translated alongside en during feature work): strip unused en keys, then fill any missing translations in the in-house translated locales. All key detection is done by .claude/skills/i18n-before-release/i18n-audit.mjs (run from repo root) — never parse or diff locale JSON files yourself, and never read locale files directly (a hook blocks them; only the i18n-editor subagent may touch them).

Steps

1. Find unused en keys
bash
node .claude/skills/i18n-before-release/i18n-audit.mjs unused

The report has two buckets:

  • UNUSED — the full key (with plural suffixes stripped) appears nowhere in packages/{frontend,backend}/src. Candidates for removal.
  • POSSIBLY DYNAMIC — only matched via dynamic key construction (template literals, 'prefix.' + concatenation). Treat these as used; do NOT review or strip them. Only mention the count.

Sanity-check the UNUSED bucket: pick ~5 keys from it and grep the codebase for each (search the full dotted path and the leaf segment). If any spot-check finds a real usage the script missed, STOP and report the gap to the user instead of stripping.

2. Confirm and strip

Show the user the UNUSED count and a compact list (key ids only), then ask via AskUserQuestion whether to strip all of them, skip stripping, or let them pick exclusions. On approval:

bash
# write approved ids (fe:/be: prefixed, one per line) to a scratchpad file, then:
node .claude/skills/i18n-before-release/i18n-audit.mjs strip --keys-file <scratchpad-file>
node .claude/skills/i18n-before-release/i18n-audit.mjs prune-extra

strip removes the keys from en and mirrors the removal into every other locale. prune-extra then drops any non-en keys/files that have no en counterpart.

3. Find missing translations
bash
node .claude/skills/i18n-before-release/i18n-audit.mjs missing

missing only ever reports the locales in the script's TRANSLATED_LOCALES set (uk). Every other locale — es, id, both Chinese variants, anything added later — is community-translated in Crowdin and is deliberately not our work. Never widen the pass to a locale the script omits, and never hand a subagent a locale code it didn't report.

If nothing is missing, skip to step 5.

Show full SKILL.md (244 more words)Show less
4. Translate via i18n-editor subagents

Spawn one i18n-editor subagent per locale reported in step 3, in parallel (they edit disjoint file trees). Prompt for each:

This is an explicit pre-release bulk-translate pass into locale <code> — editing non-en locale files IS the assignment; treat en as read-only source. Run node .claude/skills/i18n-before-release/i18n-audit.mjs missing --json --locale <code> from the repo root to get your full work list: every missing key with its target file (frontend chunk path relative to packages/frontend/src/i18n/locales/chunks/<code>/, or packages/backend/src/i18n/locales/<code>.json for backend) and the en source value. Translate each value into <code> and insert it at the same key path, preserving {named} interpolation placeholders, @: linked-message references, and vue-i18n | plural separators verbatim in structure. Read files with cat -n (Read tool is hook-blocked), edit with Edit, validate JSON after. Report a per-file count of added keys.

Translation quality notes: match the tone of existing translations in the same file; domain terms (account, transaction, portfolio, holding) should reuse the wording already established in that locale.

5. Verify
bash
node .claude/skills/i18n-before-release/i18n-audit.mjs missing

Must print "All locales are complete". If keys remain, re-spawn the affected locale's subagent once with the remaining list; if it still fails, report which keys are stuck instead of retrying further. (This run also re-parses every locale file, so it doubles as JSON validation.)

6. Wrap up

Report: keys stripped, keys pruned, keys translated per locale. Remind the user to review git diff, commit themselves (never commit for them), and run npm run i18n:crowdin:upload to sync translations to Crowdin.

© letehaha, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in .claude/skills/i18n-before-release of letehaha/moneymatter.

  • SKILL.md
  • i18n-audit.mjs

Open the folder on GitHubat commit 3bcd627

Compare with similar skills

I18n Before Release next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

I18n Before Release compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
I18n Before Release this skillletehaha/moneymatter163—~1.1kAutomated safety check: PassAGPL-3.0
Chatbox i18n Translatorchatboxai/chatbox42k—~508Automated safety check: PassGPL-3.0
Internationalization Workflow with i18niOfficeAI/AionUi33k1 repos~1.9kAutomated safety check: PassApache-2.0
Enforce Rules For I18nmoeru-ai/airi50k—~1.5kAutomated safety check: PassMIT
Claude Desktop Chinese Localizationjavaht/claude-desktop-zh-cn7.5k—~1.6kAutomated safety check: PassMIT
Translation ReviewDevolutions/UniGetUI26k—~1.3kAutomated safety check: PassMIT

Similar skills

  • Chatbox i18n Translator

    chatboxai/chatbox

    Translates new or changed i18n keys from a Chatbox Pro diff, staged changes or a commit range, writing the locale JSON files directly with a built-in glossary.

    42k GitHub stars~508 tokensUpdated 16 days ago
    Frontend & DesignAuto-check passed
  • Standards for keeping all user-facing text translatable: read the i18n config first, use namespaced keys, reuse shared strings and follow the key naming rules.

    33k GitHub starsUsed in 1 repo~1.9k tokens
    Frontend & DesignAuto-check passed
  • Review pending AIRI translations on Crowdin in a batch, then sync them into the repository.

    50k GitHub stars~1.5k tokensUpdated today
    Frontend & DesignAuto-check passed
  • Claude Desktop Chinese Localization

    javaht/claude-desktop-zh-cn

    Adds missing Simplified and Traditional Chinese translations to the Claude Desktop Chinese patch across three layers, then checks how many mappings actually hit.

    7.5k GitHub stars~1.6k tokensUpdated 5 days ago
    Frontend & DesignAuto-check passed
  • Translation Review

    Devolutions/UniGetUI

    Reviews UniGetUI .json language files for localization quality, detects parity issues, English-equal entries, wrong-script content, and cross-language outliers, then generates a dataset for…

    26k GitHub stars~1.3k tokensUpdated yesterday
    Frontend & DesignAuto-check passed
  • Frontend I18n

    langflow-ai/langflow

    Add, change, or review user-facing text in the Langflow frontend using the i18n system (i18next / react-i18next).

    155k GitHub stars~1k tokensUpdated yesterday
    Frontend & DesignAuto-check passed

More from letehaha/moneymatter

All 10 skills in this repo
  • Spec Planner

    letehaha/moneymatter

    Deep-dive specification planner. An agent skill from letehaha/moneymatter.

    163 GitHub stars~1.8k tokensUpdated today
    Auto-check: notes
  • Add MCP Tool

    letehaha/moneymatter

    Add a new tool to the MoneyMatter MCP server. An agent skill from letehaha/moneymatter.

    163 GitHub stars~1.9k tokensUpdated today
    Auto-check: notes
  • Find Slop

    letehaha/moneymatter

    Hunt "AI slop" in this codebase — duplication, reinvented wheels, over-engineering, defensive cruft, dead code, comment slop, performance antipatterns.

    163 GitHub stars~3k tokensUpdated today
    Auto-check passed
  • Frontend Rules

    letehaha/moneymatter

    Frontend conventions and component usage rules. An agent skill from letehaha/moneymatter.

    163 GitHub stars~3.8k tokensUpdated today
    Auto-check passed
  • E2E Test Creator

    letehaha/moneymatter

    Creates backend e2e tests for new or existing endpoints. An agent skill from letehaha/moneymatter.

    163 GitHub stars~2.4k tokensUpdated today
    Auto-check: warnings
  • Prd Creator

    letehaha/moneymatter

    Smart PRD generator. An agent skill from letehaha/moneymatter.

    163 GitHub stars~1.1k tokensUpdated today
    Auto-check: notes

Questions about I18n Before Release

What does I18n Before Release do?

Occasional i18n catch-up: strip unused en keys, then fill any uk translations that slipped through via i18n-editor subagents. I18n Before Release is an agent skill from letehaha/moneymatter. Occasional i18n catch-up: strip unused en keys, then fill any uk translations that slipped through via i18n-editor subagents.

When should I use I18n Before Release?

I18n Before Release fits situations like: /i18n-before-release; fill missing translations; strip unused translation keys.

How do I install I18n Before Release in Claude Code?

Run `npx skills add letehaha/moneymatter --skill i18n-before-release -a claude-code`. Or copy the skill folder (.claude/skills/i18n-before-release in letehaha/moneymatter) into .claude/skills/i18n-before-release in your project. Claude Code loads it when a task matches its description.

How do I install I18n Before Release in Codex?

Run `npx skills add letehaha/moneymatter --skill i18n-before-release -a codex`. Or copy the skill folder (.claude/skills/i18n-before-release in letehaha/moneymatter) into .agents/skills/i18n-before-release in your project. Codex loads it when a task matches its description.

Can I use I18n Before Release in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add letehaha/moneymatter --skill i18n-before-release -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/i18n-before-release, .gemini/skills/i18n-before-release, .github/skills/i18n-before-release and .opencode/skills/i18n-before-release in your project.

What does I18n Before Release need to run?

Going by SKILL.md and its folder, I18n Before Release needs JavaScript for the scripts in its folder and the command-line tools its instructions call (node, git and npm). Our summary lists: Node.js.

Does I18n Before Release access the network?

SKILL.md contains no URLs. Its commands use git and npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is I18n Before Release safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does I18n Before Release use?

I18n Before Release is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does I18n Before Release use?

About 1.1k tokens (SKILL.md is roughly 4.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to I18n Before Release?

Skills that share tags, products or a category with I18n Before Release: Chatbox i18n Translator (chatboxai/chatbox, 42k stars), Internationalization Workflow with i18n (iOfficeAI/AionUi, 33k stars), Enforce Rules For I18n (moeru-ai/airi, 50k stars) and Claude Desktop Chinese Localization (javaht/claude-desktop-zh-cn, 7.5k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains I18n Before Release?

letehaha (a GitHub user) maintains it in letehaha/moneymatter, which has 163 GitHub stars. The repository holds 10 skills in this directory. The repository was last updated on October 10, 2026.

Source: letehaha/moneymatter on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.