All modules

Module 4 of 6

Agents as your specialists

A skill runs in your chat, under your eyes. An agent works in its own room and brings you the finished thing. Today you learn what that room actually is, what the agent knows when it wakes up there, and then you ship the specialist you have been designing since Module 1.

By the end of this module
  • Explain what an agent’s own context window buys you, and why that is the reason agents can take whole jobs
  • Know what an agent actually knows when it wakes up: the three layers of memory, and why all of them are files
  • Design the spec with the agent, in your Hub: the M3 meta-prompting loop, pointed at a bigger artifact
  • Ship one specialist agent to .claude/agents/ in your Hub and dispatch it on a real job

You have been designing toward this since M1. The spec you wrote there, and the job you flagged in the M3 pre-work, graduate today into a working specialist on your bench.

Watch

The two videos

recording soon
Concept video2–4 min

The clean room: what an agent’s own context window buys you, the three layers of memory, the tools line as an employment contract, and the bench.

scripts/M4-agents-concept-script.md
recording soon
Build With Me video5–8 min

The annotated daily-brew walk-through, recorded from Linda’s workspace, then a live dispatch against the notes scribe filed.

scripts/M4-agents-build-with-me-script.md

Concept

A specialist in its own room

The decision rule, one more time, now from the agent’s side: if you would rather hand the job off and check back, it is an agent. Today is about what “handing off” actually means.

First, the term that makes this concrete, because today it starts doing real work: a context window is the model’s working memory for one conversation — everything it can see at once. When a conversation ends, that memory clears; nothing carries over on its own.

When you dispatch an agent, the system opens a separate context window: a clean room. The agent wakes up there with its spec, your dispatch message, and nothing else. It reads the files its spec names, does the whole job, and returns a finished result to your chat. Then the room is torn down.

That isolation is not a technicality. It is the feature:

  • The agent works from a clean desk. It sees its instructions and its sources, not the forty messages of unrelated conversation in your chat. Less noise in, sharper work out.
  • Your chat stays yours. The agent can read ten files and chew through a long transcript without flooding the conversation you are working in. You get the report, not the research.
  • Specialists can multiply. Because each agent runs in its own room, you can dispatch several at once.

This is why the hire analogy from M1 is exact, not cute. A skill is an SOP you follow yourself, in your own office. An agent is a specialist who works in another room and brings you the finished thing.

What the agent knows: multi-layer memory

Here is the question that separates builders from prompt-writers: when your agent wakes up in that clean room, what does it know? Three layers, and every one of them is markdown in your Hub:

LayerWhat it isWhen it loadsExample
The specThe agent’s standing identity and procedureEvery dispatch, automatically.claude/agents/daily-brew.md
The dispatch messageWhat you say when you send it to workThis run only"Brief me. I pasted yesterday’s transcript below"
The HubThe files its Context section tells it to readWhen the spec says sonotes/<yesterday>.md, CLAUDE.md

Notice what is missing: the agent remembers nothing on its own. Context is assembled at dispatch, not remembered between runs. The reason daily-brew can brief you every morning is not that it remembers yesterday; it is that scribe filed yesterday into notes/, and daily-brew’s spec says to read it. The memory is the files. The agents are how the files get written and read.

The system insight of the whole curriculum: your agents get smarter only when your Hub does. Every note scribe files, every line you add to CLAUDE.md, is memory every future specialist inherits.

The limit you will eventually hit: a context window is finite. Hand an agent far more than it can hold (a quarter’s worth of transcripts in one paste) and it will skim, skip, or summarize — not because it is lazy, but because it literally cannot see it all at once. The fix is the design you are already learning: keep dispatch inputs focused, and let the spec point at files instead of pasting everything in. The agent reads what it needs, when the spec says so.

The frontmatter is the employment contract

A skill’s frontmatter was two fields, because a skill runs in your chat, under your eyes, with your permissions. An agent works alone in another room, so its frontmatter carries more: name and description work exactly as they did for skills, and then comes the field that matters.

  • tools is least privilege, decided in advance: what this specialist can touch when nobody is watching. daily-brew gets Read, Grep, Glob: it can read your notes and find files, and it cannot write, delete, or reach the web. Scribe gets Write and Edit because filing is its job. (The plain-English table of what each tool name grants is in M1’s worked example. One name is new here: Grep searches inside files, where Glob finds files by name.) The tools line is where you practice saying no.
  • model is an optional pin. Reasonable to leave out; your Hub’s default is usually right. Worth knowing the knob exists: smaller, faster models handle routine summarization well and cost less when a job runs on a schedule; the bigger model earns its place on synthesis and judgment calls. You don’t need to change it today.

The tools line is also where this curriculum quietly becomes an operations lesson. One agent with the wrong permissions is a typo. A bench of them is a question you want answered in a file you can read.

Drafting the spec: the M3 loop, one level up

The mistake from M3 applies double here: do not write the spec cold. An agent spec carries more decisions than a skill (an identity, a tools line, a fallback), which means more decisions you do not know you are making until something asks. So you design it the way M3 taught you, in your Hub, with the agent drafting:

  1. 1.Tell Claude Code what you are building: “I want to build an agent that [job]. Read .claude/agents/scribe.md and daily-brew.md as reference specs. Ask me five sharpening questions, then draft the full spec (Identity, Job, Context, Tools, Output) as an agent file with frontmatter: name, description, tools.”
  2. 2.Answer the questions. They are the design.
  3. 3.Critique pass: “Where would this agent get confused working alone? What is it allowed to touch that it shouldn’t be?”
  4. 4.Iterate until the spec reads like instructions to a competent new hire.
  5. 5.Say “File it at .claude/agents/<name>.md and the agent ships it, same as it filed your skill in M3.

Notice what you did not do: leave your Hub. The reference specs are already in the repo, so nothing gets uploaded. The draft becomes the real file with no copy-paste seam. And the whole design conversation happens where the agent will live.

If you do like drafting away from the repo (on the couch, in the Claude app), a Claude Project works fine as a drafting room: the M1 sandbox, revisited. Upload the reference specs, iterate, then have Claude Code file the result. Just remember the spec is not real until it lives at .claude/agents/.

The bench

One more thing isolation buys you, and it is the ceiling of this whole practice: because each agent runs in its own room, you can dispatch several at once. Linda’s competitive sweeps work this way: one agent researches Langfuse, one researches LangSmith, one researches gateways, dispatched together in a single message. Twenty minutes later, three reports; her job is synthesis. The bound on her output stopped being “how fast can I do research” and became “how fast can I read it.”

You will not need parallel dispatch this week. But you should know the shape of the ceiling, because it reframes what you build today: not an automation, the first hire on a bench. And “subagent,” from M1, now resolves completely: when an agent dispatches another agent to its own room, the second one is a subagent. Relationship word, not a thing word.

Worked example

Reading daily-brew line by line

The artifact is daily-brew: scribe’s partner, the start-of-day briefer that ships in the BlueRock plugin. You have been running this agent for two weeks. Today you read the plugin’s version and learn why it works — then build your own in .claude/agents/, which overrides the plugin’s when they share a name.

Unlike M1, where scribe taught you the anatomy’s vocabulary, today’s annotations are about specialist design: what a spec looks like when it is built to work alone.

bluerock plugin · daily-brew agentworked example
---
name: daily-brew
description: My start-of-day briefer. Reads
  yesterday's notes (which scribe files for me at
  end of day) in notes/<yesterday>.md plus my
  CLAUDE.md, produces the brief I'd write for
  myself if I had 15 quiet minutes every morning.
  Use first thing — before email, before Slack.
  In M5 we'll schedule this to run at 7am.
tools: Read, Grep, Glob
model: sonnet
---

1Read-only is a design decision, not a default.

tools: Read, Grep, Glob. This agent synthesizes; it does not file, edit, or fetch. Compare scribe, whose whole job is writing, and who therefore gets Write and Edit. The two specs were scoped as a pair: one writes the memory, one reads it, and neither can do the other’s job by accident. When you write your own tools line, this is the question: what does the job need, and what should this specialist never be able to touch?
## Identity

You sound like a clear-eyed chief of staff who's
been in every meeting I was in yesterday. Frank,
specific, no padding. You don't recap — you
orient. The recap is yesterday's job; your job
is today.

2The Identity earns its keep in one opposition.

“You don’t recap — you orient.” That single line is doing the heaviest lifting in the file: without it, a model handed yesterday’s notes will faithfully summarize yesterday, which is the obvious job and the wrong one. Identity, as in M1, is behavior-shaping or it is cut. Here it points the whole agent forward.
## Context

Inputs you should look for, in order:

1. Yesterday's notes file in the Hub:
   notes/<yesterday>.md, filed by scribe.
2. Granola transcripts or bullets pasted into
   the chat — if I paste raw content at dispatch
   time, use it as primary source.
3. CLAUDE.md at the Hub root. Always read this.
   The "What I'm working on this quarter" section
   is how you decide what counts as "focus" today
   vs. noise.

3The Context section is the memory map.

All three layers from the concept section, named in priority order: the Hub’s files (what scribe filed), the dispatch message (what you paste), the standing brief (who you are this quarter). The agent knows exactly where its knowledge comes from, because the spec wrote it down. And notice the dependency doing the compounding: daily-brew is only as good as what scribe filed yesterday. The agents form a pipeline through the files.
**Fallback — no inputs found:**

- Ad hoc dispatch (the default in M2-M4): mention
  that I probably forgot to dispatch scribe last
  night, then ask me ONE question: "What did you
  spend the most time on yesterday?" Brief from
  my answer + CLAUDE.md.

- Scheduled dispatch (M5 onward): no human is
  present at dispatch time. Do NOT ask a question.
  Produce a stub brief from CLAUDE.md alone ...
  A short empty brief beats a fabricated one.

4The spec plans for the bad morning.

Most first agents are specced only for the day everything exists. This one names its failure mode (no notes filed) and splits the response by who is in the room: ad hoc, with you present, it may ask exactly one question; scheduled, with nobody present, it must not ask, and must not invent. “A short empty brief beats a fabricated one” is the never-do rule of the file: the same source-fidelity floor you wrote into your M3 skill, now operating unattended. That second mode is dormant until M5, and when you schedule this agent, the spec is already ready.
## Output

- Markdown, paste-ready. No greeting. Start at
  the first heading.
- Under 250 words on a normal day. Up to 350 if
  yesterday was huge — but cut, don't pad.
- Names over abstractions: "Tuesday's Northwind
  call with Alex" beats "the customer call."
- If two notes from yesterday contradict each
  other, surface it in Heads-up — never bury it.
- If a section has nothing real, skip the section.
  Empty sections are more useful than padded ones.

5The Output section budgets attention, not just format.

A word ceiling with a named exception. Skip-when-empty, so structure never becomes padding. “Names over abstractions,” so the brief stays concrete. And the contradiction rule (surface it, never bury it), which is the difference between an agent that performs harmony and a specialist you can trust with your morning. The Job section, not excerpted here, gives the brief the same five-section shape every day, for the same reason: you scan it in ninety seconds because it never changes shape.

The takeaway, same as every module: nothing in this file is clever. It is a specialist scoped to one job, told where its knowledge lives, given the smallest sufficient toolset, and specced for the morning things go wrong. That is what you ship today.

You build

Graduate your spec into a specialist

Your turn
Graduate your agent design into a working specialist. You arrive with material: the anatomy specs from M1, and the one-line job description from the M3 pre-work (the job you would rather hand off than run in your chat). Pick one. Budget 90–120 minutes, or split it into two sittings: the design conversation (steps 1–4) one evening, the ship-and-dispatch (steps 5–6) another. This is the deepest build of the curriculum; pacing it is part of doing it well.
  1. 1Pick the job and re-test it. One sentence: why is this an agent and not a skill? If the honest answer is “I could finish it in my chat,” pick the other candidate.
  2. 2Start the design conversation. In Claude Code, in your Hub: I want to build an agent that [job]. Read .claude/agents/scribe.md and daily-brew.md as reference specs, and here is my M1 sketch: [paste it, or name the file if it already lives in your Hub]. Ask me five sharpening questions, then draft the full spec (Identity, Job, Context, Tools, Output) as an agent file with frontmatter: name, description, tools. (Filed your M1 spec in M2? It’s at .claude/agents/<name>.md; name it. Didn’t? Paste it from wherever you drafted it, or take five minutes to re-sketch the five parts; the sharpening questions will fill the gaps.)
  3. 3Iterate like M3 taught you. Answer the questions, then: Critique this draft. Where would the agent get confused working alone? What is it allowed to touch that it shouldn’t be? Push hardest on Context (where does its knowledge live, in priority order?) and Tools (what did it get that the job doesn’t need?).
  4. 4Spec the bad morning. Ask: What happens when the inputs this spec assumes don’t exist? Add the fallback. Steal daily-brew’s floor: a short honest result beats a fabricated one.
  5. 5Ship it. Say File it at .claude/agents/<name>.md. The agent ships it, same as it filed your skill in M3. Then Source Control: commit (“Add <name> agent”), sync.
  6. 6Dispatch it on a real job. In Claude Code: Use <name> to <the actual job, with today’s real input>. Watch what comes back. Read it like an editor, then refine the spec with what you learned, and push the refinement.

You are done when

Checkmarks save in this browser only

If you finish early: dispatch two specialists in one message, your new agent and daily-brew each on its own job, and watch the bench work in parallel.

Use it for real

Between now and M5

Take-home
Dispatch your agent on real work three times this week. After each dispatch, refine the spec (tighten the Identity, re-rank the Context, trim a tool) and push. Same loop as your M3 skill: use, notice, refine, push. Three dispatches is where a specialist stops being a demo and starts being staff.

Before the next module

Checkmarks save in this browser only

The meta-layer

How Linda does this

Patterns from How I work with AI that show up in M4:

6Parallel agents

The bench is the ceiling of today’s build. Linda’s competitive sweeps dispatch researcher specialists side by side; the bound becomes synthesis capacity, not response time.

3Markdown is memory

Multi-layer memory is this pattern made architectural. The agent remembers nothing; the Hub remembers everything. Scribe writes the memory, daily-brew reads it, and your new specialist inherits whatever the files know.

9Verify before claiming done

An agent returning a confident result is not the same as the job being done. Reading the dispatch result like an editor, then refining the spec, is the personal-scale version of Linda’s rule.

Module 4 — Agents as Your Specialists · BlueRock for Builders