Agent skill

Fluent Migration

by BrowserWorks in BrowserWorks/waterfox-android

A skill your agent uses when a patch or local changes rename, restructure, move, or replace Fluent (.ftl) strings - or migrate legacy .properties strings to Fluent - and you need a migration recipe…

Custom licenceAuto-check passedFrontend & Design

Install Fluent Migration

skills CLI
$ npx skills add BrowserWorks/waterfox-android --skill fluent-migration -a claude-code

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

GitHub CLI
$ gh skill install BrowserWorks/waterfox-android fluent-migration --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/BrowserWorks/waterfox-android.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/fluent-migration .claude/skills/fluent-migration && 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
fluent-migration
GitHub stars
379
Used in
1 other repo
Token cost
~4.2k tokens
SKILL.md length
2,213 words
Files
1
Skills in repo
10
Repo updated
First seen
Licence
Custom licence

At a glance

A skill your agent uses when a patch or local changes rename, restructure, move, or replace Fluent (.ftl) strings - or migrate legacy .properties strings to Fluent - and you need a migration recipe…

  • Works in 4 steps: Get the diff of the string changes → Classify each changed string → Write the recipe file → …
  • Local changes rename
  • SKILL.md covers What this does, Workflow and Recipe shape & hand-writing
  • Calls git and go; reaches creativecommons.org

What it does

Fluent Migration is an agent skill from BrowserWorks/waterfox-android. Use this skill when a patch or local changes rename, restructure, move, or replace Fluent (.ftl) strings - or migrate legacy .properties strings to Fluent - and you need a migration recipe in python/l10n/fluentmigrations so existing translations carry over. You read the diff, classify each changed string, write the recipe by hand, and validate it with the in-tree ./mach fluent-migration-test. Triggers: "write/generate a fluent migration", "migrate these strings", renamed/bumped l10n IDs (foo - foo2), moving a…

Its SKILL.md is about 4.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Frontend & Design, covering Internationalization and Translation. It works with Python and Android.

When your agent uses it

  • Local changes rename
  • Replace Fluent (.ftl) strings -

Example prompts

  • “write/generate a fluent migration”
  • “migrate these strings”
  • “/fluent-migration”

Requirements

  • Python 3

Workflow steps

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

  1. Get the diff of the string changes
  2. Classify each changed string
  3. Write the recipe file
  4. Validate with the in-tree test (authoritative)

What it can do on your machine

Read from SKILL.md and the folder at commit 500d48c. 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

    Shell commands in SKILL.md call:

    • git
    • go

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

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • creativecommons.org

    Also links to:

    • github.com

    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

Fluent Migration loads about 4.2k tokens when it runs. Until then it costs about 178 tokens; SKILL.md has 2,213 words of instructions outside code blocks.

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

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

Its licence (Custom licence) doesn't allow us to republish the file, so here is its outline and opening line. It has 2,213 words (~4,230 tokens).

“A migration recipe is a Python module in python/l10n/fluent_migrations/, shipped in the same patch. It tells l10n tooling to copy existing translations over to a renamed, moved, or restructured string, so locales don't fall back to English. It only helps…”

— opening of SKILL.md by BrowserWorks, Custom licence
name
fluent-migration

Read the full SKILL.md on GitHub

Files

Just SKILL.md in .agents/skills/fluent-migration of BrowserWorks/waterfox-android.

Open the folder on GitHubat commit 500d48c

Used in 1 other repository

We found 3 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in BrowserWorks/waterfox-android, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Fluent Migration 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.

Fluent Migration compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Fluent Migration this skillBrowserWorks/waterfox-android3791 repos~4.2kAutomated safety check: PassCustom licence
Ok Script I18nAliceJump/ok-end-field556—~828Automated safety check: PassAGPL-3.0
I18nbrickbots/PiFinder250—~2.8kAutomated safety check: PassGPL-3.0
Dpis LocalizationKwensiu/DPIS108—~1.5kAutomated safety check: PassGPL-3.0
Claude Desktop Chinese Localizationjavaht/claude-desktop-zh-cn7.5k—~1.6kAutomated safety check: PassMIT
Ok Script I18nbaoxin1100/ok-kes100—~903Automated safety check: PassNone

Similar skills

  • Ok Script I18n

    AliceJump/ok-end-field

    Maintain gettext translations for ok-script task UI and runtime messages.

    556 GitHub stars~828 tokensUpdated today
    Frontend & DesignAuto-check passed
  • I18n

    brickbots/PiFinder

    PiFinder's internationalization (i18n) workflow — marking strings for translation, running the Babel extract/update/compile pipeline, adding or updating language translations, and filling in missing…

    250 GitHub stars~2.8k tokensUpdated today
    Frontend & DesignAuto-check passed
  • Dpis Localization

    Kwensiu/DPIS

    Project-local DPIS localization workflow. An agent skill from Kwensiu/DPIS.

    108 GitHub stars~1.5k tokensUpdated 2 days ago
    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 2 days ago
    Frontend & DesignAuto-check passed
  • Ok Script I18n

    baoxin1100/ok-kes

    Add, sync, repair, and compile gettext translations for ok-script Python task classes and task metadata.

    100 GitHub stars~903 tokensUpdated 7 days ago
    Frontend & DesignAuto-check passed
  • Viewer i18n Translator

    liaohch3/claude-tap

    Fills missing translations in claude-tap's viewer_i18n.json by sending untranslated keys to OpenRouter for Japanese, Korean, French, Arabic, German and Russian.

    3.3k GitHub stars~666 tokensUpdated 15 days ago
    Frontend & DesignAuto-check passed

More from BrowserWorks/waterfox-android

All 10 skills in this repo
  • File Good First Bug

    BrowserWorks/waterfox-android

    A skill your agent uses when the user wants to file good-first-bugs in Bugzilla for Firefox.

    379 GitHub starsUsed in 2 repos~2k tokens
    Auto-check passed
  • Find Reviewer

    BrowserWorks/waterfox-android

    Find the right reviewer for a Firefox/Gecko change so the user does not have to.

    379 GitHub starsUsed in 1 repo~898 tokens
    Auto-check passed
  • Media Patch Review

    BrowserWorks/waterfox-android

    Reviews dom/media code changes ONLY — not any other component.

    379 GitHub starsUsed in 1 repo~762 tokens
    Auto-check passed
  • Perftest

    BrowserWorks/waterfox-android

    Run Firefox performance tests locally or in CI. An agent skill from BrowserWorks/waterfox-android.

    379 GitHub starsUsed in 1 repo~2.3k tokens
    Auto-check passed
  • Spec Trace

    BrowserWorks/waterfox-android

    Trace a claim about web spec behaviour through the algorithm call chain and produce a Bugzilla-ready markdown trace ending in a REACHED / NOT REACHED / INCONCLUSIVE verdict.

    379 GitHub starsUsed in 1 repo~2k tokens
    Auto-check passed
  • Documentation

    BrowserWorks/waterfox-android

    A skill your agent uses when working with Firefox documentation, including building documentation with ./mach doc, fixing Sphinx build errors or warnings, modifying existing documentation, or adding…

    379 GitHub starsUsed in 2 repos~1.6k tokens
    Auto-check passed

Works with

Questions about Fluent Migration

What does Fluent Migration do?

A skill your agent uses when a patch or local changes rename, restructure, move, or replace Fluent (.ftl) strings - or migrate legacy .properties strings to Fluent - and you need a migration recipe…. Fluent Migration is an agent skill from BrowserWorks/waterfox-android.properties strings to Fluent - and you need a migration recipe in python/l10n/fluentmigrations so existing translations carry over.

When should I use Fluent Migration?

Fluent Migration fits situations like: local changes rename; replace Fluent (.ftl) strings -.

How do I install Fluent Migration in Claude Code?

Run `npx skills add BrowserWorks/waterfox-android --skill fluent-migration -a claude-code`. Or copy the skill folder (.agents/skills/fluent-migration in BrowserWorks/waterfox-android) into .claude/skills/fluent-migration in your project. Claude Code loads it when a task matches its description.

How do I install Fluent Migration in Codex?

Run `npx skills add BrowserWorks/waterfox-android --skill fluent-migration -a codex`. Or copy the skill folder (.agents/skills/fluent-migration in BrowserWorks/waterfox-android) into .agents/skills/fluent-migration in your project. Codex loads it when a task matches its description.

Can I use Fluent Migration 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 BrowserWorks/waterfox-android --skill fluent-migration -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/fluent-migration, .gemini/skills/fluent-migration, .github/skills/fluent-migration and .opencode/skills/fluent-migration in your project.

What does Fluent Migration need to run?

Going by SKILL.md and its folder, Fluent Migration needs the command-line tools its instructions call (git and go). Our summary lists: Python 3.

Does Fluent Migration access the network?

SKILL.md names 2 domains. In commands or code: creativecommons.org; the agent is likely to contact it when it follows the instructions. As links in the text: github.com. This is read from the text; nothing was executed.

Is Fluent Migration 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 Fluent Migration use?

Fluent Migration has a licence file (the repository's licence) that doesn't match a standard licence. Read it on GitHub before reusing the skill.

How many tokens does Fluent Migration use?

About 4.2k tokens (SKILL.md is roughly 17k 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 Fluent Migration?

Skills that share tags, products or a category with Fluent Migration: Ok Script I18n (AliceJump/ok-end-field, 556 stars), I18n (brickbots/PiFinder, 250 stars), Dpis Localization (Kwensiu/DPIS, 108 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 Fluent Migration?

BrowserWorks (a GitHub organization) maintains it in BrowserWorks/waterfox-android, which has 379 GitHub stars. The repository holds 10 skills in this directory. The repository was last updated on September 22, 2026.

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