AAgentic Design School
Module 4 of 6
40–50 minutes

Orchestrating Design Agent Teams

Concurrent Agent Teams on the Canvas

Multiple agents working a shared canvas or design file at the same time: zone ownership, naming and layout conventions that prevent collisions, and the review rhythm that keeps a fast-moving canvas coherent.

Duration40–50 minutes

Slides13 slides with notes and narration

Learning objectives

  • Partition canvas work into zones with single ownership per zone.
  • Set naming, layer, and component conventions that concurrent agents can follow.
  • Run a review rhythm that catches divergence before it spreads across the canvas.
Slide deck

Work through the module

Each slide is shown in its 16:9 frame, exactly as it appears in the video version. Open the notes under any slide for the longer explanation, and the narration if you prefer to read along.

Slide 1 of 1316:9

Concurrent Agent Teams on the Canvas

Orchestrating Design Agent Teams · Module 4 of 6

  • A shared canvas is a shared file with feelings
  • Zone ownership: who may touch what
  • Conventions agents can actually follow
  • The review rhythm that keeps a fast canvas coherent

Modules 1–3 split the work and chained the tools. This module is about the place where parallel work physically lands: one canvas, several agents, no collisions.

Slide notes

Position this module against the previous three. Module 1 made the case that splitting work is a cost you pay deliberately; Module 2 gave the patterns — fan-out, pipelines, critic pairs; Module 3 chained the tools. This module deals with the surface where fan-out gets physical: a single shared canvas or design file that several agents are editing at once. Everything from Module 2 still applies, but the canvas adds a constraint code mostly avoids — the artifact is one spatial document, and two agents who each did good work can still produce a page that looks like two different products.

The phrase a shared file with feelings is doing real work. In code, concurrent edits collide as merge conflicts the tooling surfaces loudly. On a canvas, they collide as visual incoherence: spacing rhythms that drift between sections, two near-identical card components, type scales that disagree by one step. Nothing errors. The page just stops feeling like one page, and nobody can point to the line where it happened.

Set expectations on tooling. The module references OpenPencil's concurrent agent teams as the clearest public implementation, and connected canvases — Paper, Pencil, OpenPencil — as the file formats that make this work reviewable. But the conventions and the review rhythm are tool-agnostic; they apply just as well to three Claude Code sessions editing .pen files in one repository.

Narration for this slide

Welcome to Module 4. So far in this course we have decided when to split work, picked an orchestration pattern, and chained the tools together. Now we get to the surface where parallel work actually lands: one shared canvas, several agents editing it at the same time. Code has merge conflicts that shout at you. A canvas fails quietly — the page just stops feeling like one page. This module covers the three things that prevent that: zone ownership, conventions agents can follow, and a review rhythm that catches divergence early. Let's start with why a shared canvas is harder than a shared codebase.

Slide 2 of 1316:9

Why shared canvases fail quietly

Concurrent agents on one canvas rarely produce errors. They produce incoherence, and incoherence has no stack trace.

  • Two agents touching one frame: the later write silently wins, or the file needs a merge
  • Visual drift: spacing, type scale, and corner radii that disagree section by section
  • Duplicate inventions: each agent creates its own near-identical card, button, or badge
  • Token bypass: one agent hardcodes a value another agent reads from a variable
  • Review load multiplies: three streams of changes, one human checking coherence

The failure mode is not a crash. It is a page that took three agents forty minutes and a designer two hours to make feel like one product.

Slide notes

Walk the failure modes in order of how visible they are, because visibility is the problem. The frame collision is the most code-like: two agents write to the same node and either the later write wins silently or the file format demands a merge. Connected canvases handle this better than binary tools because the file is text, but a three-way merge of a JSON canvas file is still nobody's idea of a good afternoon — OpenPencil ships a git panel with three-way merge for .op files precisely because canvas-scale diffs need help.

The quieter failures are the expensive ones. Visual drift happens when each agent makes locally reasonable choices — a 20px gap here, a 24px gap there — that read as sloppiness when the sections sit next to each other. Duplicate invention is the design-system version of the same thing: each worker, unable to see what the others are building, creates its own card variant. Token bypass is the one that survives longest, because a hardcoded hex that matches the token today drifts silently when the token changes next quarter.

The last bullet is the Module 1 lesson resurfacing: every parallel stream you add multiplies review load. The rest of this module is about pushing that review cost down with structure — ownership, conventions, and rhythm — rather than pretending it away.

Narration for this slide

Here is what actually goes wrong when several agents share a canvas. Sometimes it is a real collision — two agents write to the same frame, and either the later write silently wins or you are merging a canvas file by hand. But the expensive failures are quieter. Spacing and type drift apart section by section. Each agent invents its own card component because it cannot see what the others built. One agent hardcodes a colour another reads from a token. None of this errors. You only see it when the sections sit next to each other and the page no longer feels like one product — and by then, the fix costs more than the parallelism saved.

Slide 3 of 1316:9

Zone ownership: one owner per zone, no exceptions

The single rule that prevents most collisions: every page, frame, or section has exactly one agent that may write to it.

  • Partition by the canvas's own structure: pages, top-level frames, named sections
  • One writer per zone; everyone else is read-only in that zone
  • Shared assets — tokens, components, variables — are owned by no worker; changes route to the orchestrator
  • Zone boundaries go in the worker brief, not in the conversation
  • An agent that needs to change something outside its zone stops and asks

Ownership is decided before any agent starts, written into each worker's brief, and never negotiated mid-run.

Slide notes

This is the fan-out pattern from Module 2 mapped onto canvas geometry. The partition should follow the canvas's own structure rather than an abstract task list: pages in a multi-page file, top-level frames on a single page, or named sections inside one long frame. The reason is practical — agents address canvas content by node and frame names, so a boundary that exists in the file's structure is a boundary the agent can actually respect, while build the top half of the page is not.

The shared-asset rule deserves emphasis because it is where most teams get burned. Tokens, variables, and shared components are read by every zone, which is exactly why no zone may write them. A worker that decides the spacing token is wrong and fixes it has just changed every other worker's output mid-run. The rule is: shared assets belong to the orchestrator, and a worker that wants a change files a request and keeps working with what exists. This mirrors how OpenPencil's concurrent agent teams are described as working — an orchestrator decomposes the page spatially and hands sections to workers, while the system-level style guidance stays common.

The stop-and-ask instruction is the cheap insurance. An agent that hits a genuine cross-zone dependency — the hero needs a component that the features zone is building — should surface it rather than improvise a copy. That pause costs a minute. The duplicate component costs a cleanup pass.

Narration for this slide

The single most effective rule is also the simplest: every zone has exactly one writer. Partition the canvas along its own structure — pages, top-level frames, named sections — because those are boundaries an agent can actually respect. Inside its zone, an agent can do whatever the brief allows. Outside it, read-only. And the shared things — tokens, variables, the component library — are owned by nobody on the worker side. If a worker thinks a token is wrong, it asks the orchestrator; it does not fix it mid-run and silently change everyone else's output. Write the boundaries into each worker's brief before anything starts. Ownership negotiated mid-run is ownership that has already failed.

Slide 4 of 1316:9

Conventions agents can follow

Agents follow conventions more reliably than people do — but only the conventions you actually write down and put where they will be read.

  • Naming: zone-prefixed frame and layer names — landing/hero, landing/features/card-01
  • Layers: containers with auto-layout and explicit gaps; no absolute positioning unless declared intentional
  • Components: reuse before create; a new component requires a one-line justification in the run log
  • Variables: every value the system already names comes from the variable, never hardcoded
  • Placement: each zone works inside its assigned frame bounds; nothing parked on the loose canvas

Put the conventions in the harness file and the worker briefs, not in the chat. A convention that lives in conversation lasts one session.

Slide notes

Each line here exists because its absence produces a specific, recurring mess. Zone-prefixed names are what make ownership checkable: when every node the hero worker created starts with landing/hero, the merge owner can diff a zone in seconds and a stray edit outside the prefix is immediately visible. Auto-layout containers with explicit gaps matter because agents reason about structure far better than they reason about absolute coordinates — a frame built from containers round-trips through an agent cleanly; a frame built from absolutely positioned rectangles produces brittle output, a point the connected-canvases material on this site makes at length.

Reuse before create is the anti-duplication rule. The justification requirement sounds bureaucratic but it is one line in the worker's output — needed a stat-card variant, none exists — and it converts silent invention into a reviewable decision. The variables rule is the same discipline as design-token hygiene in code: hardcoded values that happen to match are the drift you discover next quarter.

The delivery mechanism matters as much as the content. Conventions stated in the chat evaporate when the next session starts. Conventions in the project's harness file — CLAUDE.md, AGENTS.md, or the canvas project's own instruction file — and repeated in compressed form in each worker brief are read every run. This is the same lesson as single-agent harnessing, multiplied by the number of workers.

Narration for this slide

Agents are good at following conventions — better than people, honestly — but only the ones you write down where they will be read. Five are worth enforcing. Zone-prefixed names, so every node says which zone owns it and a stray edit is visible in the diff. Auto-layout containers with explicit gaps, because agents handle structure well and absolute coordinates badly. Reuse before create, with a one-line justification whenever a worker makes a new component. Variables for every value the system already names — no hardcoding something that happens to match. And everything inside the assigned frame, nothing parked loose on the canvas. Put all of this in the harness file and the worker briefs. A convention that only lives in the chat lasts exactly one session.

Slide 5 of 1316:9

Connected canvases: what the file formats make possible

Concurrent agent work is only reviewable when the canvas itself is a readable file. As of June 2026, the options differ mainly in where that file lives.

SurfaceArtifactWhat it enables for concurrent work
Pencil (pencil.dev).pen JSON file in your repoGit branches and diffs per zone; design and code change in one pull request
OpenPencil (open source).op JSON file, Git-friendlyBuilt-in concurrent agent teams; git panel with three-way merge for .op files
PaperHTML/CSS in vendor cloud, local MCP bridgeShared live canvas; review by before-and-after screenshots rather than diffs
Figma + Dev Mode MCPCloud document behind an APIMature multiplayer for humans; agent edits go through the API translation layer

If the canvas is a text file, zone ownership becomes branch-and-diff discipline you already know. If it is not, you are reviewing screenshots and trusting the log.

Slide notes

The point of this table is not to rank tools; it is to show that the file format decides which coordination mechanisms are even available. When the canvas is a JSON file in the repository — Pencil's .pen, OpenPencil's .op — concurrent work inherits the whole git toolkit: a branch per zone, a diff per worker, a merge the orchestrator controls, and a pull request where the design change and the code change travel together. OpenPencil ships a git panel with three-way merge and conflict resolution for .op files, which is an honest acknowledgment that diffable design files still need merge help at canvas scale.

Paper sits in the middle: the artifact is markup, which agents handle well, but it lives in the vendor's cloud behind a local MCP bridge, so review leans on before-and-after screenshots rather than line diffs. Figma remains the right call when the constraint is an established team library and true multiplayer with non-engineering stakeholders — but agent edits go through an API layer rather than a file, so the zone-ownership discipline has to be enforced entirely by convention and log, not by branch.

Date-stamp all of this for the audience: pricing and write capabilities in this space have changed repeatedly, these descriptions are accurate as of June 2026, and the school's connected-canvases and open-source-design articles are the maintained references.

Narration for this slide

The file format decides what coordination you can actually do. When the canvas is a JSON file in your repo — Pencil's dot-pen format, or OpenPencil's dot-op — concurrent work gets the whole git toolkit for free: a branch per zone, a diff per worker, a merge the orchestrator controls. OpenPencil even ships a three-way merge panel for its files, which tells you something honest: diffable design files still collide, they just collide visibly. Paper keeps the artifact as markup but in its own cloud, so review leans on screenshots. And Figma is still the right answer for established libraries and human multiplayer — but agent edits go through an API, so ownership is enforced by convention, not by branch. As of mid 2026, that is the landscape.

Slide 6 of 1316:9

OpenPencil's agent teams: the public reference implementation

OpenPencil is the clearest published implementation of concurrent agents on one design surface. Worth studying even if you never run it.

  • An orchestrator decomposes a page into spatial sub-tasks — hero, features, footer
  • Multiple agents draw their sections in parallel, with per-member canvas indicators
  • Layered passes per zone: design_skeleton, then design_content, then design_refine
  • Segmented prompt retrieval: each worker loads only the design knowledge its zone needs
  • The same canvas is reachable from outside: pen-mcp for MCP clients, an op CLI for terminal agents

The architecture is the lesson: spatial decomposition, shared system constraints, layered passes. It transfers to any canvas you can partition — described here as documented, not field-tested, as of June 2026.

Slide notes

Be precise about epistemic status, because the authoring sources are. OpenPencil — MIT-licensed, the self-described first open-source AI-native vector design tool — documents concurrent agent teams as a headline feature: an orchestrator decomposes a complex page into spatial sub-tasks, multiple agents work different sections simultaneously, and the canvas shows per-member indicators while they stream. The school's article on the open-source agentic design stack describes this from the repository and documentation; it did not execute OpenPencil end to end. Present it as a verified description of the design, not a benchmark.

The reason it earns a slide anyway is that the architecture encodes exactly the disciplines this module teaches. Spatial decomposition is zone ownership. The layered workflow — skeleton, then content, then refinement — is a sequencing rule that keeps parallel zones structurally comparable before anyone polishes. Segmented prompt retrieval is context discipline: each worker loads only the design knowledge relevant to its zone instead of the entire system. And the multi-model capability profiles — full prompts for top-tier models, simplified shapes for smaller ones — are a reminder that worker quality is a budget decision, which Module 6 picks up.

The last bullet matters for teams not adopting OpenPencil itself: the same canvas is scriptable from outside through its MCP server and CLI, which means the patterns here can be reproduced with the agent stack a team already runs.

Narration for this slide

If you want to see these ideas implemented rather than described, look at OpenPencil — an open-source, AI-native vector design tool, and the clearest public implementation of concurrent agents on one canvas. An orchestrator decomposes the page into spatial sub-tasks — hero, features, footer — and multiple agents draw their sections in parallel, with indicators showing who is working where. Each zone goes through layered passes: skeleton first, then content, then refinement. And each worker only loads the design knowledge its zone needs. One caveat: this is a documented description as of mid 2026, not a field test from this course. But the architecture is the lesson — spatial decomposition, shared constraints, layered passes — and it transfers to any canvas you can partition.

Slide 7 of 1316:9

The shape of a concurrent canvas run

One orchestrator, three zone workers, one merge pass, one human review of the whole page.

Flow diagram of a concurrent canvas run. An orchestrator decomposes one page into zones with single owners and a merge order decided up front. Three worker agents — hero zone, features zone, and footer zone — work their own frames in parallel, each reading the same shared system constraints: variables and tokens, the component library, and naming conventions, with constraint changes routed back to the orchestrator. Worker output flows into a merge and consistency pass owned by one merge owner, which diffs every zone against the tokens, checks spacing, type, and naming drift, snapshots the whole page, and produces one fix list per zone. A designer review then judges coherence across zones and decides to ship, run another round, or fold the work back to a single agent. A dashed feedback line returns the fix list to the owning zone only.
Workers run in parallel but read the same constraints and write only their own zones. The merge pass and the designer review look at the whole page; the fix list goes back to the owning zone, never broadcast to all three.

Parallelism lives in the middle column only. Decomposition, merging, and judgment stay single-threaded — that is what keeps the page coherent.

Slide notes

Walk the diagram left to right. The orchestrator — which can be the designer or an agent the designer directs — does the decomposition: zones with single owners, one brief and boundary per zone, and a merge order decided before anyone starts. Below it sit the shared constraints: variables and tokens, the component library, and the naming conventions. Every worker reads them; no worker owns them; a worker that wants them changed routes the request back to the orchestrator.

The middle column is the only place anything runs in parallel. Three workers, three zones, each writing only its own frames, each layering skeleton before content before refinement so the zones stay structurally comparable. The merge and consistency pass is deliberately drawn as a gate in the dark style this school uses for gates: one merge owner, the agreed order, a diff of every zone against the tokens, a check for spacing, type, and naming drift, a snapshot of the assembled page, and one fix list per zone.

The two right-hand boxes carry the human judgment. The designer reviews the page as a page — coherence across zones is precisely what no individual worker could see — and decides to ship, run another round, or fold the work back to a single agent, which is sometimes the honest call. Point at the dashed return line: fixes go to the zone that owns them. Broadcasting one zone's fix list to all three workers is how you get three agents resolving the same problem three different ways.

Narration for this slide

Here is the whole shape on one diagram. On the left, the orchestrator decomposes the page: zones, single owners, a merge order decided up front. Below it, the shared constraints — tokens, components, naming — which every worker reads and no worker may change. The middle column is the only parallel part: three workers, three zones, each writing only its own frames, each building skeleton, then content, then refinement. Then everything funnels through a merge and consistency pass with one owner — diffs against the tokens, drift checks, a snapshot of the whole page, a fix list per zone. And finally a designer reviews the page as a page. Notice the dashed line: fixes go back to the zone that owns them, never to all three at once.

Slide 8 of 1316:9

Conflict cases and the rule that resolves each

Three kinds of shared things cause nearly all the conflicts. Decide the rule before the run, not during the merge.

Conflict caseWhat goes wrongThe rule that prevents it
Shared componentTwo zones need it; one edits it; the other zone's layout breaks silentlyComponents are read-only to workers; changes are a separate, sequenced task
Shared tokens / variablesA worker 'fixes' a token mid-run and recolours every other zoneTokens owned by the orchestrator; workers file a change request and continue
Shared frame or page edgeBoth zones pad their own side; the seam doubles or collapsesThe orchestrator owns seams: section spacing is set globally, not per zone
New shared assetTwo workers invent near-duplicate cards or badges in parallelReuse before create, plus a justification line the merge owner reads

Every rule in the right-hand column is cheaper than the cleanup in the middle column. That is the entire argument for deciding them up front.

Slide notes

These four rows cover the overwhelming majority of real conflicts, and they share a structure: the conflict is never inside a zone, it is always at something two zones touch. The shared component case is the most damaging because the breakage is invisible to the worker who caused it — the agent edited the card component to suit its zone, and the other zone's instances reflowed without anyone watching. Making shared components read-only to workers, with changes handled as their own sequenced task after the parallel phase, removes the case entirely at the cost of a slightly longer schedule.

The token case is the same logic one level down. The seam case is subtler and specific to canvases: when each zone controls its own outer padding, adjacent sections double their spacing or collapse it, and the page rhythm breaks at every boundary. Giving the orchestrator ownership of inter-section spacing — ideally as a single token or a wrapper frame the workers do not touch — turns seams from a negotiation into a constant.

The new-shared-asset row is where judgment stays involved. Sometimes the run genuinely needs a component that does not exist, and one worker should build it. The justification line plus the merge owner's read is the lightweight version of a contribution gate; if the same need shows up in a second run, that component graduates into the shared library with proper review, which connects to the design-systems course.

Narration for this slide

Almost every conflict comes from something two zones share. A shared component: one zone edits it, the other zone's layout breaks, and nobody sees it happen — so components are read-only to workers, and changes become their own sequenced task. Shared tokens: a worker fixes one mid-run and recolours everyone else's work — so tokens belong to the orchestrator, and workers file a request and keep going. Seams: each zone pads its own edge and the spacing doubles or collapses where they meet — so the orchestrator owns section spacing globally. And new assets: two workers invent nearly the same card in parallel — so reuse before create, with a one-line justification the merge owner actually reads. Each rule is boring. Each one is cheaper than the cleanup it prevents.

Slide 9 of 1316:9

The review rhythm: snapshots, diffs, and a merge owner

Divergence on a fast-moving canvas compounds. The rhythm exists to catch it while it is still one zone's problem.

  • Skeleton checkpoint: review all zones at the structure stage, before content and polish
  • Per-zone diffs or screenshots at each checkpoint — readable in minutes, not hours
  • One merge owner assembles the page and runs the consistency pass against the tokens
  • Whole-page snapshot at every merge: coherence is judged on the page, not the zone
  • Fix lists return to the owning zone only; recurring fixes get encoded in the conventions

Review the skeletons together before any zone gets polished. Divergence caught at the skeleton stage costs minutes; caught at the polish stage it costs the zone.

Slide notes

The rhythm has two beats and one role. The first beat is the skeleton checkpoint, borrowed directly from the layered workflow: every zone pauses when its structure is blocked out — sections, hierarchy, rough sizing — and the orchestrator or designer reviews them side by side before anyone writes real content or polish. This is the cheapest moment to catch the zone that misread the brief, the duplicate component, or the layout that will not sit next to its neighbours. It is the multi-agent equivalent of the plan-review gate from the fundamentals course: correction before investment.

The second beat is the merge. One named merge owner — a person for high-stakes pages, an agent with a tight checklist for routine ones — assembles the zones in the agreed order and runs the consistency pass: diff each zone against the tokens, check spacing and type rhythm across seams, flag naming violations, and snapshot the whole page. The snapshot matters because coherence is a whole-page property; no per-zone review can see it.

The role is the merge owner itself, and the discipline is that fix lists go back to the owning zone only. Broadcasting fixes invites three agents to solve the same problem three ways. And the Module 2 habit applies here too: a fix that recurs across runs is not feedback, it is a missing convention — move it into the harness so the next run never produces it.

Narration for this slide

The rhythm has two beats. First, a skeleton checkpoint: every zone pauses when its structure is blocked out, and you review the skeletons side by side — before content, before polish. That is where you catch the zone that misread the brief or the layout that will not sit next to its neighbours, while the fix still costs minutes. Second, the merge: one named owner assembles the zones in the agreed order, diffs each one against the tokens, checks the seams, and snapshots the whole page — because coherence is a property of the page, and no zone can see it alone. Fix lists go back to the owning zone only. And anything you find yourself fixing every run is not feedback any more — it is a convention you have not written down yet.

Slide 10 of 1316:9

When concurrent canvas work is not worth it

The Module 1 test, applied to canvases. If any of these describe the task, run one agent — or no agent.

  • The page is small: one agent finishes it faster than you can write three zone briefs
  • The zones are not actually independent — every section depends on a hero direction not yet chosen
  • The design system is thin: no tokens or component library means every worker invents its own
  • Taste is the bottleneck: exploration of direction belongs to one agent and one designer, not a team
  • Nobody can own the merge: without a named merge owner, parallel output just queues up unreviewed

Concurrency pays on large, well-systematised surfaces with genuinely independent zones. Everywhere else, the coordination tax exceeds the speed-up.

Slide notes

This slide deliberately reuses the decision logic from Module 1, because the canvas does not get an exemption from it. The small-page case is the most common: writing three zone briefs, setting conventions, and running a merge pass has a fixed cost of an hour or so of designer attention, and a single competent agent will finish a one-screen page in less time than that. The dependency case is subtler — a landing page where the features, pricing, and footer all need to echo a hero direction that has not been chosen yet is sequential work wearing a parallel costume; fan it out and you will rebuild two zones after the hero lands.

The thin-design-system case matters for teams early in their agentic adoption. Concurrent zones stay coherent because they share constraints; if there are no tokens, no component library, and no written conventions, the shared-constraint column in this module's diagram is empty and every worker improvises. Build the system first — the design-systems course covers that — and the concurrency becomes available later.

The taste case and the merge-owner case are about people, not tooling. Direction exploration is a conversation between one designer and one agent, where divergence is the point; concurrency optimises production, not taste. And if no human or clearly-charged agent owns the merge, parallel output simply accumulates as unreviewed work in progress — which is slower than not having started.

Narration for this slide

Be honest about when not to do this. If the page is small, one agent will finish before you have written three zone briefs. If the zones all depend on a hero direction nobody has chosen, the work is sequential no matter how you stage it. If your design system is thin — no tokens, no component library — the workers have nothing shared to stay consistent with, and every zone will improvise. If the bottleneck is taste, not production, exploration belongs to one designer and one agent. And if nobody can own the merge, parallel output just piles up unreviewed. Concurrency pays on large, well-systematised surfaces with genuinely independent zones. Everywhere else, the coordination tax wins.

Slide 11 of 1316:9

Worked example: three agents, one design-system canvas

A traced run on a repo-resident canvas file: building the documentation canvas for a component library — foundations, components, and patterns pages — with three workers.

StageWhat happenedTime
DecomposeThree zones by page: foundations, components, patterns; tokens and naming rules locked in the orchestrator brief~20 min, designer
Skeleton checkpointAll three skeletons reviewed together; patterns zone had invented a second card grid — redirected to reuse before content was written~10 min review
Parallel buildWorkers filled content against the shared variables; components zone filed one token-change request instead of editing the token~35 min wall clock
Merge + consistencyMerge owner assembled pages, diffed against tokens: 2 hardcoded colours and 1 naming violation found, all in one zone; fix list returned to that zone~15 min
Designer reviewWhole-canvas pass: spacing seam between foundations and components corrected globally; shipped on round two~25 min

Roughly 35 minutes of parallel build inside roughly 105 minutes of total designer-facing time. The structure is what kept the review at 50 minutes instead of an afternoon.

Slide notes

Frame this as a traced run of the structure, with illustrative timings — the point is the shape of the log, not a benchmark, and the numbers will vary with the surface and the team. The task suits concurrency on every Module 1 test: the canvas is large (three pages), the zones are genuinely independent (foundations, components, patterns barely reference each other), and the design system is mature enough that shared constraints exist to be read.

The two interventions are where the structure earned its keep. The skeleton checkpoint caught the patterns worker inventing a second card grid before any content existed — a thirty-second redirect at that stage, a zone-level rebuild if it had been caught at the merge. The token-change request from the components worker is the ownership rule working as designed: the worker flagged that a spacing variable seemed wrong, kept building with the existing value, and the orchestrator made the call once, globally, after the run.

The merge findings are typical: a couple of hardcoded colours and a naming violation, all clustered in one zone, all caught by diffing against the tokens rather than by eyeballing. And the designer review still found something no zone could see — the spacing seam between two pages — which is exactly why the whole-page pass is not optional. Total designer-facing time was roughly 105 minutes for a three-page canvas; the honest comparison is not against zero, it is against either a long single-agent run with the designer waiting, or a manual build measured in days.

Narration for this slide

Let's trace one run. The task: a documentation canvas for a component library — three pages, foundations, components, and patterns — with three workers, one per page. Decomposition took about twenty minutes, mostly writing the zone briefs and locking the token and naming rules. The skeleton checkpoint earned its place immediately: the patterns worker had invented a second card grid, and a thirty-second redirect fixed what would have been a rebuild at merge time. The parallel build ran about thirty-five minutes; one worker filed a token-change request instead of editing the token, exactly as briefed. The merge pass found two hardcoded colours and a naming violation, all in one zone. And the final whole-canvas review caught a spacing seam no single zone could have seen. Round two shipped. The structure is what kept the review under an hour.

Slide 12 of 1316:9

Exercise: zones and conventions for one shared file

Take one real canvas or design file your team works in — or the page you would most like to rebuild — and plan a concurrent run on paper. Do not run it yet.

  • Partition it into 2–4 zones along its own structure; name an owner for each
  • List the shared assets — tokens, components, variables — and write the rule for changing each
  • Write the five conventions you would put in the harness: naming, layers, components, variables, placement
  • Decide the rhythm: where the skeleton checkpoint falls, who owns the merge, what the consistency pass checks
  • Apply the not-worth-it checklist honestly; if the task fails it, write down which single-agent alternative you would use instead

Keep the page. Module 5 turns an approved canvas into production code, and the zones and conventions you define here become the input to that pipeline.

Slide notes

The exercise is on paper for the same reason the Module 1 exercise was: the hard part is the decomposition and the rules, not the running. Steer participants towards a real file with real shared assets — a marketing site canvas, a design-system documentation file, a multi-screen flow — rather than an idealised example, because the awkward parts are the point. The shared-asset list in particular tends to be longer than people expect once they look: tokens, a handful of components, a couple of illustration styles, the page grid itself.

The convention-writing step is where the value concentrates. Most teams discover they have informal conventions that have never been written anywhere an agent would read them, which means they effectively do not exist for this workflow. Five lines is enough; the discipline is putting them in the harness file rather than in someone's head.

The last bullet matters most for honesty. A respectable fraction of the files people pick will fail the not-worth-it checklist — too small, too coupled, too thin a system — and writing down the single-agent alternative is a better outcome than forcing a team structure onto a solo task. If running this live, compare answers on the merge-owner question: it is the one most groups leave vague, and the one that decides whether the parallel output ever becomes a page.

Narration for this slide

Your turn. Pick one real shared file — a canvas your team actually works in, or the page you would most like to rebuild — and plan a concurrent run on paper. Partition it into two to four zones along its own structure and name an owner for each. List the shared assets and write the rule for changing each one. Write the five conventions you would put in the harness. Decide where the skeleton checkpoint falls, who owns the merge, and what the consistency pass checks. Then apply the not-worth-it checklist honestly — and if your file fails it, write down the single-agent alternative instead. Keep the page. Module 5 builds the pipeline that takes this canvas to production, and your zones become its input.

Slide 13 of 1316:9

Summary, and the bridge to canvas-to-production

  • Shared canvases fail quietly: collisions, drift, duplicate inventions, and token bypass — not error messages
  • One writer per zone; shared tokens and components belong to the orchestrator, never to a worker
  • Conventions live in the harness and the worker briefs: naming, layers, reuse-before-create, variables, placement
  • Diffable canvas files — .pen, .op — turn zone ownership into branch-and-diff discipline; OpenPencil is the public reference for the architecture
  • The rhythm: skeleton checkpoint, one merge owner, whole-page snapshot, fix lists to the owning zone — and a clear-eyed call on when one agent is simply better

Module 5 takes the canvas this team just kept coherent and pushes it through to production: stages, gates, parity checks, and the evidence at each step.

Slide notes

Recap by connecting the bullets back to the course spine. The quiet-failure slide is Module 1's coordination tax made visible on a spatial surface. Zone ownership and the conflict rules are Module 2's fan-out pattern with the boundaries drawn in canvas geometry. The file-format slide is the same design-as-code argument the fundamentals course makes, applied to the question of whether concurrent work can be reviewed at all. And the rhythm — skeleton checkpoint, merge owner, whole-page review — is the critique discipline scaled to several producers.

Be explicit that the honest takeaway includes the negative case: most canvases, most weeks, are still single-agent work, and the not-worth-it checklist is as much a part of this module as the diagram. Teams that internalise that spend their concurrency budget on the few surfaces where it genuinely pays.

Preview Module 5 concretely. The output of this module is an approved, coherent canvas with named zones, clean tokens, and a merge log. Module 5 is about what happens next: the pipeline from that canvas to merged production code — spec extraction, implementation, parity checks against the approved frames, and a gate with an owner and evidence at every stage. The zones defined in this module's exercise map almost one-to-one onto that pipeline's work packages.

Narration for this slide

Let's close. Shared canvases fail quietly — drift, duplicates, and token bypass, not error messages — so the protections have to be structural. One writer per zone, with shared tokens and components owned by the orchestrator. Conventions written into the harness, not spoken into the chat. A diffable canvas file, so ownership becomes ordinary branch-and-diff discipline — with OpenPencil as the clearest public implementation of the whole architecture. And a rhythm: skeletons reviewed together, one merge owner, a whole-page snapshot, fixes returned to the zone that owns them. Plus the honest call that many canvases are still one-agent work. In Module 5, we take the coherent canvas this team just produced and push it through to production — stages, gates, and parity checks the whole way. See you there.

Module transcript
Module 4, narrated slide by slide

Slide 1Concurrent Agent Teams on the Canvas

Welcome to Module 4. So far in this course we have decided when to split work, picked an orchestration pattern, and chained the tools together. Now we get to the surface where parallel work actually lands: one shared canvas, several agents editing it at the same time. Code has merge conflicts that shout at you. A canvas fails quietly — the page just stops feeling like one page. This module covers the three things that prevent that: zone ownership, conventions agents can follow, and a review rhythm that catches divergence early. Let's start with why a shared canvas is harder than a shared codebase.

Slide 2Why shared canvases fail quietly

Here is what actually goes wrong when several agents share a canvas. Sometimes it is a real collision — two agents write to the same frame, and either the later write silently wins or you are merging a canvas file by hand. But the expensive failures are quieter. Spacing and type drift apart section by section. Each agent invents its own card component because it cannot see what the others built. One agent hardcodes a colour another reads from a token. None of this errors. You only see it when the sections sit next to each other and the page no longer feels like one product — and by then, the fix costs more than the parallelism saved.

Slide 3Zone ownership: one owner per zone, no exceptions

The single most effective rule is also the simplest: every zone has exactly one writer. Partition the canvas along its own structure — pages, top-level frames, named sections — because those are boundaries an agent can actually respect. Inside its zone, an agent can do whatever the brief allows. Outside it, read-only. And the shared things — tokens, variables, the component library — are owned by nobody on the worker side. If a worker thinks a token is wrong, it asks the orchestrator; it does not fix it mid-run and silently change everyone else's output. Write the boundaries into each worker's brief before anything starts. Ownership negotiated mid-run is ownership that has already failed.

Slide 4Conventions agents can follow

Agents are good at following conventions — better than people, honestly — but only the ones you write down where they will be read. Five are worth enforcing. Zone-prefixed names, so every node says which zone owns it and a stray edit is visible in the diff. Auto-layout containers with explicit gaps, because agents handle structure well and absolute coordinates badly. Reuse before create, with a one-line justification whenever a worker makes a new component. Variables for every value the system already names — no hardcoding something that happens to match. And everything inside the assigned frame, nothing parked loose on the canvas. Put all of this in the harness file and the worker briefs. A convention that only lives in the chat lasts exactly one session.

Slide 5Connected canvases: what the file formats make possible

The file format decides what coordination you can actually do. When the canvas is a JSON file in your repo — Pencil's dot-pen format, or OpenPencil's dot-op — concurrent work gets the whole git toolkit for free: a branch per zone, a diff per worker, a merge the orchestrator controls. OpenPencil even ships a three-way merge panel for its files, which tells you something honest: diffable design files still collide, they just collide visibly. Paper keeps the artifact as markup but in its own cloud, so review leans on screenshots. And Figma is still the right answer for established libraries and human multiplayer — but agent edits go through an API, so ownership is enforced by convention, not by branch. As of mid 2026, that is the landscape.

Slide 6OpenPencil's agent teams: the public reference implementation

If you want to see these ideas implemented rather than described, look at OpenPencil — an open-source, AI-native vector design tool, and the clearest public implementation of concurrent agents on one canvas. An orchestrator decomposes the page into spatial sub-tasks — hero, features, footer — and multiple agents draw their sections in parallel, with indicators showing who is working where. Each zone goes through layered passes: skeleton first, then content, then refinement. And each worker only loads the design knowledge its zone needs. One caveat: this is a documented description as of mid 2026, not a field test from this course. But the architecture is the lesson — spatial decomposition, shared constraints, layered passes — and it transfers to any canvas you can partition.

Slide 7The shape of a concurrent canvas run

Here is the whole shape on one diagram. On the left, the orchestrator decomposes the page: zones, single owners, a merge order decided up front. Below it, the shared constraints — tokens, components, naming — which every worker reads and no worker may change. The middle column is the only parallel part: three workers, three zones, each writing only its own frames, each building skeleton, then content, then refinement. Then everything funnels through a merge and consistency pass with one owner — diffs against the tokens, drift checks, a snapshot of the whole page, a fix list per zone. And finally a designer reviews the page as a page. Notice the dashed line: fixes go back to the zone that owns them, never to all three at once.

Slide 8Conflict cases and the rule that resolves each

Almost every conflict comes from something two zones share. A shared component: one zone edits it, the other zone's layout breaks, and nobody sees it happen — so components are read-only to workers, and changes become their own sequenced task. Shared tokens: a worker fixes one mid-run and recolours everyone else's work — so tokens belong to the orchestrator, and workers file a request and keep going. Seams: each zone pads its own edge and the spacing doubles or collapses where they meet — so the orchestrator owns section spacing globally. And new assets: two workers invent nearly the same card in parallel — so reuse before create, with a one-line justification the merge owner actually reads. Each rule is boring. Each one is cheaper than the cleanup it prevents.

Slide 9The review rhythm: snapshots, diffs, and a merge owner

The rhythm has two beats. First, a skeleton checkpoint: every zone pauses when its structure is blocked out, and you review the skeletons side by side — before content, before polish. That is where you catch the zone that misread the brief or the layout that will not sit next to its neighbours, while the fix still costs minutes. Second, the merge: one named owner assembles the zones in the agreed order, diffs each one against the tokens, checks the seams, and snapshots the whole page — because coherence is a property of the page, and no zone can see it alone. Fix lists go back to the owning zone only. And anything you find yourself fixing every run is not feedback any more — it is a convention you have not written down yet.

Slide 10When concurrent canvas work is not worth it

Be honest about when not to do this. If the page is small, one agent will finish before you have written three zone briefs. If the zones all depend on a hero direction nobody has chosen, the work is sequential no matter how you stage it. If your design system is thin — no tokens, no component library — the workers have nothing shared to stay consistent with, and every zone will improvise. If the bottleneck is taste, not production, exploration belongs to one designer and one agent. And if nobody can own the merge, parallel output just piles up unreviewed. Concurrency pays on large, well-systematised surfaces with genuinely independent zones. Everywhere else, the coordination tax wins.

Slide 11Worked example: three agents, one design-system canvas

Let's trace one run. The task: a documentation canvas for a component library — three pages, foundations, components, and patterns — with three workers, one per page. Decomposition took about twenty minutes, mostly writing the zone briefs and locking the token and naming rules. The skeleton checkpoint earned its place immediately: the patterns worker had invented a second card grid, and a thirty-second redirect fixed what would have been a rebuild at merge time. The parallel build ran about thirty-five minutes; one worker filed a token-change request instead of editing the token, exactly as briefed. The merge pass found two hardcoded colours and a naming violation, all in one zone. And the final whole-canvas review caught a spacing seam no single zone could have seen. Round two shipped. The structure is what kept the review under an hour.

Slide 12Exercise: zones and conventions for one shared file

Your turn. Pick one real shared file — a canvas your team actually works in, or the page you would most like to rebuild — and plan a concurrent run on paper. Partition it into two to four zones along its own structure and name an owner for each. List the shared assets and write the rule for changing each one. Write the five conventions you would put in the harness. Decide where the skeleton checkpoint falls, who owns the merge, and what the consistency pass checks. Then apply the not-worth-it checklist honestly — and if your file fails it, write down the single-agent alternative instead. Keep the page. Module 5 builds the pipeline that takes this canvas to production, and your zones become its input.

Slide 13Summary, and the bridge to canvas-to-production

Let's close. Shared canvases fail quietly — drift, duplicates, and token bypass, not error messages — so the protections have to be structural. One writer per zone, with shared tokens and components owned by the orchestrator. Conventions written into the harness, not spoken into the chat. A diffable canvas file, so ownership becomes ordinary branch-and-diff discipline — with OpenPencil as the clearest public implementation of the whole architecture. And a rhythm: skeletons reviewed together, one merge owner, a whole-page snapshot, fixes returned to the zone that owns them. Plus the honest call that many canvases are still one-agent work. In Module 5, we take the coherent canvas this team just produced and push it through to production — stages, gates, and parity checks the whole way. See you there.