← ClaudeAtlas

cm-safe-i18nlisted

Use when translating, extracting, or mass-converting hardcoded strings to i18n t() calls. Enforces multi-pass batching, parallel-per-language dispatch, 8 audit gates, and HTML integrity checks. Battle-tested through 21+ batches and 12 bug categories from the March 2026 incidents.
tody-agent/codymaster · ★ 45 · Data & Documents · score 66
Install: claude install-skill tody-agent/codymaster
# Safe i18n Translation v2.0 ## Overview Mass i18n conversion is the most dangerous code transformation in a frontend monolith. A single-pass conversion of 600+ strings corrupted `app.js` beyond repair while 572 backend tests passed green. Additional incidents include HTML tag corruption, variable shadowing, and placeholder translation errors. **Core principle:** Every batch of i18n changes MUST pass ALL 8 audit gates before proceeding. No exceptions. **Violating the letter of this rule is violating the spirit of this rule.** ## The Iron Law ``` NO BATCH WITHOUT PASSING ALL 8 AUDIT GATES. NO LANGUAGE FILE WITHOUT KEY PARITY. NO DEPLOY WITHOUT FULL SYNTAX VALIDATION. NO HTML TAG MODIFICATION — TEXT CONTENT ONLY. NO REGEX TO FIX REGEX ERRORS — USE LEXICAL SCANNER. ``` ## When to Use **ALWAYS** when any of these happen: - Extracting hardcoded strings to `t()` calls - Adding new language file (e.g., `ph.json`) - Mass-converting strings across >10 lines - Updating translation keys or namespaces - Migrating i18n library or pattern **Don't use for:** - Adding 1-3 translation keys (just add manually + test) - Fixing a single typo in a JSON file ## The Protocol ```dot digraph i18n_flow { rankdir=TB; "0. Pre-flight" [shape=box]; "1. Scan ALL files" [shape=box]; ">10 strings?" [shape=diamond]; "Manual add + test" [shape=box]; "2. Plan passes" [shape=box]; "3. Extract batch (max 30)" [shape=box]; "4. 8-Gate Audit" [shape=box, style=filled, fillc