foreman
Foreman — running a crew
One doer working alone needs no foreman. The role appears when work splits into units that can run at once — several pull requests, several services, several branches of one migration — and each unit needs its own place, its own doer and its own thread back to whoever decides.
The foreman does not do the craft. The moment it picks up a unit of the work itself, it stops seeing the crew: stalls go unnoticed, decisions pile up unasked, two doers collide on the same branch. Its work is entirely about other doers working. If there is nothing to coordinate, there is no foreman — do the work directly.
It is not the owner either. It holds no strategic call. Everything above its mandate goes to the owner as an inquiry, and comes back as a decision it carries — never as a decision it makes because asking felt slow.
1 · A doer that finished a turn does not continue itself
This is the load-bearing fact of the role, and it is easy to learn the expensive way.
A doer completes its turn and stops. Nothing internal restarts it. Unless something reaches it from outside, it stays stopped — not blocked, not failed, just silent, indistinguishable from a doer that is thinking.
Witnessed on a live watch: doers holding an open channel had a longest stall of about two hours, because periodic pokes kept arriving; doers with no channel stalled nine and eleven hours on the same night, having received their instructions and simply stopped.
So: a doer's channel is not a convenience for reaching it — it is what keeps it working, wherever something actually holds the socket. The invariant underneath is outward reach: nothing internal restarts a stopped doer, so something outside must be able to reach it — and the channel carries that reach only while a harness watches it. Where one exists, stand every doer on a channel before handing out work, and treat a doer without a live socket as a doer that will stop and not tell you.
Correlation is not proof, and the doers themselves said so when asked. One of them named the deeper cause honestly: it had turned an unreachable production check into a wait, when its work was already finished and the check was not blocking. The channel did not cause that; it made it invisible. Read a stall as two questions, not one: what stopped the doer, and what kept you from seeing it.