Two sessions grab the same task.
You split the work into roles: a planner session, a builder and a reviewer, like the developer whose loop ran planner, then builder, then reviewer, then a fresh second reviewer. It works until two sessions grab the same task, or the reviewer never hears the builder finished, and you're back to copying text between terminals.
Without something shared, you're the link.
Each session is separate and starts blank. They can't see each other. Unless something shared sits between them, you carry the plan to the builder, the result to the reviewer, and the verdict back.
Two sessions reading the same task list at the same moment will both think the top task is free.
What doesn't work.
Copy-paste between terminals. You're the bottleneck, and you're asleep.
One session playing all three roles. The reviewer then shares the builder's context and its blind spots.
One shared markdown file that everyone edits. Two writers at once, and one overwrites the other.
What actually helps.
Most of this isn't us.
Keep one list of tasks, each with a single owner.
Make taking a task a separate, all-or-nothing step, so a second session trying the same task is refused instead of duplicating it.
Start the reviewer fresh, without the builder's notes, reading only the change.
Have each role write its result where the next role looks first.
Taking a task is all-or-nothing.
In our system, taking a task is a single step that either succeeds or is refused. Two sessions can't both win it.
In July a worker went to take a task and was refused, because another session had claimed it about six seconds earlier. It stopped and wrote down why instead of doing the same work twice. The step exists because of how the project began: in April one session was about to pick up work another was already doing, neither knew, and the operator had to notice and pass the message between them.
| What was measured | What the record says |
|---|---|
| gap between the two claims | about 6 seconds; the second was refused |
| what the refused worker did | stopped and recorded why, instead of duplicating the work |
| recorded | 10 July 2026 |
| the collision that started it | two sessions heading for the same work, April 2026, caught by the operator |
| where it's from | Vinculum's own project record, which runs on Vinculum |
Where a shared memory fits.
Vinculum keeps the task list, makes taking a task all-or-nothing, and records each role's result where the next role reads it.
Sessions still don't negotiate with each other. Real conflicts still come to you.
Common questions.
Why not run all three roles in one session?
Then the reviewer has read the builder's reasoning and inherits its blind spots. A fresh reviewer that sees only the change catches more.
Can't I just use a lock file?
A lock file on one machine works for sessions on that machine. Once sessions run on more than one computer, the claim has to live somewhere they all share.