Separating Instructions from Data & Not Assuming Shared Context
CoreWrite effective, well-structured prompts · Difficulty 2/5
Explanation
Providing Data Alongside Instructions
Many real prompts mix an instruction with the material to work on -- a transcript, a policy excerpt, a spreadsheet paste. When that happens, separate the two clearly. A heading like "Source document:" followed by the pasted text keeps Claude from confusing part of the data with part of the instruction. Without a clear boundary, the model may treat a sentence inside the source text as if it were a command from the user.
Claude Only Knows What You Tell It
Claude does not have implicit access to your organization's internal context -- its acronyms, unwritten policies, product names, or team structure. It only knows what appears in:
- The prompt itself
- Any Project knowledge you've attached
- Its general training data
If a prompt assumes Claude already knows "our Q3 pricing exception process" without stating it, the output will fill the gap with a generic or incorrect guess rather than your actual policy.
Common exam traps
- Mixing instruction and data with no separation. A prompt that pastes a transcript directly after an instruction, with no heading or delimiter, risks the model reading part of the transcript as an instruction. Always label source material distinctly.
- Assuming Claude knows your organization's context. It only knows what's in the prompt, the Project knowledge, and its training data -- unstated internal context has to be supplied explicitly, every time it's relevant.
Key Takeaways
- Label pasted source material (e.g., 'Source document:') so it's clearly separated from the instruction
- Unlabeled data mixed into an instruction risks being misread as part of the command
- Claude only knows what's in the prompt, attached Project knowledge, and its training data
- Unstated organizational context (policies, acronyms, product specifics) must be supplied explicitly
Glossary Terms
An attack where malicious content in external data (web pages, documents, user input) attempts to override the system prompt or hijack Claude's behavior. Mitigation: use XML tags to separate untrusted content from instructions, validate outputs, apply least-privilege tool access.
A Claude-native prompting pattern using XML-style tags (e.g., <document>, <instructions>, <example>) to clearly delimit sections of a prompt. Helps Claude unambiguously identify context, instructions, and data. Reduces prompt injection risk by separating instructions from untrusted input.
Related Concepts