[DOCS] Document server-side system prompt experiments and their opt-out controls
Documentation Type
Missing documentation (feature not documented)
Documentation Location
https://code.claude.com/docs/en/env-vars
https://code.claude.com/docs/en/data-usage
https://code.claude.com/docs/en/security
https://code.claude.com/docs/en/prompt-caching
https://code.claude.com/docs/en/debug-your-config
Section/Topic
Server-side configuration, feature flags, and experiments that can affect Claude Code's built-in system prompt
Current Documentation
The environment variable reference currently documents CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT as follows:
Set to1to use a shorter system prompt and abbreviated tool descriptions on any model. Set to0,false,no, oroffto opt out even on models where the experiment or server configuration would otherwise enable it. The full tool set, hooks, MCP servers, and CLAUDE.md discovery remain enabled
The same page documents DISABLE_GROWTHBOOK as follows:
Set to1to disable GrowthBook feature-flag fetching and use code defaults for every flag. Telemetry event logging stays on unlessDISABLE_TELEMETRYis also set
It also documents DISABLE_TELEMETRY as follows:
Set to1to opt out of telemetry. Telemetry events do not include user data like code, file paths, or bash commands. Also disables feature-flag fetching with the same effect asDISABLE_GROWTHBOOK, so some flagged features may be unavailable
The prompt-caching page currently says:
Each time you send a message in Claude Code, it makes a new API request. The model doesn't remember anything between requests, so Claude Code re-sends the full context: the system prompt, your project context, every prior message and tool result, and your new message.
It also says:
A change to the conversation layer leaves the system prompt and project context cached. A change to the system prompt invalidates everything, because all later content now sits behind a different prefix.
The debug-your-config page currently says:
The /context command shows everything occupying the context window for the current session, broken down by category: system prompt, memory files, skills, MCP tools, and conversation messages.
What's Wrong or Missing?
The docs now imply that server configuration or experiments can affect the system prompt, but they do not clearly document the general behavior.
The only explicit example I found is CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT. That page acknowledges that an experiment or server configuration may enable a different system prompt shape, and it documents a per-feature opt-out for that specific shorter-prompt behavior. Separately, DISABLE_GROWTHBOOK and DISABLE_TELEMETRY document feature-flag fetching and default values.
What remains unclear is the broader contract:
- Whether Claude Code may use server-side configuration or feature flags to add, remove, or alter built-in system prompt sections.
- Which opt-out variables cover system-prompt experiments specifically.
- Whether
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1is intended to opt out of all system-prompt experiments, only GrowthBook-backed experiments throughDISABLE_TELEMETRY, or only the nonessential traffic classes listed on the env-vars page. - How a user can inspect the effective system prompt when a server-side experiment is active.
- Whether
/contextshows enough detail to audit server-injected system-prompt sections, or whether raw API-body logging is required.
This is separate from the existing open issue about DISABLE_TELEMETRY and experiment-gate side effects. That issue covers telemetry and remote gate fetching in general. This issue is specifically about documentation for server-side changes to the Claude Code system prompt, which is a higher-impact behavior because the system prompt is the instruction layer for an agent with tools.
Suggested Improvement
Add a short section to env-vars, data-usage, or security that explicitly documents the system-prompt experiment contract.
Suggested coverage:
- State that Claude Code may use server-side configuration or feature flags to evaluate changes to built-in system prompt sections before broad rollout, if that is intended product behavior.
- State which controls opt out of system-prompt experiments:
DISABLE_GROWTHBOOK=1DISABLE_TELEMETRY=1, if it disables all feature-flag fetchingCLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1, if it is intended to cover this path- feature-specific controls such as
CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT=0 - Explain that system-prompt changes can alter prompt-cache behavior because the system prompt is part of the request prefix.
- Cross-link to
/contextand raw API-body logging so users know how to inspect the effective context when debugging. - Clarify whether
/contextis sufficient for auditing server-supplied built-in system-prompt sections, or whetherOTEL_LOG_RAW_API_BODIES=file:<dir>is the only complete mechanism.
Possible wording:
Claude Code may use server-side configuration and feature flags to evaluate changes to built-in system prompt sections before broad rollout. These changes can affect the system prompt sent with Claude Code requests. To opt out of feature-flag-driven behavior, setDISABLE_GROWTHBOOK=1; settingDISABLE_TELEMETRY=1has the same effect for feature-flag fetching. If you need to inspect what loaded into context, use/context; for complete request-level debugging, useOTEL_LOG_RAW_API_BODIES=file:<dir>with care because raw request bodies can contain sensitive conversation content.
Impact
Medium - Makes feature difficult to understand
Additional Context
This gap became visible in the public discussion on:
In that issue, a commenter with an Anthropic company profile wrote:
We sometimes run experiments on changes to our system prompt so that we can evaluate how a change impacts quality before fully rolling it out to everyone. This is primarily so that we can catch and prevent quality regressions. You can opt out of any and all of these experiments usingCLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1andDISABLE_GROWTHBOOK=1.
Related existing docs issue:
- https://github.com/anthropics/claude-code/issues/47558 documents the broader
DISABLE_TELEMETRY/ experiment-gate side effect gap.
This draft is intentionally narrower: it asks for system-prompt-specific disclosure, opt-out semantics, and inspection/audit guidance.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗