AI Guides › Workbench
By Nigel Guy · 6 min read
Most people open Claude Code in a project and start by explaining themselves: what the business is, how it should sound, what is half-finished. Next session, they explain it again. It feels like progress because Claude answers well each time, but you are paying in typing and context for the same briefing on repeat.
The rule: anything you would say twice goes in a file, and each file does exactly one job.
This kit is five plain Markdown files. Only one of them is loaded by Claude Code automatically; the other four earn their place by being referenced from it. That distinction is the whole trick, and it is the part most template packs skip.
| File | Job | Loaded how | Cost | Catch |
|---|---|---|---|---|
| CLAUDE.md | Rules, structure, where to look | Automatically, every session | Free file; Claude Code is included in paid Claude plans (Pro is $20/month, about £16 at time of writing; check the £ price at checkout) | Over about 200 lines, adherence drops |
| VOICE.md | How your writing sounds | Only if CLAUDE.md imports or points to it | Free | Examples go stale if you never update them |
| BUSINESS.md | Who you serve, what you sell | Same | Free | Wrong prices here get repeated confidently |
| TODO.md | State of work between sessions | Same | Free | Only works if it is kept current |
| .claude/agents/ files | Named specialists | When Claude delegates, or you @-mention one | Free | Each one adds a description to context |
The fifth file is usually called "Agents.md" in templates. That name already means something. In Claude Code's documentation, AGENTS.md is a project-instructions file shared across coding tools, and Claude reads it only when you have no CLAUDE.md in your working directory or above it (this needs a recent Claude Code version; check the memory page below). If you have both, Claude reads your CLAUDE.md files only, unless you change a setting or import AGENTS.md from CLAUDE.md.
Claude Code's actual mechanism for named specialists is subagents: Markdown files in .claude/agents/ (this project) or ~/.claude/agents/ (all projects). So in this kit, the "agents" file is a set of subagent files, not a root-level AGENTS.md.
Claude Code reads ./CLAUDE.md or ./.claude/CLAUDE.md at the start of every session, plus any in parent directories. Keep it under about 200 lines; the docs say longer files use more context and reduce adherence. Run /init to get a first draft, then cut it back to what Claude would not discover alone.
# [PROJECT_NAME]
## What this project is
[ONE_PARAGRAPH_PURPOSE]
## Folder structure
- /[FOLDER_1]: [WHAT_LIVES_HERE]
- /[FOLDER_2]: [WHAT_LIVES_HERE]
## How to navigate this repo
Before writing anything, read @VOICE.md. Before mentioning offers or prices, read @BUSINESS.md. Check @TODO.md for current state.
## Rules that always apply
- [RULE_1, e.g. British spelling]
- [RULE_2, e.g. never invent statistics]
- If an input is missing, ask; do not guess.
The @path lines are imports: the referenced file is expanded into context at launch, relative to the file containing the import, up to four hops deep. Two consequences. Imports organise a long file but do not shrink its context cost. And a path inside backticks is not imported, so write @VOICE.md bare when you want it loaded.
Adjectives like "warm but professional" do little. Paired examples do more.
# Voice
## Tone
[THREE_PLAIN_DESCRIPTIONS, e.g. direct, dry, second person]
## Words and phrases to never use
[LIST_OF_BANNED_WORDS]
## Good example
[PARAGRAPH_YOU_ACTUALLY_WROTE_AND_LIKE]
## Bad example
[PARAGRAPH_THAT_SOUNDS_WRONG] -- Why: [REASON]
Use real writing of yours, not something generated. Claude copies what it is shown.
# Business
## Who I serve
[CUSTOMER_TYPE, THEIR_PROBLEM, WHAT_THEY_ALREADY_TRIED]
## What I sell
[PLAIN_DESCRIPTION]
## Current offers
| Offer | Price | Who it is for | Status |
|---|---|---|---|
| [OFFER] | [PRICE] | [AUDIENCE] | [LIVE_OR_PAUSED] |
## What Claude should never assume
- [E.G. no discounts exist unless listed here]
- [E.G. no client names or results unless pasted in]
The last section is the valuable one. It turns "Claude made up a testimonial" into a rule you can point at.
# Todo
## In progress
## Blocked, waiting on
## Done, not yet shipped
## Log
- [DATE]: [ONE_LINE_OF_WHAT_CHANGED]
End each session with: "Update TODO.md with what changed, what is blocked, and the next step." Claude Code also has auto memory, where Claude writes its own notes, but that is separate from this file; keeping TODO.md yours means you can read and correct it.
Create .claude/agents/[AGENT_NAME].md. Only name and description are required in the frontmatter; tools and model are optional, and omitting tools means the agent inherits everything.
---
name: [AGENT_NAME]
description: [WHEN_CLAUDE_SHOULD_USE_THIS, ONE_SENTENCE]
tools: Read, Grep, Glob
---
You are [ROLE]. Your job is [GOAL].
Read VOICE.md and BUSINESS.md before you start.
Output: [FORMAT].
Do not: [LIMITS]. If information is missing, ask.
Give a reviewer or researcher read-only tools. Per the docs, project agents override same-named user agents, and the body loads only when the agent runs, so keep descriptions short and put detail in the body.
You are helping me set up five project files for Claude Code. Ask me one question at a time, in this order: project purpose, folder layout, writing style (ask for two real samples), customers, offers and prices, current work. Do not guess any answer; if I skip one, mark it [TO CONFIRM]. When finished, output CLAUDE.md (under 150 lines, importing the others with @ lines), VOICE.md, BUSINESS.md and TODO.md as separate code blocks. Before output, check that no file states a fact I did not give you. My project is: [PROJECT_DESCRIPTION].
Fill in the project description; Claude does the interviewing.
Start with CLAUDE.md alone. Add VOICE.md the first time you correct tone twice. Add BUSINESS.md when Claude gets a price or audience wrong. Add TODO.md when you lose track between sessions. Add a subagent only for a task you repeat with a fixed output.
.claude/rules/ files, which can be scoped to paths.AGENTS.md alongside CLAUDE.md unless you also use other coding tools and have read the loading rules.