[BUG] Model emits Cyrillic homoglyphs in generated identifiers (branch names)

Resolved 💬 2 comments Opened Jun 3, 2026 by evelynmitchell Closed Jun 7, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

Environment: Claude Code on the web (remote execution); model claude-opus-4-8[1m].
What happened: While generating git checkout -b commands, the model produced branch-name suffixes containing a Cyrillic small letter "м" (U+043C) in place of ASCII "m" (U+006D) — visually identical, different codepoint. Observed twice in one session:
claude/yfinance-seam-Lм4dp (intended ...-Lm4dp-style ASCII)
claude/edge-metamorphic-tests-Wм (intended an ASCII suffix)
Both were caught at creation and recreated as pure-ASCII branches before anything was pushed, so no corrupted ref reached the remote.
Why it matters: A homoglyph in an identifier looks correct to a human reviewer but is a distinct string — it can break branch lookups, grep, CI matching, and any tooling that assumes ASCII refs, and is hard to spot in review. Same risk applies to any generated identifier (filenames, variable names, env-var keys).
Frequency: 2 occurrences in one long session; appeared when the model was improvising an identifier suffix rather than copying a provided one.
Suggested mitigations: (a) constrain/normalize generated identifiers to ASCII; (b) the model should prefer a provided suffix over inventing one; (c) consider a homoglyph guard on tool-call arguments that are shell/git identifiers.
Cannot confirm: whether this is new vs. longstanding behavior — reporting observed facts only.

What Should Happen?

The branch names should use the encoding for the project, and not look alike but distinct encodings.

Error Messages/Logs

Steps to Reproduce

While generating git checkout -b commands, the model produced branch-name suffixes containing a Cyrillic small letter "м" (U+043C) in place of ASCII "m" (U+006D) — visually identical, different codepoint. Observed twice in one session:
claude/yfinance-seam-Lм4dp (intended ...-Lm4dp-style ASCII)
claude/edge-metamorphic-tests-Wм (intended an ASCII suffix)
Both were caught at creation and recreated as pure-ASCII branches before anything was pushed, so no corrupted ref reached the remote.

Claude Model

Opus

Is this a regression?

I don't know

Last Working Version

_No response_

Claude Code Version

Claude code on the Web

Platform

Anthropic API

Operating System

Other Linux

Terminal/Shell

Other

Additional Information

Android client. Github repo.

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗