[DOCS] Conflicting "Default" Logic between `claude_code` System Prompt Preset and `CLAUDE.md` Loading
Documentation Type
Unclear/confusing documentation
Documentation Location
docs/en/agent-sdk/modifying-system-prompts.md-docs/en/agent-sdk/typescript.md-docs/en/agent-sdk/python.md
Section/Topic
The documentation for the SystemPromptPreset type/dataclass and the description of the claude_code preset value.
Current Documentation
In modifying-system-prompts.md:
"The SDK only reads CLAUDE.md files when you explicitly configure settingSources... The claude_code system prompt preset does NOT automatically load CLAUDE.md - you must also specify setting sources."
In the API References (typescript.md and python.md):
preset: "Must be 'claude_code' to use Claude Code's system prompt."
What's Wrong or Missing?
The nomenclature "preset": "claude_code" strongly implies a reproduction of the Claude Code CLI's standard behavior. To a user, "Claude Code's system prompt" conceptually includes the project memory and guidelines defined in CLAUDE.md.
While the "Modifying System Prompts" guide correctly notes the separation, the primary API references for TypeScript and Python do not. This creates a "gotcha" where a developer implements the preset and expects their project-level rules to be followed, only to find the agent ignoring them because settingSources (which defaults to empty/None) was not also modified.
Suggested Improvement
Add a "Note" or "Warning" column or callout to the SystemPromptPreset and SystemPrompt sections in the API reference files.
Suggested text for the preset field description:
"Must be 'claude_code' to use Claude Code's core system instructions. Note: This preset does not automatically loadCLAUDE.mdfiles. To enable project-level memory, you must also configuresettingSources(TS) orsetting_sources(Python) to include'project'."
Additionally, in modifying-system-prompts.md, under Method 3: "Using systemPrompt with append," the code example should be updated to include settingSources: ["project"] to reflect a real-world scenario where a user would want both the preset and their project guidelines.
Impact
High - Prevents users from using a feature
Additional Context
- This issue is particularly relevant to users following the Migration Guide who are moving from the CLI to the SDK and expect feature parity in the "Default" experience.
- Related documentation: SDK Overview - Permissions which describes the evaluation flow but does not explicitly link the prompt preset to the memory loading requirements.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗