string-sync

string-sync is a skill for Claude Code, Codex from duonglkh/claude-android. It costs 96 tokens per session (1,617 once invoked), scanned A, original, MIT.

An Android translation audit that compares string resource files across all modules and supported languages. Android string resources are text files used to show translated interface labels.

In plain words
What is it for?
Use it when adding a language, checking whether a new string exists everywhere, counting supported locales, or investigating why a screen stays in English.
Why use it?
It finds missing or extra translation keys and distinguishes language folders from folders for screen size, Android version, night mode, or orientation, preventing untranslated text from reaching users.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one. Also seen: reads .claude/ paths.

Good fit Use it when adding a language, checking whether a new string exists everywhere, counting supported locales, or investigating why a screen stays in English.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/duonglkh/claude-android/string-sync
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add duonglkh/claude-android --skill string-sync
Clone the repo
git clone --depth 1 https://github.com/duonglkh/claude-android

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for string-sync

README.md
[![agentmods](https://agentmods.dev/badge/skills/duonglkh/claude-android/string-sync/github.svg)](https://agentmods.dev/skills/duonglkh/claude-android/string-sync)
Your own site
<a href="https://agentmods.dev/skills/duonglkh/claude-android/string-sync"><img src="https://agentmods.dev/badge/skills/duonglkh/claude-android/string-sync/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for string-sync

Your own site · 80×15
<a href="https://agentmods.dev/skills/duonglkh/claude-android/string-sync"><img src="https://agentmods.dev/badge/skills/duonglkh/claude-android/string-sync.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 96 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,617 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00096 $0.01617
Opus 5.5 $0.00038 $0.00647
Sonnet 5.5 $0.00019 $0.00323
Haiku 4.5 $0.00010 $0.00162

Measured 8d ago against content hash fde8ddcd01d9, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

string-sync scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 8d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/string-sync/SKILL.md · 137 lines

How it starts

The opening of the file, as written. The whole thing — 137 lines — stays where its author put it; the contents beside it link to each section on GitHub.

string-sync

Guide Claude through auditing string-resource sync across every module in a multi-module Android project using the claude-android MCP server, then report exactly what's missing/extra, per module per locale — without guessing from a raw directory listing.

When this skill applies

The user asks anything like:

  • "Did we add the new string to every language?"
  • "Sync strings.xml across modules"
  • "Add Spanish to feature:rooms"
  • "How many locales does :app actually support?"
  • "Why is this screen showing English even though the device is in French?"

Required tool — the MCP server must be registered

This skill calls into the claude-android MCP server (mcp__android__get_project_info, mcp__android__read_string_catalog). If not registered, tell the user to run claude mcp add android claude-android-mcp and verify with claude mcp list.

The mistake this skill exists to prevent

A values-X directory count is not a locale count. values-sw600dp, values-v31, values-night, values-land and similar are configuration qualifiers (screen width, API level, night mode, orientation) — they are not languages, and a module that has one of these alongside its locale directories is not "ahead" on translations. read_string_catalog already filters these out before counting; if you ever compute a locale count yourself instead of reading locales.length from the tool's output, you will reproduce this exact mistake. Always get the count from the tool, never from ls values-* | wc -l.

The second, unrelated mistake: missing a whole locale directory and missing a few keys inside a locale directory that exists look similar in a quick "N locales" headline but need completely different fixes. Report them separately — see Step 3.

Workflow

1. Enumerate modules with their own resources

Call mcp__android__get_project_info with the project root to get the module list. Not every module has its own res/ directory (library modules without UI, :core:model, :doodleengine, etc. often don't). You won't know which do until you try — that's Step 2.

Read the full file on GitHub · 137 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 8d ago First seen · 137 lines · 96 tokens per session scan A fde8ddcd01d9

Subscribe to this mod's changes

string-sync is a skill published in the GitHub repository duonglkh/claude-android (0 stars, last pushed 9d ago), licensed MIT. It adds 96 tokens to every session and 1,617 once invoked, about $0.0004 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-30.

Related

string-sync compared with skills from other repositories

string-sync next to 6 skills from other repositories
ModTypeStarsLast pushLicenceScanTokensWorks with
string-syncduonglkh/claude-androidSkill09d agoMITA96Claude Code, Codex
maui-localization-themingdotnet/maui-labsSkill235yesterdayMITA73Claude Code, Codex
translatesepivip/SeekerClawSkill31910d agoMITA49Claude Code, Codex
gplay-metadata-syncPollyGlot/google-play-cli-skillsSkill53d agoMITA55Claude Code, Codex
android-studioalivirgo/Major-AI-SkillsSkill2todayMITA32Claude Code
localisationvmobifystudio/app-dev-teamSkill55d agoMITA74Claude Code
swift-formatstyleTalissonVitorino/kmp-ios-skillsSkill162mo agoMITA226Claude Code, Codex