jonnifyagile agents
jonnify / Agile Agent Workflow / A1 · Why / A1.03 / A1.03.1 · The two roles

A1.03 · The Author/Operator loop · dive 1

The two roles

The loop has two roles and a hard line between them. The Operator decides what to build and whether it is done; the Author produces the spec and the code. Neither crosses.

The Operator never writes the code; the Author never decides the goal. The pairing is the course thesis made concrete — judgement and accountability on one side, throughput and patience on the other. Switch the view on the right to see what each role owns, and where they meet.

Who owns what · switch the view

OPERATOR · human AUTHOR · agent decide the goal sharpen the rung demo review accept / decide done author the spec build the increment ship the spec
The Operator owns intent, judgement, and acceptance: decide the goal, sharpen the rung, demo, review, accept. The Operator never writes the code — the scarce, valuable input is judgement.

The line between the roles

One rung runs as a loop between two roles, and the design is the line between them. The Operator is the human: the source of intent, judgement, and acceptance. The Operator sharpens the next rung, demos what returns, reviews it against the spec, and decides whether it is done. The Operator never writes the code — that scarce, valuable input is judgement, and spending it on production wastes it.

The Author is the Claude agent: the source of production. The Author turns the sharpened rung into a spec, builds the increment from that spec and the brief, and ships it — fast and exact. The Author never decides the goal. The two meet on the spec: the Operator's sharpened intent, authored into the contract the Author builds from. Neither side proceeds on anything else.

Operator
The human — intent, judgement, acceptance. Sharpens, demos, reviews, decides done. Never writes the code.
Author
The Claude agent — production. Turns the sharpened rung into a spec, builds it, ships it. Never decides the goal.
the line
The Operator owns what and whether it is done; the Author owns how — the spec and the code.
the spec
Where the roles meet: the Operator's sharpened intent, authored by the Author into the contract it builds from.

The names encode the split: the Author authors the artifacts (the spec and the code); the Operator operates the process (directs, judges, accepts). Keep each on its strength.

Why the split multiplies

The pairing is not a convenience; it is a multiplier — but only under one condition. The Author's throughput is near-unlimited, while the Operator's judgement is the scarce input. So accepted value is produced only as fast as the Operator can accept: the Author can build ten rungs in the time the Operator has to review, but if accepting each one means re-reading every line, nine of them wait.

That makes cheap acceptance the lever. When each rung carries its own acceptance — a contract, a test (A1.02.2) — the Operator accepts many per cycle, and the Author's throughput converts to shipped value. When acceptance is expensive, the throughput is wasted. Step the slider: the same production, a different acceptance cost, a different amount that actually ships.

The acceptance multiplier · move the slider

4
the Author produces 10 rungs · gold = the Operator accepts this cycle accepted value shipped this cycle accepted per cycle: 2 budget 10 ÷ cost 4 = 2
With acceptance cost 4 per rung, the Operator accepts ⌊10 / 4⌋ = 2 rungs per cycle. The Author's throughput becomes accepted value only as fast as the Operator can accept — so cheap acceptance (a contract, a test) is the multiplier.

The Author's speed is real, but the Operator's acceptance is the gate: the split multiplies only when each rung is cheap to accept — which is what the contract bought.

The two roles on the Portal

On the Portal — the learning platform this course builds — the Operator decides the next rung (“one branded id”, then “store one event”) and what done means: the id contract from A1.02.2. The Author turns that into a spec and implements Portal.ID.generate/1 to satisfy it, then ships. The Operator demos (the id decodes), reviews against the contract, and accepts.

The line holds throughout: the Operator never writes generate/1, and the Author never decides that an id is the right next rung. The spec — the contract — is the one place they meet.

# Operator: decides the rung and what "done" means (the contract) — never writes the code.
#   "next rung: a branded id; done = 14 chars, decodes to its type, unique within a node-ms"

# Author: turns that into a spec and produces the code to satisfy it — never decides the goal.
id = Portal.ID.generate(:user)        # => "USR0NbAb1xcFCy"

# Operator: reviews against the contract, then accepts.
assert Portal.ID.decode(id).type == :user   # meets the spec → accepted

The principle

A deciding role and a producing role, each kept on its strength: judgement and acceptance on one side, throughput and production on the other.

On the Portal

The Operator picks the rung and the contract; the Author specs and builds Portal.ID.generate/1 to it. Neither crosses the line; the contract is where they meet.

The line is the design: the Operator decides what and whether it is done, the Author produces how — and the spec is the one place they meet.

Recap — the deciding role and the producing role

Two roles, one line. The Operator owns intent, judgement, and acceptance and never writes the code; the Author owns production and never decides the goal; the spec is where they meet. The split multiplies only when acceptance is cheap, which is exactly what the contract bought in A1.02. With the roles fixed, the next dive walks one rung through the six stages they hand back and forth.

Next in A1.03: A1.03.2 · One turn of the loop — the six owned stages of a single rung, and the failure that returns when one is skipped.

References

Primary sources for the two-role division of labour, and where it connects in the course.

Sources

Related in this course