Scenarios
Who plays which actor, and when, runs along an axis:
- Fully decoupled — roles spread across people, gated by asynchronous boundaries.
- Fully compressed — one human spans every role while delegates supply the production.
flowchart LR DEC["<b>Decoupled</b><br/>roles spread across people<br/>async boundaries<br/><i>generation expensive</i>"] MID["real work<br/>sits between"] COM["<b>Compressed</b><br/>one human spans every role<br/>delegates supply production<br/><i>generation cheap</i>"] DEC --- MID --- COM
Real work sits between. The axis is the abundance dial: where generation is cheap, the team compresses; where it stays expensive, it spreads back out. Here are the two ends.
Decoupled: a bug fix in an open-source project
Section titled “Decoupled: a bug fix in an open-source project”-
Oracle — the contributor decides this bug is worth their time, usually self-framed from their own pain; the issue thread is the brief. A maintainer framed it earlier by accepting and labeling it.
-
Explorer (Builder, divergent) — the contributor reproduces it, reads unfamiliar code, tries a couple of approaches, discards the dead ends.
-
Builder (producer) — writes the fix and a regression test; the test is the contract, co-delivered.
-
The gate (boundary: the pull request) — the maintainer enters only now, turning expertise backward against the change: correctness (Builder face) against the bar, fit-to-structure (Architect face), and worth-merging (Oracle face). The two-axis verdict applies — and a recurring-class concern may be
accept + deferred, filed as a follow-up. Note the asymmetry: the contributor produced for days with no evaluation present; the gate is async and late. -
Strategist — if the bug is one of a recurring class, the maintainer encodes a lint rule, a test pattern, or a
CONTRIBUTINGnote so the next contributor avoids it. Frequently deferred or skipped — infrastructure neglect in the wild.
Compressed: a solo developer and their delegates ship a feature
Section titled “Compressed: a solo developer and their delegates ship a feature”-
Oracle — the developer fixes the feature’s why and what success looks like, sometimes as a written brief, sometimes only in their head.
-
Explorer (Builder variant) — a delegate spikes three approaches in parallel; the developer, applying expertise backward, keeps one and kills two. That pick is the Builder’s own backward face — evaluation inside the Builder phase.
-
Builder (producer) — a delegate implements the chosen approach; the inner loop runs against tests.
-
The gate (boundary: the developer reads the diff) — the same human, now turning their expertise backward on the delegate’s output.
producer ≠ judgestill holds, because the delegate produced and the human judges. -
Architect (conducting) — the developer notices it should follow an existing convention and directs a refactor under green; if the convention needs a not-yet-built helper, they direct an orchestrator-delegate to build it in parallel rather than stalling the feature — the scheduling decision in miniature.
-
Strategist — at the end, the developer encodes the new convention so the next feature starts warmer — or, more often, a Strategist-delegate flags “you’ve done this three times” and the human approves the entry.
The three loops underneath
Section titled “The three loops underneath”Both walk-throughs run the same three loops — they just fire at different cadences, on different objects, owned by different actors.
flowchart LR
B[Builder produces] --> BAR{bar fires}
BAR -->|correct · inner loop| B
BAR -->|accept + deferred| BL["backlog · this product<br/>re-prioritized"]
BL -.-> B
BAR -->|durable lesson| CUR["Strategist distills → corpus<br/>outer loop · any product"]
CUR -.->|warmer start| B
class B,CUR actor
class BAR gate
class BL artifact
classDef actor stroke-width:2px
classDef gate stroke:#d97706,stroke-width:2px
classDef artifact stroke:#0d9488,stroke-width:1.75px - Inner loop — within a task. Builder produces, the bar fires, Builder corrects, Architect reshapes under green. Fast; every iteration. Correcting actions under fixed assumptions.
- Product feedback edge — across tasks, same product. Work deferred at the gate re-enters as its owning actor’s object, sequenced by a decision rule. New work, same product.
- Outer loop — across products. The Strategist distills durable lessons into the corpus so the next inner loop starts warmer. Revising the assumptions themselves.
Firing the Strategist every iteration is premature codification — you encode transient noise before you know which lessons are durable. So the human Strategist is episodic; its delegate watches continuously (flagging candidates, drafting conventions), while the human holds the accept/prune decision.
What the two ends share
Section titled “What the two ends share”Same four actors, same two faces, same gate, same surfaces. Only the compression changes. The decoupled team isn’t running a different model — it’s running the same model with production still scarce, so each person is confined closer to one contribution. That is the model being abundance-relative, not abundance-assuming.
Next: Recursion →