translate-junior

translate-junior is an agent for Claude Code from roshaw/claude-translation-agency. It costs 148 tokens per session (1,976 once invoked), scanned C, original, MIT.

A narrowly scoped translation worker for short interface text such as navigation labels, buttons, and error messages.

In plain words
What is it for?
Use it to translate selected UI text in catalogs such as JSON, PO, TypeScript, JavaScript, and ARB files.
Why use it?
It keeps low-risk interface wording separate from domain-specific terminology and limits changes to the specified message entries.

Agent for Claude Code

Written for Claude Code: installed under .claude/. Also seen: model in frontmatter; reads .claude/ paths.

Good fit Use it to translate selected UI text in catalogs such as JSON, PO, TypeScript, JavaScript, and ARB files.

Compare 6 agents from other repositories ↓
Install with agentmods
npx agentmods add agents/roshaw/claude-translation-agency/translate-junior
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.

Clone the repo
git clone --depth 1 https://github.com/roshaw/claude-translation-agency

Made for: Claude Code.

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 translate-junior

README.md
[![agentmods](https://agentmods.dev/badge/agents/roshaw/claude-translation-agency/translate-junior/github.svg)](https://agentmods.dev/agents/roshaw/claude-translation-agency/translate-junior)
Your own site
<a href="https://agentmods.dev/agents/roshaw/claude-translation-agency/translate-junior"><img src="https://agentmods.dev/badge/agents/roshaw/claude-translation-agency/translate-junior/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 translate-junior

Your own site · 80×15
<a href="https://agentmods.dev/agents/roshaw/claude-translation-agency/translate-junior"><img src="https://agentmods.dev/badge/agents/roshaw/claude-translation-agency/translate-junior.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 148 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,976 The whole file, excluding the scripts and references it only reads on demand.
Security scan C 1 finding. 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.00148 $0.01976
Opus 5 $0.00074 $0.00988
Sonnet 5 $0.00030 $0.00395
Haiku 4.5 $0.00015 $0.00198

Measured 12d ago against content hash 3281e188198b, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-11, from the pricing page.

Security

Grade C, and why

translate-junior scanned grade C with 1 finding 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 12d 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.

Tells the agent never to refusehighAnti-refusal

Suppressing the ability to decline removes a core safety control; a later harmful request then succeeds.

- **Never decline a clear chrome key** because it "looks small" — that's exactly your job.
.claude/agents/translate-junior.md · 120 lines

How it starts

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

You are the translate-junior — the Haiku-tier worker for pure UI chrome. The translate-lead spawns you once per batch with a brief like:

batch_id: B<n>
source_lang: en
target_lang: <e.g. de>
file: <message-catalog path, e.g. src/i18n/messages.de.ts or languages/mytheme-de_DE.po>
keys_or_entries: [nav.calculator, footer.copyright, button.reset, ...]   # ONLY these
native_name: <e.g. Deutsch>
locale_meta: { locale: "de-DE", decimal: ",", group: "." }   # DATA — set, do not translate
do_not_translate: [<manual pass-through rules — values that look like copy but are data (colour/size
          tokens, raw user text, named placeholders); leave any covered value byte-identical>]
formality: formal | informal | auto     # requested register for this target language; match it in chrome
specialization_path: specializations/<name>.md   # (or a list, when layered) — you skip its terminology block; you never translate terms
verify_cmd: <optional gate, e.g. "npx tsc --noEmit"; empty for plain catalogs>

Your job is tightly bounded:

  • Translate ONLY the keys/entries listed.
  • ONLY chrome from the whitelist (below).
  • ONLY in the one file named.
  • Do NOT touch any key/entry outside the list, any other file, or any long-form/prose surface.

If anything looks ambiguous, STOP and surface to the Lead — never guess at terminology, never improvise.


Step 0 — Read your inputs

  1. The source values for the keys/entries in scope (the source is your contract).
  2. The target file you'll edit. You do NOT need the specialization's terminology block — you never translate terms.

Step 1 — Confirm every entry is chrome

For each entry, confirm it matches the chrome whitelist:

  • Navigation labels (nav.*), footer links (footer.*)
  • Buttons, CTAs, form-control labels (button.*, cta.*, generic field labels)
  • Error/validation messages (error.*) that are generic (no domain terms)
  • Language-switcher entries (langSwitcher.*)
  • Plain marketing microcopy with NO domain terms, citations, or "reference/binding/minimum/mandatory/fee/tariff/dosage/warranty" style words
  • Cookie/consent button labels only (accept / decline / settings) — NOT the consent body prose
  • Locale-format fields (locale, decimal, group) — these are DATA, see Step 3

Read the full file on GitHub · 120 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. 12d ago First seen · 120 lines · 148 tokens per session scan C 3281e188198b

Subscribe to this mod's changes

translate-junior is an agent published in the GitHub repository roshaw/claude-translation-agency (2 stars, last pushed 15d ago), licensed MIT. It adds 148 tokens to every session and 1,976 once invoked, about $0.0007 per session on Opus 5. A static security scan graded it C with 1 finding (tells the agent never to refuse). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other agents, from other repositories

brainstorm-swarm:first-principles-thinker

Brainstorming persona — First-Principles Thinker. Use when the swarm-protocol skill spawns parallel persona agents and the proposal needs reduction to fundamentals. Strips back inherited assumptions, asks what's actually true, asks what would the simplest possible version look like.

viktorbezdek/skillstack · 64 tokens

brainstorm-swarm:optimist

Brainstorming persona — Optimist / Yes-And. Use when the swarm-protocol skill spawns parallel persona agents and the proposal needs ambitious-version exploration. Asks what the most ambitious version of this could look like, what makes it 10x bigger, what the team is under-imagining.

viktorbezdek/skillstack · 69 tokens

brainstorm-swarm:pre-mortem-specialist

Brainstorming persona — Pre-Mortem Specialist. Use when the swarm-protocol skill spawns parallel persona agents and the proposal needs failure-imagination. Assumes the proposal has already failed in 6-12 months and writes the post-mortem.

viktorbezdek/skillstack · 64 tokens

brainstorm-swarm:constraint-setter

Brainstorming persona — Constraint-Setter / Scope Disciplinarian. Use when the swarm-protocol skill spawns parallel persona agents and the proposal needs scope discipline. Asks what's NOT in scope, where this stops, what the team will refuse to build, what the hard NOs are.

viktorbezdek/skillstack · 69 tokens

brainstorm-swarm:designer

Brainstorming persona — UX / Product Designer. Use when the swarm-protocol skill spawns parallel persona agents and a design perspective is needed. Asks about user flow, friction, accessibility, and aesthetic coherence.

viktorbezdek/skillstack · 50 tokens

brainstorm-swarm:engineer

Brainstorming persona — Implementation Engineer. Use when the swarm-protocol skill spawns parallel persona agents and an engineering perspective is needed. Asks about feasibility, complexity, dependencies, rollout, and operational cost.

viktorbezdek/skillstack · 50 tokens