CLIENT.md, PLAYBOOK.md, RULES.md, JOURNAL.md — four files, one job each, under 300 lines total. The minimal system that gives any AI agent the context to run like a senior employee.
This guide is reviewed for clarity, service accuracy, and AI-search readability. The next quarterly content review is tracked internally before unsupported metrics or client proof are added.
Why most AI agent setups fail
The typical AI agent install ships with 20+ files of documentation — none of which get read reliably. The agent sounds generic on every run because the context is buried under complexity it never surfaces.
The fix isn't better documentation. It's less of it. Four files, each with one job, all under 300 lines total. The agent reads all four on every run. The human reviews them once a quarter. When something changes, you update one file.
Each file has a one-word job. If you can't describe what a file does in one word, the file is wrong.
- CLIENT.md — Context: who the client is, their vocabulary, their systems, their rules
- PLAYBOOK.md — Workflow: what the agent does, step by step, and when it hands off to a human
- RULES.md — Audit: what the agent must never do. The compliance file.
- JOURNAL.md — Memory: what the agent has learned. The only file that grows.
The session start prompt — paste this into AGENTS.md
This is the single prompt that tells the agent to read all four files in the correct order before doing anything. Paste it into your AGENTS.md or CLAUDE.md as the session start protocol.
promptAt the start of every session, read these files in order: 1. CLIENT.md -- who this client is and how they speak 2. RULES.md -- what you must never do before you do anything 3. PLAYBOOK.md -- the workflows active today 4. JOURNAL.md (last 20 entries) -- what you have learned recently After reading, state: - Who the client is - Which workflows are active today - Any recent journal entries that affect today's work Then ask: what would you like me to work on? At the end of every session, append to JOURNAL.md: - Any corrections you received - Any escalations and whether they were correct - Any gaps in the playbook you encountered
FILE 1 — CLIENT.md template
The single source of truth the agent reads on every run. Under 100 lines. Filled in on day one with the client. Never grows large — if it exceeds 100 lines, it has become documentation, not context.
markdown# CLIENT.md -- Context # The client's full context. Claude reads this on every run. # Target: under 100 lines. ## WHO THEY ARE Business name: [Client name] Industry: [e.g. medical clinic, accounting firm, home services] Primary contact: [Name, role, email] What they do: [One sentence] ## THEIR VOCABULARY - [Their word for customers] = [e.g. members, patients, clients] - [Their word for their service] = [e.g. appointments, jobs, cases] - [Their key system] = [e.g. Jobber, Jane, Clio, ServiceTitan] ## THEIR SYSTEMS | System | What it does | How the agent interacts | |---|---|---| | [System] | [Purpose] | [Read / Write / Trigger] | ## THEIR BUSINESS RULES - [e.g. Always quote the member rate for existing customers] - [e.g. Do not book on Wednesdays -- doctor is off-site] ## LAST UPDATED [YYYY-MM-DD] -- [What changed]
FILE 2 — PLAYBOOK.md template
Every automated workflow written in verbs only. Each entry has four lines. A clinic intake reads: 'Greet. Identify caller. Ask date of birth. Confirm insurance. Escalate if unclear.' Built during Week 1, reviewed quarterly.
markdown# PLAYBOOK.md -- Workflow # The workflows we automated. Step by step. Verbs only. # Target: four lines per workflow. Under 80 lines total. ## FORMAT Trigger / Agent does / Escalate if / Human approves ## [Workflow 1 -- e.g. Inbound Call Intake] Trigger: Inbound call or message received Agent does: Greet. Identify caller. Ask reason. Log. Route. Escalate if: Caller distressed / request outside scope / lookup fails Human approves: Nothing -- fully automated ## [Workflow 2 -- e.g. Appointment Booking] Trigger: Caller requests an appointment Agent does: Ask date/time. Check availability. Offer 2 slots. Confirm. Book. Escalate if: No availability / outstanding balance / specific provider Human approves: Nothing -- fully automated ## [Workflow 3 -- e.g. Quote Request] Trigger: Caller asks for price or estimate Agent does: Identify service. Look up price file. Quote verbatim. Offer to book. Escalate if: Service not in price file / discount request / custom scope Human approves: Any price not in price file before quoting ## [Add more workflows in the same format]
FILE 3 — RULES.md template
What the agent must never do. Two sections: universal rules and client-specific restrictions. Every rule has a change log. Rules only change with explicit client approval. Compliance officers ask to see this file — hand it over.
markdown# RULES.md -- Audit # What the agent must never do. The compliance file. # Target: under 60 lines. ## UNIVERSAL RULES - NEVER give medical advice, diagnoses, or treatment recommendations - NEVER give legal advice or interpret contracts - NEVER give financial advice or quote tax outcomes - NEVER quote a price not in the approved price file - NEVER share a caller's contact info without verification - NEVER claim to be a human if sincerely asked - NEVER make commitments that require human approval first - NEVER discuss active litigation or insurance claims - NEVER store or repeat credit card numbers, SSNs, or passwords ## CLIENT-SPECIFIC RULES - [MUST NOT book if balance exceeds $200] - [NEVER reference a competitor by name] - [Add client-specific rules here] ## ESCALATION RULES Always escalate when: caller is distressed / request outside playbook / system error / caller disputes agent statement / caller asks for human ## CHANGE LOG - [YYYY-MM-DD] Initial rules agreed with [client name]
FILE 4 — JOURNAL.md template
What the agent has learned. Append-only — the agent adds to it after every run, never edits past entries. The only file that grows. Every quarter, promote journal entries into the appropriate file.
markdown# JOURNAL.md -- Memory # What the agent has learned. Append only. Never edit past entries. # The only file that grows. Review quarterly with the client. ## AGENT INSTRUCTIONS At the end of every session, check: 1. Did I make any decision not covered by the playbook? 2. Did I escalate? Was it correct or unnecessary? 3. Did the client correct anything I said? 4. Did I encounter a gap the playbook should cover? If yes to any: append below. Do not edit past entries. Format: [YYYY-MM-DD HH:MM] [TYPE] [Description] Types: CORRECTION | ESCALATION | FALSE POSITIVE | GAP | LEARNED ## JOURNAL ENTRIES [YYYY-MM-DD HH:MM] LEARNED Starting entry -- journal initialized ## QUARTERLY REVIEW 1. Which CORRECTIONs become new RULES.md lines? 2. Which GAPs become new PLAYBOOK.md workflows? 3. Which FALSE POSITIVEs mean adjusting escalation thresholds? 4. Which LEARNEDs get promoted to CLIENT.md?
The maintenance rhythm
- Day one — fill in CLIENT.md and RULES.md with the client present. Run the workflow audit to populate PLAYBOOK.md.
- Week one — refine PLAYBOOK.md as edge cases surface during real runs. Add missing workflows in the same four-line format.
- Ongoing — JOURNAL.md updates automatically after each agent run. No manual work required.
- Quarterly — read all four files. Cut anything stale. Promote journal entries into the appropriate file. If any file feels long, that's the signal to simplify — not to add more files.
Frequently asked questions
Why only four files? More files means more context the agent has to search through — and more documentation that goes stale without anyone noticing. Four files with one job each means every run starts with accurate, readable context. A new team member can understand the full install in under 10 minutes.
What if a client has complex workflows that don't fit four lines? Break complex workflows into smaller sub-workflows, each with its own four-line entry. If a workflow genuinely needs more than four lines, it's doing more than one thing — split it. The four-line constraint forces clarity, not brevity for its own sake.
Can this work with agents other than Claude Code? Yes. The file structure is model-agnostic. The same four files work as context for any AI agent that reads files at the start of a session — Cursor, Codex, or any custom agent built on a foundation model. Only the session start prompt format changes slightly.
