Slide 1 — Concurrent 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 2 — Why 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 3 — Zone 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 4 — Conventions 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 5 — Connected 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 6 — OpenPencil'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 7 — The 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 8 — Conflict 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 9 — The 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 10 — When 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 11 — Worked 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 12 — Exercise: 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 13 — Summary, 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.