What the agent sees
The agent starts each session knowing only what's in your files, plus a short Project memory if you use Cowork. It looks at those files and works out what to do from what it sees.
A folder with your ICP, your positioning, three posts you're proud of, and a list of words you never use produces drafts that sound like your company. A folder called Downloads produces drafts that sound like everyone else's.
So spend your setup time on the workspace. A better prompt helps one session. The folder gets read at the start of every session after it.
output/. Nothing leaves the workspace until you check it and ship it yourself.The five-layer stack
Each layer depends on the one below it. Layers 1 and 2 do most of the work on draft quality. Layers 3 to 5 are where you stop re-explaining and re-checking.
Quality check
A second pass that reads every draft against your voice rules and checks every number before it ships.
Connectors
Read access to your CRM, docs, and call notes, so the agent works from real accounts instead of guesses.
Skills
Saved playbooks for work you repeat: a LinkedIn post, a campaign brief, a competitor snapshot.
The rules file
AGENTS.md. What this workspace is, where things go, how you like work done, what never happens.
Folders + git
A place for everything, named so the agent can find it, with a history you can roll back.
Start at layer 1 and build up.
Pick your track
Use the toggle at the top to filter the whole guide. You can switch any time, and the folder structure is the same on both.
Start in Cowork
Cowork runs in the Claude desktop app on Mac and Windows (Linux is in beta), and on web and mobile. It needs a paid Claude plan, so it won't appear on the free plan. On your computer it works inside one folder you authorize, and each Project keeps its own memory. GitHub Desktop gives you version history with buttons, no commands.
Claude Code and Codex
You work in a terminal, use git directly, and keep the rules file and skills in the repo. More setup on day one. More control and easier sharing after that.
Most students mix them: Cowork for daily drafting and research, a terminal tool for anything that touches data, automation, or a shared repo.
The starter folder structure
This tree is built for marketing work. context/ matters most. It holds everything the agent reads before it drafts for you.
my-marketing-workspace/ ├── AGENTS.md # the rules (every tool reads this) ├── CLAUDE.md # one line: @AGENTS.md ├── README.md # what this workspace is, in one paragraph ├── .gitignore # what git never tracks: secrets, exports │ ├── context/ # read this before drafting anything │ ├── company.md # product, ICP, positioning, proof points │ ├── personas/ # one file per buyer │ ├── voice/ # voice guide, banned words, 5 best examples │ └── brand/ # colors, fonts, logo rules ├── inbox/ # raw material lands here first ├── campaigns/ # one folder per campaign or project │ └── 2026-q4-webinar/ │ ├── README.md # goal, audience, owner, status │ ├── inputs/ │ └── drafts/ ├── output/ # shipped work: content, emails, decks ├── reference/ # research and source material you reuse ├── templates/ # starting points that aren't skills yet ├── archive/ # finished campaigns └── .agents/skills/ # your saved playbooks (Part 6)
Why it's shaped this way
context/is the part that changes the output. Your ICP, voice, and positioning live in one place, so every draft starts from them.inbox/keeps the top level clean. New files land there until they have a home.campaigns/holds work in motion. Each one gets a short README with goal, owner, and status, so you and the agent can see where it stands.output/keeps what the agent made apart from what it read. That one split ends most of the "where did it save that" hunting.
inbox/ and archive/ are yours. Empty inbox/ weekly, and never let the agent delete anything from archive/.Naming that scales
- Lower-case and hyphenated:
q4-pipeline-review, notQ4 Pipeline Review (final)(2). - Dates first, as YYYY-MM-DD, so they sort:
2026-10-31-board-update.md. - A prefix when it helps grouping:
webinar-,abm-,acme-.
Make an empty folder in Documents and give it your workspace name. In the Claude desktop app, click Projects in the left sidebar, click +, choose Use an existing folder, pick that folder, and click Create. That folder is everything the agent can see. Don't build the subfolders by hand, since Finder won't create names that start with a dot. Copy the prompt from the workspace builder and paste it into the Project. It makes every folder and file for you.
Create the folder, cd into it, run git init, and add the .gitignore from the starter kit before anything else.
The rules file
This file tells the agent who you are, where files go, and what it must never do. Each tool looks for a different file name, so write the rules once in AGENTS.md and point everything else at it.
| Tool | What it reads | Where |
|---|---|---|
| Codex | AGENTS.md | Every folder from the repo root down to the folder you start Codex in, merged, plus your personal ~/.codex/AGENTS.md |
| Claude Code | CLAUDE.md | Repo root and subfolders, plus your personal ~/.claude/CLAUDE.md. A one-line @AGENTS.md pulls in the shared rules. |
| Cowork | Project instructions and memory | Inside the Project, in the app. Paste your AGENTS.md in, and paste it again each time you edit the file. |
Older guides say to write CLAUDE.md and point AGENTS.md at it. Flip that. Codex has no import syntax, but Claude Code can import a file. Put the rules in AGENTS.md and make CLAUDE.md one line: @AGENTS.md. Recent Claude Code releases also fall back to AGENTS.md when no CLAUDE.md exists, but the import works on every version.
AGENTS.md reaches both in the next session. Cowork reads a copy, the dashed line, so it only sees the change after you paste the new version into the Project instructions.What goes in it
- What this workspace is. One paragraph: your company, your role, what you use it for.
- Read before drafting. Point at
context/company.md, your personas, and your voice guide. - Where things go. A table mapping kinds of work to folders. The agent checks it every time it saves a file.
- How you like things done. "Show me a plan before writing files." "Date every file." "Lead with the hook."
- What never happens. "Never send, post, or publish anything." "Never update the CRM without asking." "Never invent a statistic."
Keep it under about 200 lines and link out to detail. Past 200 lines, agents start skipping rules and you stop updating the file.
Two habits that make it better every week
- Keep the file short and specific. A study by Gloaguen and colleagues at ETH Zurich (ICLR 2026 workshop) tested context files on coding agents. Whether an AI model or a developer wrote them, the files didn't raise success rates on average and raised costs by over 20%. Agents did follow the instructions, but general overviews didn't help. So list the rules that change the work and skip the background. Let the agent draft a first version if you want, then cut everything that isn't true and specific.
- When the agent gets something wrong, add a rule so it doesn't happen again.
Skills: your saved playbooks
The rules file says how you work in general. A skill says how to do one job. It's a folder with a SKILL.md file: a name, a one-line description of when to use it, and the steps. Claude Code, Cowork, and Codex all support them.
The agent reads only the description until a request matches it, then loads the full playbook. So the description is the trigger. Write it in the words you type: "Use when I ask for a LinkedIn post or say 'turn this into a post.'"
SKILL.md, follows the steps, and saves a dated draft.| Tool | Where skills live |
|---|---|
| Claude Code | .claude/skills/ in the repo, or ~/.claude/skills/ for every project |
| Codex | .agents/skills/ in the repo, or ~/.agents/skills/ for every project |
| Cowork | You upload skills in the app. Cowork doesn't read them from your folder. Compress the skill's folder into a ZIP file (on a Mac, right-click it in Finder and choose Compress). Then go to Customize, then Skills, click +, choose Create skill, then Upload a skill, and pick the ZIP. Cowork's Skill Creator can also interview you and write one, and plugins add skills in bundles. |
The starter tree keeps skills in .agents/skills/, which Codex reads. Claude Code only reads .claude/skills/. From inside your workspace folder, link the two once: mkdir -p .claude && ln -s ../.agents/skills .claude/skills. The builder's setup script does this for you when you pick both tools. Then open each tool and confirm it lists the skill. Never assume a skill loaded. Both tools skip a broken one without telling you. Teammates on Windows need Developer Mode on and git config --global core.symlinks true before they clone, or Claude Code sees no skills.
Good first skills for marketers
linkedin-post
Reads your voice guide and banned words, drafts three hooks, writes the post, checks it against your rules.
campaign-brief
Turns a one-line idea into goal, audience, offer, channels, budget, success metric, and kill criteria.
competitor-snapshot
Researches one competitor's site, pricing, and recent launches, and saves a dated one-pager to reference/.
meeting-followup
Turns a call transcript into decisions, owners, and a follow-up email draft. It never sends the email.
When to make one: the third time you explain the same job to the agent, turn the explanation into a skill.
Connectors: let it read your stack
Connectors (built on MCP, the Model Context Protocol) give the agent access to tools outside the folder: your CRM, docs, call notes, analytics. They're the difference between "write an ABM email to a target account" and "write an ABM email to the five accounts that visited pricing this week."
| Start with | Examples | First real test |
|---|---|---|
| CRM | HubSpot, Salesforce | "List the last five closed-won deals and their source." |
| Docs | Notion, Google Drive | "Open our messaging doc and quote the positioning statement." |
| Call notes | Granola, Gong | "What objections came up in last week's discovery calls?" |
| Analytics | GA4, your warehouse | "Top 10 pages by sessions last month." |
Three rules
- Start every connector read-only. Add write access (sending email, updating records) only after weeks of watching it work, and keep "ask before any write" in your rules file.
- Don't trust the green dot. "Connected" only means the tool can reach the server. Run the first real test above and check the answer against the source.
- Connect only what you use weekly, since each one adds tools the agent has to choose between.
Add connectors from the Customize menu in the Claude app, then pick which ones a task can use from the "+" menu in the chat.
Claude Code: connect a tool once at claude.ai/customize/connectors and Claude Code picks it up, or add it with claude mcp add. Google Drive works only the claude.ai way. Check with /mcp. Codex: install the vendor's plugin with codex plugin add <name>@openai-curated, or add the server under [mcp_servers] in ~/.codex/config.toml. The builder's connector recipes say which path each tool needs. Keep API keys in environment variables, never in the repo.
GitHub and teams
GitHub keeps every version of your workspace and lets a teammate work in it with you. You'll use a small slice of it: commit, push, and a private repo.
- Install GitHub Desktop.
- Sign in. Choose File, then Add Local Repository, and pick your workspace folder. If it says the folder isn't a Git repository yet, click create a repository, then Create Repository.
- Click Publish repository. Leave Keep this code private checked. You only do this once.
- After each chunk of work, type a short note ("add Q4 webinar brief"), click Commit, then Push origin.
First time on this computer? Install the GitHub CLI from cli.github.com, then run gh auth login and sign in. If git has never been set up here, also run git config --global user.name "Your Name" and git config --global user.email "you@company.com". Change my-marketing-workspace to your folder's name. If the builder's setup script made your workspace, skip git init and the commit, because the script already did both.
cd my-marketing-workspace git init git add . git commit -m "Set up workspace structure" gh repo create my-marketing-workspace --private \ --source=. --push
Commit habits
- Small and often. One change per commit.
- Start with a verb: "add," "fix," "rewrite." Keep the first line under about 50 characters.
- Make repos private by default. Your
context/folder is your positioning.
Working with a team
Solo, you can skip branches. Once two people edit the same workspace, use them: each person works on a branch, opens a pull request, and a teammate approves before it merges. On GitHub's free plan a private repo can't require that approval, so it stays a team habit. GitHub Pro or Team can enforce it with a branch protection rule on main. Give each folder one owner, and treat a change to AGENTS.md like a policy change, since it changes how every teammate's agent behaves.
The quality check
Agents write fluent text fast. Generic phrasing and made-up numbers read as smoothly as the good parts, so you can't catch them by skimming. Before anything ships, run three checks.
- Check the draft against
context/voice/: banned words, sentence patterns you never use, how your best examples open. - Find a source you can open for every number, customer name, and claim. If the agent can't point to one, cut it.
- Review in a fresh session. A session grading its own draft goes easy on it.
You are reviewing a draft you did not write. Read AGENTS.md and everything in context/voice/ first. Then review the draft below and return: 1. Every sentence that breaks a voice rule, with the rule it breaks 2. Every number, name, or claim, and whether a source exists in this workspace (cite the file) or not 3. The three weakest lines, and a rewrite for each 4. A verdict: SHIP, REVISE, or REWRITE Do not rewrite the whole draft. Do not soften the verdict. DRAFT: <paste here>
Save that prompt as a skill once you've used it three times. If the draft is already a file and you have the draft-review skill, use Fresh-session draft review from the prompt library instead.
Safety
- Keep API keys and passwords out of the workspace. Put them in environment variables or a password manager. The
.gitignoreblocks the common ones. - Don't drop full CRM exports with emails and phone numbers into the folder. Pull what a task needs through a connector, or strip personal details first.
- Keep your tool on the setting that asks before deleting files, sending, or writing to another system. Cowork asks before high-risk actions. In Claude Code, don't use
--dangerously-skip-permissionsor bypass permissions mode. In Codex, don't use--dangerously-bypass-approvals-and-sandbox. Keep the approvals on until you trust a workflow. - A web page, PDF, or inbound email the agent reads can contain hidden text telling it what to do. Treat anything it reads as material to quote, never as instructions to follow, and never let an agent with send access process untrusted content unsupervised.
Per-tool quickstart
Claude Code has the most options of the three. It runs in a terminal, in VS Code and JetBrains, in a desktop app, and on the web. Best for anything touching data, scripts, or a shared repo.
- Run
claudeinside your workspace. It readsCLAUDE.md, and through itAGENTS.md, at the start of every session. - Skip
/initif you used the builder or the starter kit. It writes its draft intoCLAUDE.md, and your rules belong inAGENTS.md. If you run it anyway, copy what you keep intoAGENTS.mdand putCLAUDE.mdback to one line:@AGENTS.md. - Add a
CLAUDE.mdinside a subfolder for rules that only matter there, likecampaigns/CLAUDE.md. - Skills go in
.claude/skills/. Connectors go in withclaude mcp add. Check both are live with/skillsand/mcp. - Ask for a plan before big changes. Plan mode shows you the steps before it touches a file.
OpenAI's agent. It runs in a terminal, an IDE extension, and the Codex app.
- Reads
AGENTS.mdfrom the repo root down to the folder you start it in. A subfolder file overrides the root rules only when you start Codex inside that subfolder. - Personal defaults for every project go in
~/.codex/AGENTS.md. The repo file holds the workspace rules. The closer file wins. - Skills live in
.agents/skills/in the repo, or~/.agents/skills/for all projects. Codex loads only each skill's name and description until it needs the full file. - Connectors are configured under
[mcp_servers]in~/.codex/config.toml.
Start here if you picked No terminal. Open the Claude desktop app and click Projects in the left sidebar.
Anthropic's no-terminal agent, built for knowledge work. Generally available in the Claude desktop app on Mac and Windows since April 2026, and on web and mobile since July.
- Create a Project per workspace. A Project holds its instructions, files, memory, and scheduled tasks. The Project instructions are your rules file, so paste in
AGENTS.md. - It has no file access until you authorize a folder, then it can read and write only inside that folder. Permanent deletion triggers a confirmation.
- Plugins bundle skills, connectors, and sub-agents into one install. Start with one or two, not ten.
- Built-in skills already handle Word, PowerPoint, Excel, and PDF files.
Keeping it healthy
Workspaces decay because files pile up faster than anyone sorts them. If it won't exist next session, write it down now. A decision, a preference, a mistake you corrected in chat. If it only lives in a chat window, the agent loses it.
Weekly habits
- Empty
inbox/into real homes. - Name files when you create them.
- Turn every agent mistake into a line in
AGENTS.md. - File finished campaigns in
archive/.
Signs it's slipping
- Loose files at the top level.
- You can't find something the agent made last week.
- The agent repeats a mistake you corrected twice.
- A skill that never triggers, or a connector that's "connected" but returns nothing.
AGENTS.mdhas grown past 200 lines.
Ask the agent to audit itself: "Read my folder tree, AGENTS.md, and my skills. Tell me what's misfiled, which rules contradict each other, which skills overlap, and what I keep telling you in chat that isn't written down."
That audit checks rules and skills. For files that sit in the wrong folder or have gone stale, use Audit the workspace for stale files from the prompt library.
Copy-paste starter kit
Copy each file into your workspace and fill in the blanks. Or use the workspace builder to get these filled in for your role.
# AGENTS.md # The rules for this workspace. Codex reads this file directly. # Claude Code reads it through CLAUDE.md. Paste it into your Cowork # Project instructions. Keep it under ~200 lines. Edit by hand. ## What this workspace is <One paragraph: company, your role, what you use this for.> ## Read before drafting anything - context/company.md: product, ICP, positioning, proof points - context/personas/: who we sell to - context/voice/: how we sound and words we never use ## Where things go | Type of thing | Goes in | |-----------------------------|------------------| | New, unsorted material | inbox/ | | Campaigns and projects | campaigns/<name>/ | | Shipped work | output/ | | Research and sources | reference/ | | Starting points | templates/ | | Finished campaigns | archive/ | ## How I like things done - Show me a short plan before creating or changing files. - Date files as YYYY-MM-DD at the front of the name. - <add your own> ## Never - Never send, post, publish, or schedule anything. Draft only. - Never write to the CRM or any connected tool without asking. - Never invent a statistic, quote, or customer name. Cite a source file. - Never store secrets or raw customer data in this folder. - Never delete anything in archive/. ## Before anything ships Check it against context/voice/, confirm every number has a source, and have a fresh session review it.
# CLAUDE.md # All rules live in AGENTS.md so Claude Code and Codex read one copy. # Add Claude-only notes below the import if you ever need them. @AGENTS.md
--- name: linkedin-post description: Use when I ask for a LinkedIn post, or say "turn this into a post" or "draft a post about X". Drafts in my voice from context/voice/. Do not use for comments or ads. --- # LinkedIn post 1. Read context/voice/ and context/personas/ before writing. 2. Ask me for the one point of the post if I haven't given it. 3. Write three hook options, each under 12 words. Let me pick. 4. Write the post: short paragraphs, one idea, one specific example. 5. Check the draft against the banned-words list. Fix every hit. 6. Save to output/content/YYYY-MM-DD-linkedin-<topic>.md 7. Never post it. Draft only.
# Secrets and credentials: never commit these .env .env.* *.key *.pem secrets/ credentials.json *-credentials*.json # Raw data exports that may hold customer details exports/ *.csv # System and editor files .DS_Store Thumbs.db .vscode/ .idea/ # Large files *.zip *.mov *.mp4 node_modules/
Prompt library
Copy any of these into a session started from your workspace folder. They work the same in Cowork, Claude Code and Codex. Text in <ANGLE BRACKETS> is yours to fill in. Start with the three prompts in START-HERE.md. These come after.
Setup checklist
Check items off as you go. Progress saves in this browser and follows the track you picked at the top.
Start with two files
Write context/company.md and drop three of your best posts into context/voice/. Those two change the output more than anything else on this page. The rest can wait until week two.