jonnifyagile agents
jonnify / Agile Agent Workflow / A3 · The roadmap layer / A3.4 · Thin but robust

A3.4 · The roadmap layer

Thin but robust

A rung is a narrow vertical slice built to production quality — never a prototype to be redone. This is the line between thin and flimsy.

A backlog ordered into rungs still leaves one question: what does a single rung have to be before it counts as shipped? The wrong answer is “anything that demos”. A thin-but-robust slice is a vertical thread over the facade — contract-guarded, harnessed, gated, and leaving the system live. Strip any one and it is flimsy. Classify a candidate on the right.

Classify a candidate increment · pick one

the five-part test · a slice is thin-but-robust only when all five are green 1 · vertical thread (end to end) ok 2 · over the facade ok 3 · harnessed (a fast test) ok 4 · gated (verified, escaped) ok 5 · leaves the system live ok verdict · thin-but-robust
f6.1 · the engine served as a web app → THIN-BUT-ROBUST. A vertical thread over the facade, harnessed by a smoke test, gated, and leaving the node live — all five hold.

Five tests, one line

A2 ordered a backlog into rungs; A3.3 read a rung line on the roadmap. Neither answered what a single rung has to be before it counts as shipped. A slice that demos but carries no test, no contract guard, and no path to staying live is flimsy — it ships debt, not value, and it has to be redone. A thin-but-robust slice passes five tests at once:

Vertical — it threads end to end through every layer, not one horizontal layer in isolation. Over the facade — it calls only the Portal facade and renders only the closed error set. Harnessed — it ships a fast automated test that needs no live browser. Gated — verified routes, escaped interpolation, declared component attributes, so a typo fails before it ships. Always live — after it lands the node boots clean and serves. Miss any one and the slice is flimsy.

Thin is the size of the slice; robust is the bar it clears. The three dives separate the two: A3.4.1 establishes the shape (vertical, not shallow), A3.4.2 lists the seven properties that make a thin slice robust, and A3.4.3 isolates the strictest of them — always live.

the principle

A slice earns “robust” only when it is a vertical thread, contract-guarded, harnessed, gated, and leaving the system live — anything less is a flimsy prototype to be redone.

on the Portal

Every F6 rung holds the master invariant — the web layer calls only the Portal facade and renders only the closed %Portal.Error{} set — which is the bar that keeps each thin slice robust.

Thin is the size of a slice; robust is the bar it clears — and the master invariant is the bar.

The three dives

The dives run the arc thin: vertical, not shallow → what robust adds → always live: first the shape of a thin slice, then the seven production properties that make it robust, then the strictest property on its own. Read them in order — A3.4.1 starts.

A3.4 sharpens the discipline at the centre of the method, grounded on the real F6 “thin but robust for the web” section. The next module, A3.5 · Milestones and iterations, groups robust rungs into shippable milestones. Return to the A3 chapter navigation to continue.

References

The production-discipline tradition this module draws on, and where it connects in the course.

Sources

Related in this course