
Answer Snapshot
In 2026, most GenAI product features are easier to understand if you ask where the text is placed before the model answers: system prompt, user prompt, or reusable context.
| Prompt layer | What it controls | Beginner check |
|---|---|---|
| System prompt | The assistant's role, rules, and boundaries | "Is this an operating rule?" |
| User prompt | The current task, files, and conversation context | "Is this part of today's request?" |
| Reusable context | Saved project instructions, skills, memory notes, and uploads | "Will this be loaded into future tasks?" |
Debugging AI behavior becomes simpler: confirm the instruction was included, placed in the right layer, and specific enough to affect the answer. This framing also connects to AI memory beyond RAG, because persistent "memory" only helps when the product retrieves and places it correctly.
Most AI tutorials start with product names: ChatGPT projects, Claude Projects, Claude Cowork, CLAUDE.md, skills, subagents, memory, uploaded files.
For a beginner, that is too much vocabulary too early.
The easier way to understand these features is this:
Most of them are different ways to put instructions or context in front of the model.
The important question is not "what is this feature called?"
The better question is:
Where does this text go before the AI answers?
That is why system_prompt and user_prompt matter.
The Simple Version
Think of an AI chat like a restaurant.
The system prompt is the restaurant's operating manual. It tells the assistant what kind of assistant it is, what rules it should follow, what tone it should use, and what it should never do.
The user prompt is today's order. It includes what you ask, the files you attach, the previous conversation, and extra context the app adds for this task.
So if you ask:
Summarize this meeting transcript for my manager.
That request is user prompt.
If the app quietly tells the AI:
You are a helpful assistant. Be concise. Do not invent facts.
That is closer to system prompt.
Real products have more layers, but start with two buckets:
| Bucket | Plain meaning | Example |
|---|---|---|
| System prompt | The assistant's job and rules | "You are a helpful writing assistant." |
| User prompt | The current request and context | "Rewrite this email in a friendly tone." |
Once you see those two buckets, AI features stop feeling random.
Projects Are Reusable Context

Take a normal Claude Project in the desktop app.
You might create a project called "Company Blog." Then you add:
- brand guidelines
- old blog posts
- product notes
- project instructions like "write for non-technical readers"
Now every chat inside that project has extra background. You no longer need to paste the same files and rules every time.
This does not mean every project file becomes the hidden system prompt. The safer mental model is:
Project knowledge and project instructions are extra context the AI can use when answering your current request.
Example:
Project context:
Our readers are startup founders.
Avoid heavy technical language.
Use examples from marketing and operations.
User request:
Write an introduction for a blog about AI prompts.
The answer depends on both pieces. That is already prompt routing.
Cowork Is Still Prompted Work
Claude Cowork feels different from chat because you can give it a larger task.
Instead of asking one question, you might say:
Read the files in this folder, organize the invoices by vendor, and create a summary spreadsheet.
Cowork can work across local files and desktop tasks, so it feels more like delegating work than asking a chatbot one question.
But the core idea is still familiar:
- the task you assign is user prompt
- the files and workspace are context
- the product's operating behavior is closer to system prompt
- smaller work items need their own instructions too
For a beginner, that is the point:
The interface changed. The model still needs instructions and context.
Claude Code Is A Concrete Example
Claude Code is useful as an example because its source code shows how some features are routed. I am only talking about CLAUDE.md, skills, and subagents here.
Here is the short version.
CLAUDE.md looks like a system prompt because people write rules in it:
Use pnpm.
Run tests before saying the work is done.
Do not edit generated files.
But in the Claude Code source code, CLAUDE.md is loaded as user context and prepended to the conversation as a reminder. It is important context, but it is not the same thing as rewriting Claude Code's core system prompt.
A skill is a reusable prompt package. Claude first sees a short listing that says the skill exists and when it is useful. When the skill is used, the full SKILL.md content is loaded into the conversation.
That means a skill is good for repeatable procedures, such as reviewing a pull request, writing a release note, generating an image, or following a company checklist.
A subagent is different. A subagent has its own instructions. When Claude Code launches that subagent, the subagent body becomes that subagent's system prompt, and the task passed to it becomes that subagent's user prompt.
That is why a subagent can behave like a specialist.
One Picture To Remember

Different AI features are mostly different ways to place text.
| Feature | Beginner meaning | Prompt mental model |
|---|---|---|
| Claude Project | A workspace with saved knowledge and instructions | Reusable context for chats in that project |
| Claude Cowork task | A larger job you delegate to Claude | User request plus files, planning, and execution context |
CLAUDE.md |
Project instructions for Claude Code | User-context reminder |
| Skill | A reusable workflow | Prompt package loaded when needed |
| Subagent | A specialist worker | Separate system prompt plus a task prompt |
The file format is not the important part. A markdown file is just a markdown file. What matters is where the product places that markdown before the model answers.
Why Beginners Should Care
If you do not understand prompt placement, AI behavior feels random.
You write a long project instruction and wonder why Claude still misses something. You create a skill and wonder why it is not always used. You create a subagent and wonder why it gives generic answers.
Often the problem is one of these:
- the instruction was not included
- it was included too late
- it was placed as context, not a stronger operating rule
- the current user request did not clearly point to it
- the instruction was too vague
This gives you a better debugging question:
Did the AI receive the right instruction, in the right place, at the right time?
That question is more useful than memorizing product names.
The Bottom Line
Every AI product will keep inventing new features. But behind many of them is the same basic pattern:
system_prompt = who the assistant is and how it should behave
user_prompt = what the user wants right now, plus the context needed to answer
Claude Projects, Claude Cowork, ChatGPT projects, uploaded files, CLAUDE.md, skills, and subagents all make more sense once you think in those two lanes.
The better you understand where the prompt goes, the better you understand what the AI is actually working from.
Notes
The Claude Projects and Cowork examples are user-facing examples, not claims about Anthropic's private internal prompts. See Anthropic's Projects help page and Cowork help page.
The Claude Code examples are based on the Claude Code source code, specifically the code paths that load CLAUDE.md, skills, and subagent definitions.
Originally published at markhuang.ai
Top comments (0)