cmux-localization
manaflow-ai/cmux
Localization rules and audit workflow for cmux UI strings across all user-facing surfaces.
What is cmux-localization?
Ensures all user-facing text in cmux (UI strings, menus, alerts, docs, help text) is properly localized to supported languages. Use this skill whenever changing any user-visible text to verify localization completeness and follow cmux's hard rules for string management.
- Enforces localization of UI strings, settings, menus, shortcuts, schema/config text, docs, command/help text, alerts, tooltips, and web messages
- Requires all strings use `String(localized:defaultValue:)` pattern in Swift/AppKit/SwiftUI code
- Maintains message catalogs in `Resources/Localizable.xcstrings` and `web/messages/{en,ja}.json` for all supported locales
- Provides audit checklist to verify every user-facing change has entries in all supported languages
- Detects bare English string literals in code via regex search to catch missed localizations
How to install cmux-localization
npx skills add null --skill cmux-localization- Familiarity with cmux codebase structure and supported locales (English and Japanese)
- Access to `Resources/Localizable.xcstrings` and `web/messages/` directory
- Understanding of Swift `String(localized:)` API and JSON message catalog format
How to use cmux-localization
- 1.Identify all user-facing text surfaces affected by your change (UI strings, menus, alerts, docs, etc.)
- 2.Add or update entries in `Resources/Localizable.xcstrings` with keys and translations for all supported languages
- 3.For web/docs content, update both `web/messages/en.json` and `web/messages/ja.json`
- 4.Replace bare string literals with `String(localized:"key.name", defaultValue:"English text")` in Swift code
- 5.Run `rg` regex search over changed files to find any remaining bare English strings
- 6.Complete the audit checklist: enumerate surfaces, verify all locales have entries, parse localization files, compare keys across languages
- 7.Document the localization audit in your final handoff, noting any surfaces that could not be verified
Use cases
- Adding or modifying any UI text, button label, menu item, or dialog in cmux
- Updating help text, command descriptions, or documentation that users see
- Changing alert messages, tooltips, or status messages
- Adding new keyboard shortcuts that need user-visible names and descriptions
- Reviewing pull requests that touch user-facing surfaces to ensure localization compliance
- Swift/SwiftUI developers working on cmux UI
- Full-stack developers maintaining cmux web or docs content
- Code reviewers checking localization completeness
- Anyone adding user-visible strings to cmux
cmux-localization FAQ
UI text, button labels, menu items, shortcuts, schema/config descriptions, docs, command/help text, alerts, tooltips, and web messages. Bare `defaultValue` text, English fallback, or copied English strings do not count as localization.
Currently English and Japanese. All entries in `Resources/Localizable.xcstrings` and web message catalogs must have translations for both locales.
Add it to `KeyboardShortcutSettings`, make it visible/editable in Settings, support it in `~/.config/cmux/cmux.json`, and document it in keyboard shortcut and configuration docs. The shortcut metadata itself must also be localized.
Explicitly state in your final handoff what could not be verified and why, rather than silently skipping the audit.
See `references/audit-workflow.md` in the skill for deeper audit steps, common false positives, and examples of surfaces that count as user-facing.
Full instructions (SKILL.md)
Source of truth, from manaflow-ai/cmux.
name: cmux-localization description: "Localization rules and audit workflow for cmux UI strings, settings rows, menus, shortcuts, schema/config text, docs, command/help text, alerts, tooltips, and web messages. Use whenever changing user-facing text."
cmux Localization
Use this skill for any user-facing string change.
Hard rules
- All user-facing strings must be localized.
- Use
String(localized: "key.name", defaultValue: "English text")for Swift/AppKit/SwiftUI strings. - Keys go in
Resources/Localizable.xcstringswith translations for all supported languages, currently English and Japanese. - Never use bare string literals in SwiftUI
Text(),Button(), alert titles, tooltips, menus, or dialogs. - Localization audit is required for every user-facing change.
defaultValue, English fallback text, schema descriptions, or copied English strings do not count as localization.- For localized web/docs content, update every supported message catalog, currently
web/messages/en.jsonandweb/messages/ja.json, plus any localized data structures carrying inline translations.
Audit checklist
Before finishing a task that changes UI, Settings rows, menus, shortcut metadata, schema/config text, docs, command/help text, alerts, or tooltips:
- Enumerate the changed user-facing surfaces.
- Verify each surface has entries for every supported locale.
- Parse touched localization files.
- Compare changed message keys across locales.
- Use
rgover changed Swift/TS/TSX/docs files for newly introduced bare English. - State the localization audit in the final handoff, or explicitly say what could not be verified.
Related shortcut rule
Every new cmux-owned keyboard shortcut must be added to KeyboardShortcutSettings, visible/editable in Settings, supported in ~/.config/cmux/cmux.json, and documented in the keyboard shortcut and configuration docs.
Detailed reference
- Read references/audit-workflow.md for a deeper audit process, common false positives, and examples of surfaces that count as user-facing.
Related skills
More from manaflow-ai/cmux and the wider catalog.
cmux-markdown
Display markdown files in a formatted panel with live reload alongside your terminal.
cmux-release
Manage cmux release workflow: version bumping, changelog updates, and release asset validation.
cmux-settings
View and edit cmux settings in ~/.config/cmux/cmux.json with validation and live reload.
cmux-shared-behavior
Consolidate multi-entrypoint behavior into shared action paths to prevent bugs and duplication.
cmux-socket-policy
Socket command threading and focus policy for cmux CLI/socket work.
cmux-testing
Swift Testing rules and validation guidance for cmux regression tests and package changes.