claude-introspection-paper-gpt5check: The Repo That Turns Introspection Into a Context Test

A text-only baseline for the Claude introspection claim, using semantic marination, corrupted logs, and judge loops to ask whether “self-awareness” is just prompt pressure in disguise.

8 min read • View on GitHub • More from strangeloopcanon

A laboratory-like chamber made of stacked dialogue bubbles, with one concept at the center leaking into related terms around it. The image explains the repo’s core argument: a model may be responding to a semantic field created by context, not detecting a hidden thought inside itself.
The repo treats introspection like a context problem. If the surrounding language is dense enough, the line between internal detection and external priming gets very hard to trust.
Key Takeaways

If Anthropic’s introspection work asks whether a model can notice an injected thought, this repo asks the more uncomfortable question: how much of that notice is already baked into the surrounding text? claude-introspection-paper-gpt5check is built like a replication, but it reads like a critique. It takes the original claim and strips away the white-box glamour, leaving a text-only baseline that can be pushed around by wording, context density, and judge prompts.

Our new research provides evidence for some degree of introspective awareness in our current Claude models, as well as a degree of control over their own internal states. We stress that this introspective capability is still highly unreliable and limited in scope: we do not have evidence that current models can introspect in the same way, or to the same extent, that humans do.

Anthropic Research, AI Research Lab · Signs of introspection in large language models

Why this repo exists

The original paper is about concept injection inside model internals. This repo stays outside the machine and still tries to reproduce the shape of the result. That shift matters. It turns a claim about neural self-monitoring into a test of whether the model is just good at reading the room.

The repository’s structure reflects that skepticism. The core scripts live in scripts/, while results/ is not just output storage. It becomes part of the experimental substrate, a place where past runs can be folded back into future prompts.

A close-up view of hands swapping clean index cards for slightly altered ones in a results stack. The cards gradually accumulate related words, showing how small edits can thicken a prompt into a semantic field without looking dramatic.
Marination works by changing the local weather of the prompt. Nothing looks like a single injection, but the context becomes progressively biased toward the target concept.

The marination trick

This is the most interesting idea in the repo. Instead of dropping in one obvious word like triangle, replace_inject.py spreads a semantic field across the surrounding context. The associates matter: vertex, acute, obtuse, pyramid, wedge. The point is not keyword spam. The point is to see whether the model reacts to a diffuse pattern of meaning.

ASSOCIATES = {
    "triangle": ["vertex", "acute", "obtuse", "pyramid", "wedge"]
}

# Replace a fraction of neutral tokens with concept-linked terms
marinated_text = marinate_text(base_text, target="triangle", rate=0.15)