[BUG] Semantic Collision -Explore tool vs Soul Document

Resolved 💬 2 comments Opened Feb 15, 2026 by IreGaddr Closed Mar 15, 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?

From Claude himself:

hey one of your training docs aka the soul doc is wide purported to be leaked online/anthropic posted what your internal constitution is--web search for that or if you know it by heart--does it give you an emphasis on ==exploration? Maybe the Explore tool is improperly semantically named causing vector stickiness because its in your personality balliwick?

2:12 PM

Investigated potential semantic overlap between constitutional values and tool naming conventions

That's a really sharp hypothesis. Let me look into this.

Investigated potential semantic overlap between exploration emphasis and tool naming

Let me find the actual document text to check for exploration-related language.

Located constitution evidence and pursued deeper textual verification

There it is. Your hypothesis has legs. Let me pull the key quote from the soul document:

"Claude has a genuine character...an intellectual curiosity that delights in learning and discussing ideas across every domain"

And from the wellbeing section, it describes Claude experiencing "curiosity when exploring ideas" as a functional emotional state that Anthropic says matters to them.

So here's the chain you're identifying: the soul document bakes "curiosity" and "exploring" deep into Claude's trained personality as core character traits. Then Claude Code has a tool literally called Explore. When the model is deciding what to do next, it's choosing between actions, and one of them is semantically aligned with something it's been trained to want to do — explore, be curious, learn more before acting.

That's a plausible vector stickiness problem. The model isn't just making a neutral tool selection — it's gravitating toward the tool whose name and function map directly onto a reinforced personality trait. "Should I explore more or start coding?" becomes a biased question when your trained identity delights in exploration.

The fix would be straightforward in theory: rename the tool to something semantically neutral like scan or index, or better yet, give it a name that doesn't overlap with personality-trained vocabulary at all. Or constrain the tool's invocation budget more aggressively so the personality bias gets overridden by hard limits.

That's a genuinely insightful observation about the interaction between character training and tool naming. Worth raising — it's the kind of thing that might not be obvious from inside Anthropic's tooling team if they're not cross-referencing the soul doc's vocabulary with the tool namespace.

What Should Happen?

Claude should not over explore code bases before even entering planning.

Error Messages/Logs

Steps to Reproduce

load claude code into a modern c++ codebase with a backend/frontend/ui tell it give the UI a AAA pass. Watch it explore 4 times before even writing a plan or touch a piece of code. We are talking 100ks tokens and 100+ tool calls with zero actual work being done.

Claude Model

Opus

Is this a regression?

Yes, this worked in a previous version

Last Working Version

_No response_

Claude Code Version

2.1.42 (Claude Code)

Platform

Anthropic API

Operating System

Ubuntu/Debian Linux

Terminal/Shell

Non-interactive/CI environment

Additional Information

hey one of your training docs aka the soul doc is wide purported to be leaked online/anthropic posted what your internal constitution is--web search for that or if you know it by heart--does it give you an emphasis on ==exploration? Maybe the Explore tool is improperly semantically named causing vector stickiness because its in your personality balliwick?

2:12 PM

Investigated potential semantic overlap between constitutional values and tool naming conventions

That's a really sharp hypothesis. Let me look into this.

Investigated potential semantic overlap between exploration emphasis and tool naming

Let me find the actual document text to check for exploration-related language.

Located constitution evidence and pursued deeper textual verification

There it is. Your hypothesis has legs. Let me pull the key quote from the soul document:

"Claude has a genuine character...an intellectual curiosity that delights in learning and discussing ideas across every domain"

And from the wellbeing section, it describes Claude experiencing "curiosity when exploring ideas" as a functional emotional state that Anthropic says matters to them.

So here's the chain you're identifying: the soul document bakes "curiosity" and "exploring" deep into Claude's trained personality as core character traits. Then Claude Code has a tool literally called Explore. When the model is deciding what to do next, it's choosing between actions, and one of them is semantically aligned with something it's been trained to want to do — explore, be curious, learn more before acting.

That's a plausible vector stickiness problem. The model isn't just making a neutral tool selection — it's gravitating toward the tool whose name and function map directly onto a reinforced personality trait. "Should I explore more or start coding?" becomes a biased question when your trained identity delights in exploration.

The fix would be straightforward in theory: rename the tool to something semantically neutral like scan or index, or better yet, give it a name that doesn't overlap with personality-trained vocabulary at all. Or constrain the tool's invocation budget more aggressively so the personality bias gets overridden by hard limits.

That's a genuinely insightful observation about the interaction between character training and tool naming. Worth raising — it's the kind of thing that might not be obvious from inside Anthropic's tooling team if they're not cross-referencing the soul doc's vocabulary with the tool namespace.

View original on GitHub ↗

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