Standing instructions and connectors
With no instructions of your own, a model answers everyone’s question the same way. Instructions are how that gets changed.
The provider’s
The system prompt ships with the product and is sent on every turn. It regulates behavior: what the assistant is, what it declines, how an answer is formatted.
You do not edit it.
Yours
Added on top. It customizes behavior: how you want work done, what your files hold, the conventions you follow.
You choose what it says and where it applies.
| Part | Who sets it | When it is sent |
|---|---|---|
| System prompt | the provider | every turn |
| Tool definitions | the product, and what you connect | every turn |
CLAUDE.md |
you | every turn |
| A skill’s description | you | every turn, one line each |
| A skill’s body | you | only when the description matches |
Anything sent on every turn costs money and latency, and takes up the model’s attention.
| Identity | what it is, who made it, what today’s date is |
| Format | when to use markdown, how long an answer should run, when to use a list |
| Tools | when to search the web, when to write code, when to make an artifact |
| Refusals | what it declines, and how |
| Character | what to do when it is uncertain, how much to hedge |
Anthropic publishes the ones in the Claude apps, dated and by model: platform.claude.com/docs/en/release-notes/system-prompts
Claude Code reads every CLAUDE.md from the top of the filesystem down to the folder you started in, and puts them all in context:
| File | Applies to | |
|---|---|---|
$HOME/.claude/CLAUDE.md |
every folder you work in | nobody |
path/folder/CLAUDE.md |
work in that folder | the team, if you commit it |
The closest file is read last. Keep each one under about 200 lines — all of them are in the context window before you type.
AGENTS.meWindows File Explorer hides the actual filesystem locations of common folders. You can do the following to see where your home folder is.
Windows: Start -> Command Prompt. Then type cd $HOME and Enter and then pwd and Enter. That is your home directory.
Mac: Enter the same commands into the Terminal app.
lab803: Terminal in left pane. Enter the same commands.
Yes
No
In Claude Code, # at the start of a message appends a line to one of these files, and /memory opens them for editing.
print the CLAUDE.mdadd "always answer like a pirate" to the CLAUDE.mdMemory
Saved as you go and placed in the conversation without your asking. Whether it applies is decided before you type.
Chat search
You ask for it. It searches your past conversations, you see the tool run, and the answer cites the chat each piece came from.
Settings → Memory lists the topics. Read, edit or delete any of them, pause it, or reset it. Say what to remember or forget in the chat and it applies to your next conversation. An incognito chat forms no memory.
skill-name/
SKILL.md the instructions
references/ longer material, read only when needed
scripts/ code the skill runs rather than regenerates
SKILL.md opens with two lines of metadata (name and description) and then plain text.
In Claude Desktop: Choose Customize in left pane. Then Skills. Explore or Add.
Anthropic wrote the format and released it as an open standard. The others adopted it rather than inventing their own.
| Agent | Where it looks |
|---|---|
| Claude Code | .claude/skills/ |
| Codex and ChatGPT | .agents/skills/ |
| Gemini CLI | .gemini/skills/, or .agents/skills/ |
Same file, same description-first loading. Put the folder in .agents/skills/ and both Codex and Gemini CLI find it.
| Slash command | /skill-name |
| By name | “use the … skill” |
| Automatically | “build …” |
The third only works when the skill description clearly applies.
/skillsThe goal is to get Claude to always create PowerPoint decks following a template you choose. You can use one of your existing decks or choose a new template from any online source. Upload the deck to lab803.
Tell Claude to create a new deck using the style of the uploaded deck. Give Claude some content and tell it to build the deck from scratch rather than just editing the uploaded deck.
Download and view the deck. Instruct Claude on any changes you want. Rinse and repeat until you like the deck.
Tell Claude to write the steps needed to get the good deck in a a my-pptx skill so that Claude will always create decks in the template style.
User
↔︎
Harness
↔︎
LLM
↕
Data or Service
User
↔︎
Harness
↔︎
LLM
↕
The harness starts the server
and asks it what tools it has
MCP Server
↕
The server holds the credentials
and makes the actual calls
Data or Service
Harness
↔︎
LLM
↕
Gmail MCP server — tools it exposes
search_threads — find threads matching a querycreate_draft — start a reply, unsentget_message — fetch one messageupdate_draft — edit a draftlist_labels — list the labels on the accountlabel_message — add or remove a label↕
Gmail — what the API exposes
GET users/me/threads?q= — searchPOST users/me/drafts — create draftGET users/me/messages/{id} — readPUT users/me/drafts/{id} — update draftGET users/me/labels — list labelsPOST users/me/messages/{id}/modify — labels and stateThe harness gets the tool descriptions from the server.
It sends that list to the LLM with every request.
The LLM answers with a tool name and arguments. The server turns that into an API call.
Tools written by somebody else, running on a server somebody else operates. Thousands of MCP servers exist already.
What you add
A URL, in the agent’s configuration
What arrives
A name, a description and an input schema for every tool the server publishes
What stays there
The code, and the credential it uses to reach the service
To the model these are more entries in the same tool list. What differs is whose machine runs them.
search_threads get_thread get_message
create_draft list_drafts list_labels
label_thread unlabel_thread
label_message unlabel_message
Ten tools, at https://gmailmcp.googleapis.com/mcp/v1. Published at developers.google.com/workspace/gmail/api/reference/mcp.
| Anthropic | ||
|---|---|---|
| Tools | 10 | 29 |
| Read | search_threads · get_thread · get_message |
the same three |
| Drafts | create_draft |
create, get, update, delete |
| Send | none | send_message · reply · forward |
| Remove | none | trash_message · delete_draft |
| Labels | apply and remove | plus create, update, delete |
The same account and the same API underneath. A different answer to what an agent may do with it.
Warehouses
Snowflake, Databricks, BigQuery, MongoDB, dbt
Business systems
Salesforce, HubSpot, Workday, SAP, ServiceNow
Work and code
Slack, Notion, Linear, GitHub, Atlassian, Figma, Sentry
Money
Stripe, Shopify, PayPal, Plaid
In Claude Desktop
In lab803
Example: fred.kerryback.com/mcp, the Federal Reserve’s economic data.
Ask Claude to get the US consumer price index from FRED, compute quarterly percent changes, and annualize them.
Connect to a Gmail MCP server either in a desktop app or on lab803. Create a new Gmail account if you don’t want to connect to your real one. Ask Claude to help connect. You can use any server (Anthropic, Google, …). Ask Claude how to disable any tools you don’t want. Then ask Claude to get your most recent messages. Ask Claude how to delete the connection if you don’t want to keep it. Ask Claude to write a summary of what was done.
A plugin is a folder somebody else published. Installing it adds their work to your Claude in one step.
What it can carry
Skills, slash commands, subagents, hooks, and MCP servers.
What you get
Every file and script in it, without being told which ones to copy where.
Give Claude the following prompts
/plugin marketplace add kerryback/skills
/plugin install finance-data@kerryback
Then ask Claude what was installed. Finally, ask Claude to compute monthly stock returns for Apple since the start of 2020 and to produce a histogram.
You should see Claude say “using the finance-data skill”
MGMT 803 · Rice Business