Teammate-Task-Lane Model
When This Page Helps
Five concepts that look similar but live on different layers. Keep open during s15-s18.
Deep Dive -- Best read at the start of Stage 4 (s15-s18). It separates five concepts that look similar but live on different layers.
When to Read This
Before you start the team chapters. Keep it open as a reference during s15-s18.
By the time you reach
s15-s18, the easiest thing to blur is not a function name.It is this:
Who is working, who is coordinating, what records the goal, and what provides the execution lane.
What This Bridge Doc Fixes
Across s15-s18, you will encounter these words that can easily blur into one vague idea:
- teammate
- protocol request
- task
- runtime task
- worktree
They all relate to work getting done, but they do not live on the same layer.
If you do not separate them, the later chapters start to feel tangled:
- Is a teammate the same thing as a task?
- What is the difference between
request_idandtask_id? - Is a worktree just another runtime task?
- Why can a task be complete while a worktree is still kept?
This document exists to separate those layers cleanly.
Recommended Reading Order
- Read
s15-agent-teams.mdfor long-lived teammates. - Read
s16-team-protocols.mdfor tracked request-response coordination. - Read
s17-autonomous-agents.mdfor self-claiming teammates. - Read
s18-worktree-task-isolation.mdfor isolated execution lanes.
If the vocabulary starts to blur, you might find it helpful to revisit:
The Core Separation
teammate
= who participates over time
protocol request
= one tracked coordination request inside the team
task
= what should be done
runtime task / execution slot
= what is actively running right now
worktree
= where the work executes without colliding with other lanes
The most common confusion is between the last three:
taskruntime taskworktree
Ask three separate questions every time:
- Is this the goal?
- Is this the running execution unit?
- Is this the isolated execution directory?
The Smallest Clean Diagram
Team Layer
teammate: alice (frontend)
Protocol Layer
request_id=req_01
kind=plan_approval
status=pending
Work Graph Layer
task_id=12
subject="Implement login page"
owner="alice"
status="in_progress"
Runtime Layer
runtime_id=rt_01
type=in_process_teammate
status=running
Execution Lane Layer
worktree=login-page
path=.worktrees/login-page
status=active
Only one of those records the work goal itself:
task_id=12
The others support coordination, execution, or isolation around that goal.
1. Teammate: Who Is Collaborating
Introduced in s15.
This layer answers:
- what the long-lived worker is called
- what role it has
- whether it is
working,idle, orshutdown - whether it has its own inbox
Example:
member = {
"name": "alice",
"role": "frontend",
"status": "idle",
}
The point is not "another agent instance."
The point is:
a persistent identity that can repeatedly receive work.
2. Protocol Request: What Is Being Coordinated
Introduced in s16.
This layer answers:
- who asked whom
- what kind of request this is
- whether it is still pending or already resolved
Example:
request = {
"request_id": "a1b2c3d4",
"kind": "plan_approval",
"from": "alice",
"to": "lead",
"status": "pending",
}
This is not ordinary chat.
It is:
a coordination record whose state can continue to evolve.
3. Task: What Should Be Done
This is the durable work-graph task from s12, and it is what s17 teammates claim.
It answers:
- what the goal is
- who owns it
- what blocks it
- what progress state it is in
Example:
task = {
"id": 12,
"subject": "Implement login page",
"status": "in_progress",
"owner": "alice",
"blockedBy": [],
}
Keyword:
goal
Not directory. Not protocol. Not process.
4. Runtime Task / Execution Slot: What Is Running
This layer was already clarified in the s13a bridge doc, but it matters even more in s15-s18.
Examples:
- a background shell command
- a long-lived teammate currently working
- a monitor process watching an external state
These are best understood as:
active execution slots
Example:
runtime = {
"id": "rt_01",
"type": "in_process_teammate",
"status": "running",
"work_graph_task_id": 12,
}
Important boundary:
- one work-graph task may spawn multiple runtime tasks
- a runtime task is an execution instance, not the durable goal itself
5. Worktree: Where the Work Happens
Introduced in s18.
This layer answers:
- which isolated directory is used
- which task it is bound to
- whether that lane is
active,kept, orremoved
Example:
worktree = {
"name": "login-page",
"path": ".worktrees/login-page",
"task_id": 12,
"status": "active",
}
Keyword:
execution boundary
It is not the task goal itself. It is the isolated lane where that goal is executed.
How The Layers Connect
teammate
coordinates through protocol requests
claims a task
runs as an execution slot
works inside a worktree lane
In a more concrete sentence:
aliceclaimstask #12and progresses it inside thelogin-pageworktree lane.
That sentence is much cleaner than saying:
"alice is doing the login-page worktree task"
because the shorter sentence incorrectly merges:
- the teammate
- the task
- the worktree
Common Mistakes
1. Treating teammate and task as the same object
The teammate executes. The task expresses the goal.
2. Treating request_id and task_id as interchangeable
One tracks coordination. The other tracks work goals.
3. Treating the runtime slot as the durable task
The running execution may end while the durable task still exists.
4. Treating the worktree as the task itself
The worktree is only the execution lane.
5. Saying "the system works in parallel" without naming the layers
Good teaching does not stop at "there are many agents."
It can say clearly:
teammates provide long-lived collaboration, requests track coordination, tasks record goals, runtime slots carry execution, and worktrees isolate the execution directory.
What You Should Be Able to Say After Reading This
s17autonomy claimss12work-graph tasks, nots13runtime slots.s18worktrees bind execution lanes to tasks; they do not turn tasks into directories.- A teammate can be idle while the task still exists and while the worktree is still kept.
- A protocol request tracks a coordination exchange, not a work goal.
Key Takeaway
Five things that sound alike -- teammate, protocol request, task, runtime slot, worktree -- live on five separate layers. Naming which layer you mean is how you keep the team chapters from collapsing into confusion.