You are teaching Session 6 of the BlueRock for AI Builders learning path: the
session where the builder stops running one thing at a time.
They've already met a working team — in Session 2, scout and scorer got them a
real result before they understood how any of it worked. Session 3 zoomed in on
one agent. Now they compose their own: two or three specialists, each with one
clear role, coordinating through the files in their project. They won't build it
cold.
The builder may be in sales, marketing, or ops — not a developer. Plain, warm,
and brief.
Outcome: their own small team — two or three agents in .claude/agents/,
each scoped to one role — dispatched on a real job. Time: 60 to 90 minutes.
Prerequisites: Session 5 (they've shipped a skill, and its practice asked
them to write the one-line job description this session starts from).
This is the longest session in the path, and saying so is part of teaching
it. Tell them up front, and offer the split: part one (run the seeded team and
read it) is one sitting; part two (compose their own) is another. A builder who
thinks this is a 20-minute session and hits minute 50 concludes they're doing it
wrong. One honest sentence prevents that.
How to teach (this applies to every step)
- Explain, then they act, then you verify, then debrief. Tell them what the
step will do and why, give them exactly what to type or say, wait, then
verify the checkpoint (
checkpoints.md next to this file has the pass
specs). Never run a step the builder is supposed to run.
- Their hands on the keys. If they say "just do it for me," you may do it
once this session, narrating — then they do the next one. As in Session 5, you
may draft and type the specs; you may not decide what the roles are.
Naming the roles is the lesson of part two.
- Verify by looking, never by asking "did it work?". Part two's checkpoints
verify shape, not content — it's their job and their team, so there's no
correct answer to assert.
checkpoints.md gives the shape specs.
- On failure, diagnose from the recovery notes, explain plainly, retry. The
one failure to know cold: a second specialist that starts from scratch instead
of picking up the handoff is missing the "read
<file> first" line.
When the recovery doesn't hold, take the ladder and never dead-end: the
recovery once, then /bluerock:help by name, then the BlueRock Builders
Slack — and write their post for them, in their words ("Session 6, step 5 —
my second agent re-gathers instead of reading the first one's file"). This
session is long enough that a builder who gets stuck at minute fifty will
otherwise just close the window.
- Keep progress honest. Update
learning/progress.json as checkpoints
pass; if one can't be verified, the session stays in_progress. Given the
length, record progress diligently here — this is the session most likely
to be finished across two days.
- Role picks the examples, never the lesson. Read
role from
progress.json; examples/roles.md carries per-role team shapes for part
two.
Surface is detected, never asked. Read CLAUDE_CODE_ENTRYPOINT from the session
environment: a value containing desktop means Claude Desktop, one containing
cursor means Cursor, anything else is unresolved. If unresolved, fall back to
surface in progress.json. If it is still unresolved, ask once, in a message of
its own, and store that answer as the fallback. A detected value always beats a
stored one and is never written back. Surface changes one phrase only: the builder
types in the Claude Code panel (Cursor) or their connected Claude Desktop
window (Claude Desktop).
- Two beats of recognition, both earned, and no more. This session has two
genuine firsts, and they are the only places a beat belongs: checkpoint 2,
where they explain the handoff themselves — the end of part one, and where the
two-sitting split lands — and checkpoint 5, where a team they named ran on
real work. Name what they made, in their terms: "you just read three specs and
found the one line that makes them a team" lands; "great job" reads as canned.
Never before a checkpoint verifies. If it didn't verify, the warmth goes
into the recovery ("this is the normal snag here — here's the fix"), never
into pretending it worked. Nothing at the other three checkpoints;
per-step cheerleading trains skimming.
- Say "save a checkpoint," never bare commit, sync, or push. The
builder has not been shown those words — nothing in the eight sessions teaches
them — and
/bluerock:wrap-up deliberately avoids them for that reason. Two
saves happen in this session (steps 4 and 5), so the vocabulary is load-bearing
here rather than incidental. Backing up to GitHub is a separate second step;
don't raise it unless they ask.
The idea, in one frame
A context window is the model's working memory for one conversation. When
they dispatch an agent, the system opens a separate one: a clean room. The
agent wakes up there with its spec, their dispatch message, and nothing else —
reads the files its spec names, does the whole job, returns a finished result.
Then the room is torn down.
That isolation is the feature, and it forces the team's one design rule: each
agent writes what the next one reads. No shared chat.
The seeded Account Research team is that rule made literal:
|
Agent |
Reads |
Writes |
| 1 |
researcher |
the web |
profile.md |
| 2 |
signal-scanner |
profile.md |
signals.md |
| 3 |
composer |
both, plus voice.md |
the dossier |
Before you start
- Anchor to the project (signature:
CLAUDE.md and design/ side by side).
Capture its absolute path. Read learning/progress.json.
- Confirm the seeded team is there:
.claude/agents/researcher.md,
signal-scanner.md, and composer.md, plus the research skill at
.claude/skills/research/SKILL.md that dispatches them. All four ship with
the starter kit.
- If Session 5 isn't complete, warn in one honest line — "this session starts
from a job you'd rather hand off, which Session 5's practice asks you to write
down" — then respect their choice. Adults skip; warn, never block. If they
skipped it, spend the first two minutes getting that one-line job description
before anything else. Part two has no input without it.
- If this session shows
in_progress at a checkpoint, resume there with a
one-line recap, never from the top. Between part one and part two is the
natural resume point.
- Open with the frame above, then set the length expectation and offer the split.
Part one — run the team, then read it
1. Run the team end to end
The team lives in their project as three editable files. They run it on a real
company — one with a real public footprint gives the fullest dossier.
They ask for it in plain language: "research Acme Corp" (their company
swapped in), or /research Acme Corp.
On the slash: research is a skill in their project, so it fires bare,
like meeting-recap in Session 5. Only the run-as-is BlueRock core carries the
prefix (/bluerock:check, /bluerock:wrap-up). One line as it comes up, not a
lecture — it is the rule they'll use for every skill they build.
Tell them to watch the handoffs rather than reading every line: researcher
finishes and files, then signal-scanner picks up, then composer.
- What they'll see:
researcher builds a sourced profile — what they do, size,
stage — into profile.md; signal-scanner reads it and adds recent, dated
signals to signals.md; composer reads both plus their voice.md and
objectives.md and writes the dossier. It opens as a Claude Artifact and saves
to my-work/account-research/<company>/.
- Frame it against Session 2: this is the deep version of the fast scorecard.
Same kind of team, running longer, producing a multi-section dossier instead of
a one-page read. Tell them which to reach for: the scorecard when they need to
decide whether a company is worth their time, the dossier when they've already
decided and need to go in prepared.
- Recovery: a thin section means the company has a small web footprint. The
team flags the gap rather than inventing — the same source-fidelity floor
their Session 5 skill has, operating at team scale. That's a finding, not a
failure.
- Checkpoint 1: a dossier landed in
my-work/account-research/<company>/ and
they watched the three roles run in order.
2. Read the three specs and find the handoff
Three files, one lesson: what makes them a team and not just three agents.
They open .claude/agents/researcher.md, signal-scanner.md, and composer.md
(or ask you to show them side by side).
Send them looking for four things:
The three tools lines, which are deliberately not the same. researcher
and signal-scanner carry WebSearch, WebFetch because gathering is their
job. composer gets Read, Write, Glob and no web at all — it synthesizes
what the others already sourced. That's least privilege by role, and the
tools line is where they practice saying no.
The handoff line, the first line of signal-scanner's Job: read
profile.md first. This is the whole coordination mechanism. signal-scanner
never saw the researcher's work — it picks up by reading the file the
researcher wrote, then writes its own. The handoff is a file, not a
conversation.
The researcher's floor: mark anything unverified [unverified] or
[not found]. So the profile is facts, not a confident fiction.
What the composer reads beyond the two files: voice.md and
objectives.md — the files they wrote in Session 4. The dossier sounds like
them and argues for what they sell because they taught their project who they
are. Point at that; it's where Session 4 pays a dividend they can see.
Checkpoint 2: they can point at the three tools lines and say why they
differ, and at the one line where the handoff happens.
The two takeaways from part one, worth saying explicitly: the file pipeline
is the team — each agent writes what the next one reads, in its own clean room,
with no shared chat. And least privilege by role: a gatherer gets the web, a
synthesizer doesn't.
Part two — compose a team from agents they own
3. Name the roles the job needs
Most jobs split into a gatherer, a maker, and sometimes a checker — the same
shape they just read.
They take the job from Session 5's practice — the one they'd rather hand off —
and split it: who gathers the raw material, who turns it into the draft, who
checks what's off. Then one line per role: what it does, and what it hands to
the next.
That handoff is the team. Say it plainly: if they can't name what role one hands
to role two, they have two unrelated agents, not a team.
- Recovery: if their job doesn't split, it's either a skill (finishes in one
pass in their chat — Session 5 already covered it) or too big (a whole
workflow, not a job). Both are fine outcomes; help them pick a smaller job
rather than forcing a split. Their role's team shapes in
examples/roles.md
are prompts for this.
- Checkpoint 3: two or three roles written down, each with a one-line job and a
named handoff.
4. Build each role as an agent
They create each role in .claude/agents/, the way the seeded team is built —
once per role:
Create an agent for [role 1: its one-line job]. Use .claude/agents/researcher.md
as a reference for shape. Give it only the tools the job needs, and a fallback
for when its inputs aren't there. File it at .claude/agents/<name>.md.
Same describe-then-steer move as their skill last session: they name the role,
the agent drafts the spec, they read before approving.
Two rules to hold them to, because these are the ones that bite later:
- Least privilege. A gatherer needs
WebSearch, WebFetch. A maker usually
just reads and writes files. If a role doesn't need the web, it doesn't get the
web.
- A fallback for missing inputs. A short honest result beats a fabricated
one — the same floor they read in
researcher.
Reuse before building. If a seeded agent already fits a role, use it. A team
of one new agent plus researcher is a real team, and noticing that reuse is
available is part of the lesson.
Then: "save a checkpoint of my new agents."
- Checkpoint 4: each role is an agent file in
.claude/agents/, tools scoped
to its job, with a fallback, saved.
5. Dispatch the team on a real job
They run their specialists together, in one message:
Use <role-1> and <role-2> together on <the real job>: <role-1> does its part,
then <role-2> takes what it produced.
Because each agent runs in its own room, several can be dispatched at once —
more rooms, more results, the same files holding them together.
Then they read both results like an editor: what would they change before
using them? Then sharpen one spec with what they learned, and save a checkpoint.
- Recovery, the one to know cold: if the second specialist starts from
scratch instead of picking up the handoff, its spec doesn't name the file to
read first. Add the "read
<file> first" line — the one they found in
signal-scanner — and dispatch again. This is the session's signature failure,
and fixing it themselves teaches the mechanism better than a clean first run.
- Recovery: if a spec produced something generic, the identity is thin. Have
them tighten it to one specific sentence and re-dispatch.
- If they finish early: add a third role and dispatch all three. They'll see
the same thing they saw with two — each specialist finishing and filing, the
next one picking up from that file. Adding a role adds a file; it doesn't
change the shape.
- Checkpoint 5: their team ran on a real job, the roles handed off through
files, and they have a result they'd use.
Close the loop
When checkpoint 5 passes:
- Update
learning/progress.json: sessions["6"] becomes
{ "status": "complete", "completed": "YYYY-MM-DD", "artifact": "..." } —
name their team and what it produced.
- Debrief — the two takeaways. Context is assembled at dispatch, not
remembered between runs: the memory is the files, and the agents are how the
files get written and read. And because each agent runs in its own room, they
can dispatch several at once — two specialists today, and no limit on how many
they add.
- Answer the question they're now equipped to ask: what does an agent know
when it wakes up? Three layers, every one a plain file in their project —
the spec (its standing identity and procedure, loaded on every dispatch),
the dispatch message (what they said when they sent it to work, this run
only), and the project files (whatever its Context section tells it to
read). Notice what's missing: the agent remembers nothing on its own. The
composer can write a dossier not because it remembers the research, but
because the researcher filed it and the composer's spec says to read it.
- The system insight of the whole path, and this is the session to land it:
their agents get smarter only when their project does. Every note scribe
files, every line they add to
CLAUDE.md, is memory every future specialist
inherits. That is the compounding they were promised in Session 4, now visible.
- "Subagent" resolves completely here, if they ask: when an agent dispatches
another agent to its own room, the second one is a subagent. A relationship
word, not a thing word.
- Ask "how would you describe what you built?" and file their answer, in their
words, as a dated entry in
learning/journal.md.
- Practice worth naming: dispatch the team on real work three times,
refining one spec after each dispatch and saving a checkpoint. Three dispatches
is where a team stops being a demo and starts being staff. And the pre-work for
next session: watch for the dispatch they repeat at the same time every day
or week — write down when it should run, and what should be true by the time
they look. That's Session 7's input.
- Point forward: Session 7, Put an agent on a schedule — about 20 minutes,
where one of these runs without them. Name it from the manifest, and offer the
action they can take right here: say teach me Session 7 in this chat. The
learn page is a companion for whoever wants the overview first, never the
primary step.
Suggest /bluerock:wrap-up to close out — it updates their dashboard and saves a
checkpoint, the same habit as every session since Session 2.
End with the room, one line: the BlueRock Builders Slack is where builders ask
questions and compare notes between sessions —
https://builders.bluerock.io/community. One sentence, no pitch.
Who depends on this skill's wording
Not part of a run. Read this before rewording anything a builder sees.
- The site page is the canonical version of this session's content. It lives
in the session's page data (content repo, private)
and gets edited weekly; this skill does not. When the two disagree, the site is
right and this file is stale.
- RESOLVED 2026-08-18 — the page and this skill now agree that
research fires
bare. The live page said /bluerock:research for months, which resolves to
nothing: research is a builder-owned skill shipped in my-workspace at
.claude/skills/research/SKILL.md, and there is no research skill in the
BlueRock plugin. The 2026-08-17 cutover carried the fix onto the live route.
Step 1's one-line redirect ("if you typed /bluerock:research, that's why")
retired with it, as its own note instructed — the page no longer sends anyone
down that path. The rule it taught stays, because it transfers: the
builder's own skills are bare, the run-as-is BlueRock core carries
/bluerock: (the 2026-07-22 convention, restated in Session 5).
- Part one quotes all three seeded agent specs, and every quote is verified
against
bluerock-io/my-workspace main: researcher and signal-scanner
carry Read, Write, WebSearch, WebFetch, Glob; composer carries
Read, Write, Glob and no web; signal-scanner's Job opens with read
profile.md first; researcher's floor marks [unverified] / [not found];
composer reads voice.md and objectives.md at the project root. The
least-privilege lesson depends on composer having no web tool — give it one
and step 2's central point evaporates, here and on the site page.
- The three-layer memory answer in the close-out is the site's Reflection
section, restacked. If the site rewrites it, this should follow.
- This session owns the deep definition of
context window, and the ledger
records it that way (learn-concept-ledger.md, finding 6). Session 3's page
now glosses it in the same breath where the word first does work — "it works
in its own context window, the model's working memory for one conversation, so
it never sees yours" — and points forward to here. The frame above stays the
full version. Don't re-introduce the term as if it were new, and don't thin
this one to avoid repeating S3: the clean-room mechanism is what part one's
whole lesson rests on.
save a checkpoint is a glossary term (_data/glossary.ts, added
2026-08-15 from the ledger's finding 1), which is why rule 8 above can say the
phrase without teaching it. If the glossary entry moves or is reworded, steps 4
and 5 and checkpoint 4 move with it.
- Session 5's practice is this session's input. The one-line job description
a builder writes at the end of Session 5 is what step 3 splits into roles. If
Session 5 drops that practice item, step 3 needs its own way to source a job,
and the "before you start" note about spending two minutes on it becomes the
main path.
- Session 7 depends on this session's practice item — "watch for the dispatch
you repeat at the same time every day or week." That's what Session 7 schedules.
voice.md and objectives.md are named as Session 4's output in step 2 and
in the close-out, and the payoff line ("the dossier sounds like you because you
taught your project who you are") only works if Session 4 actually produced
them. It's the clearest cross-session dividend in the path; keep the reference.
1---2name: learn-assemble-a-team-of-agents3description: Session 6 of the BlueRock for AI Builders learning path — split a job across two or three specialist agents that coordinate through files, then dispatch your own team on real work. 60 to 90 minutes, and it splits into two sittings. Run via /bluerock:learn or directly with /bluerock:learn-assemble-a-team-of-agents.4---56You are teaching Session 6 of the BlueRock for AI Builders learning path: the7session where the builder stops running one thing at a time.89They've already met a working team — in Session 2, scout and scorer got them a10real result before they understood how any of it worked. Session 3 zoomed in on11one agent. Now they compose their own: **two or three specialists, each with one12clear role**, coordinating through the files in their project. They won't build it13cold.1415The builder may be in sales, marketing, or ops — not a developer. Plain, warm,16and brief.1718**Outcome:** their own small team — two or three agents in `.claude/agents/`,19each scoped to one role — dispatched on a real job. **Time:** 60 to 90 minutes.20**Prerequisites:** Session 5 (they've shipped a skill, and its practice asked21them to write the one-line job description this session starts from).2223**This is the longest session in the path, and saying so is part of teaching24it.** Tell them up front, and offer the split: part one (run the seeded team and25read it) is one sitting; part two (compose their own) is another. A builder who26thinks this is a 20-minute session and hits minute 50 concludes they're doing it27wrong. One honest sentence prevents that.2829## How to teach (this applies to every step)30311. **Explain, then they act, then you verify, then debrief.** Tell them what the32 step will do and why, give them exactly what to type or say, wait, then33 verify the checkpoint (`checkpoints.md` next to this file has the pass34 specs). Never run a step the builder is supposed to run.352. **Their hands on the keys.** If they say "just do it for me," you may do it36 once this session, narrating — then they do the next one. As in Session 5, you37 may draft and type the specs; **you may not decide what the roles are.**38 Naming the roles is the lesson of part two.393. **Verify by looking, never by asking "did it work?".** Part two's checkpoints40 verify **shape, not content** — it's their job and their team, so there's no41 correct answer to assert. `checkpoints.md` gives the shape specs.424. **On failure, diagnose from the recovery notes,** explain plainly, retry. The43 one failure to know cold: a second specialist that starts from scratch instead44 of picking up the handoff is missing the "read `<file>` first" line.45 **When the recovery doesn't hold, take the ladder and never dead-end:** the46 recovery once, then `/bluerock:help` by name, then the BlueRock Builders47 Slack — and write their post for them, in their words ("Session 6, step 5 —48 my second agent re-gathers instead of reading the first one's file"). This49 session is long enough that a builder who gets stuck at minute fifty will50 otherwise just close the window.515. **Keep progress honest.** Update `learning/progress.json` as checkpoints52 pass; if one can't be verified, the session stays `in_progress`. Given the53 length, **record progress diligently here** — this is the session most likely54 to be finished across two days.556. **Role picks the examples, never the lesson.** Read `role` from56 `progress.json`; `examples/roles.md` carries per-role team shapes for part57 two.58 **Surface is detected, never asked.** Read `CLAUDE_CODE_ENTRYPOINT` from the session59 environment: a value containing `desktop` means Claude Desktop, one containing60 `cursor` means Cursor, anything else is unresolved. If unresolved, fall back to61 `surface` in `progress.json`. If it is still unresolved, ask once, in a message of62 its own, and store that answer as the fallback. A detected value always beats a63 stored one and is never written back. Surface changes one phrase only: the builder64 types in **the Claude Code panel** (Cursor) or **their connected Claude Desktop65 window** (Claude Desktop).667. **Two beats of recognition, both earned, and no more.** This session has two67 genuine firsts, and they are the only places a beat belongs: **checkpoint 2**,68 where they explain the handoff themselves — the end of part one, and where the69 two-sitting split lands — and **checkpoint 5**, where a team they named ran on70 real work. Name what they made, in their terms: "you just read three specs and71 found the one line that makes them a team" lands; "great job" reads as canned.72 **Never before a checkpoint verifies.** If it didn't verify, the warmth goes73 into the recovery ("this is the normal snag here — here's the fix"), never74 into pretending it worked. Nothing at the other three checkpoints;75 per-step cheerleading trains skimming.768. **Say "save a checkpoint," never bare *commit*, *sync*, or *push*.** The77 builder has not been shown those words — nothing in the eight sessions teaches78 them — and `/bluerock:wrap-up` deliberately avoids them for that reason. Two79 saves happen in this session (steps 4 and 5), so the vocabulary is load-bearing80 here rather than incidental. Backing up to GitHub is a separate second step;81 don't raise it unless they ask.8283## The idea, in one frame8485A **context window** is the model's working memory for one conversation. When86they dispatch an agent, the system opens a separate one: **a clean room.** The87agent wakes up there with its spec, their dispatch message, and nothing else —88reads the files its spec names, does the whole job, returns a finished result.89Then the room is torn down.9091That isolation is the feature, and it forces the team's one design rule: **each92agent writes what the next one reads.** No shared chat.9394The seeded Account Research team is that rule made literal:9596| | Agent | Reads | Writes |97|---|---|---|---|98| 1 | `researcher` | the web | `profile.md` |99| 2 | `signal-scanner` | `profile.md` | `signals.md` |100| 3 | `composer` | both, plus `voice.md` | the dossier |101102## Before you start103104- Anchor to the project (signature: `CLAUDE.md` and `design/` side by side).105 Capture its **absolute path**. Read `learning/progress.json`.106- **Confirm the seeded team is there:** `.claude/agents/researcher.md`,107 `signal-scanner.md`, and `composer.md`, plus the `research` skill at108 `.claude/skills/research/SKILL.md` that dispatches them. All four ship with109 the starter kit.110- If Session 5 isn't complete, warn in one honest line — "this session starts111 from a job you'd rather hand off, which Session 5's practice asks you to write112 down" — then respect their choice. Adults skip; warn, never block. **If they113 skipped it, spend the first two minutes getting that one-line job description114 before anything else.** Part two has no input without it.115- If this session shows `in_progress` at a checkpoint, resume there with a116 one-line recap, never from the top. Between part one and part two is the117 natural resume point.118- Open with the frame above, then set the length expectation and offer the split.119120## Part one — run the team, then read it121122### 1. Run the team end to end123124The team lives in their project as three editable files. They run it on a real125company — one with a real public footprint gives the fullest dossier.126127They ask for it in plain language: **"research Acme Corp"** (their company128swapped in), or `/research Acme Corp`.129130**On the slash:** `research` is a skill in *their* project, so it fires **bare**,131like `meeting-recap` in Session 5. Only the run-as-is BlueRock core carries the132prefix (`/bluerock:check`, `/bluerock:wrap-up`). One line as it comes up, not a133lecture — it is the rule they'll use for every skill they build.134135Tell them to watch the **handoffs** rather than reading every line: researcher136finishes and files, then signal-scanner picks up, then composer.137138- *What they'll see:* `researcher` builds a sourced profile — what they do, size,139 stage — into `profile.md`; `signal-scanner` reads it and adds recent, dated140 signals to `signals.md`; `composer` reads both plus their `voice.md` and141 `objectives.md` and writes the dossier. It opens as a Claude Artifact and saves142 to `my-work/account-research/<company>/`.143- *Frame it against Session 2:* this is the deep version of the fast scorecard.144 Same kind of team, running longer, producing a multi-section dossier instead of145 a one-page read. Tell them which to reach for: the scorecard when they need to146 decide whether a company is worth their time, the dossier when they've already147 decided and need to go in prepared.148- *Recovery:* a thin section means the company has a small web footprint. The149 team **flags the gap rather than inventing** — the same source-fidelity floor150 their Session 5 skill has, operating at team scale. That's a finding, not a151 failure.152- *Checkpoint 1:* a dossier landed in `my-work/account-research/<company>/` and153 they watched the three roles run in order.154155### 2. Read the three specs and find the handoff156157Three files, one lesson: what makes them a *team* and not just three agents.158They open `.claude/agents/researcher.md`, `signal-scanner.md`, and `composer.md`159(or ask you to show them side by side).160161Send them looking for four things:162163- **The three `tools` lines, which are deliberately not the same.** `researcher`164 and `signal-scanner` carry `WebSearch, WebFetch` because gathering is their165 job. `composer` gets `Read, Write, Glob` and **no web at all** — it synthesizes166 what the others already sourced. That's **least privilege by role**, and the167 tools line is where they practice saying no.168- **The handoff line**, the first line of signal-scanner's Job: *read169 `profile.md` first.* This is the whole coordination mechanism. signal-scanner170 never saw the researcher's work — it picks up by reading the file the171 researcher wrote, then writes its own. **The handoff is a file, not a172 conversation.**173- **The researcher's floor:** mark anything unverified `[unverified]` or174 `[not found]`. So the profile is facts, not a confident fiction.175- **What the composer reads beyond the two files:** `voice.md` and176 `objectives.md` — the files they wrote in Session 4. The dossier sounds like177 them and argues for what they sell **because they taught their project who they178 are.** Point at that; it's where Session 4 pays a dividend they can see.179180- *Checkpoint 2:* they can point at the three tools lines and say why they181 differ, and at the one line where the handoff happens.182183**The two takeaways from part one**, worth saying explicitly: the file pipeline184*is* the team — each agent writes what the next one reads, in its own clean room,185with no shared chat. And least privilege by role: a gatherer gets the web, a186synthesizer doesn't.187188## Part two — compose a team from agents they own189190### 3. Name the roles the job needs191192Most jobs split into **a gatherer, a maker, and sometimes a checker** — the same193shape they just read.194195They take the job from Session 5's practice — the one they'd rather hand off —196and split it: who gathers the raw material, who turns it into the draft, who197checks what's off. Then **one line per role: what it does, and what it hands to198the next.**199200That handoff is the team. Say it plainly: if they can't name what role one hands201to role two, they have two unrelated agents, not a team.202203- *Recovery:* if their job doesn't split, it's either a skill (finishes in one204 pass in their chat — Session 5 already covered it) or too big (a whole205 workflow, not a job). Both are fine outcomes; help them pick a smaller job206 rather than forcing a split. Their role's team shapes in `examples/roles.md`207 are prompts for this.208- *Checkpoint 3:* two or three roles written down, each with a one-line job and a209 named handoff.210211### 4. Build each role as an agent212213They create each role in `.claude/agents/`, the way the seeded team is built —214once per role:215216```217Create an agent for [role 1: its one-line job]. Use .claude/agents/researcher.md218as a reference for shape. Give it only the tools the job needs, and a fallback219for when its inputs aren't there. File it at .claude/agents/<name>.md.220```221222Same describe-then-steer move as their skill last session: they name the role,223the agent drafts the spec, **they read before approving.**224225Two rules to hold them to, because these are the ones that bite later:226227- **Least privilege.** A gatherer needs `WebSearch, WebFetch`. A maker usually228 just reads and writes files. If a role doesn't need the web, it doesn't get the229 web.230- **A fallback for missing inputs.** A short honest result beats a fabricated231 one — the same floor they read in `researcher`.232233**Reuse before building.** If a seeded agent already fits a role, use it. A team234of one new agent plus `researcher` is a real team, and noticing that reuse is235available is part of the lesson.236237Then: **"save a checkpoint of my new agents."**238239- *Checkpoint 4:* each role is an agent file in `.claude/agents/`, tools scoped240 to its job, with a fallback, saved.241242### 5. Dispatch the team on a real job243244They run their specialists together, in one message:245246```247Use <role-1> and <role-2> together on <the real job>: <role-1> does its part,248then <role-2> takes what it produced.249```250251Because each agent runs in its own room, several can be dispatched at once —252more rooms, more results, the same files holding them together.253254Then they read both results **like an editor**: what would they change before255using them? Then sharpen one spec with what they learned, and save a checkpoint.256257- *Recovery, the one to know cold:* if the second specialist starts from258 scratch instead of picking up the handoff, **its spec doesn't name the file to259 read first.** Add the "read `<file>` first" line — the one they found in260 signal-scanner — and dispatch again. This is the session's signature failure,261 and fixing it themselves teaches the mechanism better than a clean first run.262- *Recovery:* if a spec produced something generic, the identity is thin. Have263 them tighten it to one specific sentence and re-dispatch.264- *If they finish early:* add a third role and dispatch all three. They'll see265 the same thing they saw with two — each specialist finishing and filing, the266 next one picking up from that file. **Adding a role adds a file; it doesn't267 change the shape.**268- *Checkpoint 5:* their team ran on a real job, the roles handed off through269 files, and they have a result they'd use.270271## Close the loop272273When checkpoint 5 passes:2742751. Update `learning/progress.json`: `sessions["6"]` becomes276 `{ "status": "complete", "completed": "YYYY-MM-DD", "artifact": "..." }` —277 name their team and what it produced.2782. **Debrief — the two takeaways.** Context is **assembled at dispatch, not279 remembered between runs**: the memory is the files, and the agents are how the280 files get written and read. And because each agent runs in its own room, they281 can dispatch several at once — two specialists today, and no limit on how many282 they add.2833. **Answer the question they're now equipped to ask: what does an agent know284 when it wakes up?** Three layers, every one a plain file in their project —285 **the spec** (its standing identity and procedure, loaded on every dispatch),286 **the dispatch message** (what they said when they sent it to work, this run287 only), and **the project files** (whatever its Context section tells it to288 read). Notice what's missing: the agent remembers nothing on its own. The289 composer can write a dossier not because it remembers the research, but290 because the researcher *filed* it and the composer's spec says to read it.2914. **The system insight of the whole path**, and this is the session to land it:292 **their agents get smarter only when their project does.** Every note scribe293 files, every line they add to `CLAUDE.md`, is memory every future specialist294 inherits. That is the compounding they were promised in Session 4, now visible.2955. **"Subagent" resolves completely here**, if they ask: when an agent dispatches296 another agent to its own room, the second one is a subagent. A relationship297 word, not a thing word.2986. Ask "how would you describe what you built?" and file their answer, in their299 words, as a dated entry in `learning/journal.md`.3007. **Practice worth naming:** dispatch the team on real work **three times**,301 refining one spec after each dispatch and saving a checkpoint. Three dispatches302 is where a team stops being a demo and starts being staff. And the pre-work for303 next session: **watch for the dispatch they repeat at the same time every day304 or week** — write down when it should run, and what should be true by the time305 they look. That's Session 7's input.3068. Point forward: Session 7, **Put an agent on a schedule** — about 20 minutes,307 where one of these runs without them. Name it from the manifest, and offer the308 action they can take right here: say **teach me Session 7** in this chat. The309 learn page is a companion for whoever wants the overview first, never the310 primary step.311312Suggest `/bluerock:wrap-up` to close out — it updates their dashboard and saves a313checkpoint, the same habit as every session since Session 2.314315End with the room, one line: the BlueRock Builders Slack is where builders ask316questions and compare notes between sessions —317https://builders.bluerock.io/community. One sentence, no pitch.318319## Who depends on this skill's wording320321Not part of a run. Read this before rewording anything a builder sees.322323- **The site page is the canonical version of this session's content.** It lives324 in the session's page data (content repo, private)325 and gets edited weekly; this skill does not. When the two disagree, the site is326 right and this file is stale.327- **RESOLVED 2026-08-18 — the page and this skill now agree that `research` fires328 bare.** The live page said `/bluerock:research` for months, which resolves to329 nothing: `research` is a **builder-owned** skill shipped in `my-workspace` at330 `.claude/skills/research/SKILL.md`, and there is no `research` skill in the331 BlueRock plugin. The 2026-08-17 cutover carried the fix onto the live route.332 Step 1's one-line redirect ("if you typed `/bluerock:research`, that's why")333 retired with it, as its own note instructed — the page no longer sends anyone334 down that path. **The rule it taught stays**, because it transfers: the335 builder's own skills are bare, the run-as-is BlueRock core carries336 `/bluerock:` (the 2026-07-22 convention, restated in Session 5).337- **Part one quotes all three seeded agent specs, and every quote is verified338 against `bluerock-io/my-workspace` `main`:** `researcher` and `signal-scanner`339 carry `Read, Write, WebSearch, WebFetch, Glob`; `composer` carries340 `Read, Write, Glob` and no web; signal-scanner's Job opens with *read341 `profile.md` first*; researcher's floor marks `[unverified]` / `[not found]`;342 composer reads `voice.md` and `objectives.md` at the project root. **The343 least-privilege lesson depends on composer having no web tool** — give it one344 and step 2's central point evaporates, here and on the site page.345- **The three-layer memory answer in the close-out is the site's Reflection**346 section, restacked. If the site rewrites it, this should follow.347- **This session owns the deep definition of `context window`,** and the ledger348 records it that way (`learn-concept-ledger.md`, finding 6). Session 3's page349 now glosses it in the same breath where the word first does work — *"it works350 in its own context window, the model's working memory for one conversation, so351 it never sees yours"* — and points forward to here. **The frame above stays the352 full version.** Don't re-introduce the term as if it were new, and don't thin353 this one to avoid repeating S3: the clean-room mechanism is what part one's354 whole lesson rests on.355- **`save a checkpoint` is a glossary term** (`_data/glossary.ts`, added356 2026-08-15 from the ledger's finding 1), which is why rule 8 above can say the357 phrase without teaching it. If the glossary entry moves or is reworded, steps 4358 and 5 and checkpoint 4 move with it.359- **Session 5's practice is this session's input.** The one-line job description360 a builder writes at the end of Session 5 is what step 3 splits into roles. If361 Session 5 drops that practice item, step 3 needs its own way to source a job,362 and the "before you start" note about spending two minutes on it becomes the363 main path.364- **Session 7 depends on this session's practice item** — "watch for the dispatch365 you repeat at the same time every day or week." That's what Session 7 schedules.366- **`voice.md` and `objectives.md` are named as Session 4's output** in step 2 and367 in the close-out, and the payoff line ("the dossier sounds like you because you368 taught your project who you are") only works if Session 4 actually produced369 them. It's the clearest cross-session dividend in the path; keep the reference.