Skip to main content

Junyr Method™

Decision-Gated Development: when the bottleneck moves from execution to decision

· 11 min read · Paul-Antoine Tual

roadmap-driven development AI agents agentic engineering human-in-the-loop AI governance UltraCoding decision-complete plans Junyr Method spec-driven development

The shift

For sixty years, writing software was expensive and deciding was cheap. Every method we built follows from that. We estimate, plan, prioritise, and break work down, because execution is the scarce resource that has to be allocated with care.

AI agents inverted that relationship. Writing a hundred correct lines now costs almost nothing. Deciding which lines to write is where everything is spent. The bottleneck moved from execution to decision, and most teams are still optimising the old bottleneck.

The symptom is easy to spot. A team that adopts agents first produces a lot, then finds itself reviewing code it never thought through, arguing after the fact about architectural choices already implemented, and discovering structural decisions a machine made implicitly at three in the morning. Volume goes up, control goes down.

Decision-gated development treats this with a simple inversion. The decision becomes an artefact, and it passes a human checkpoint before anything gets written.

Three rules, and nothing else

The method fits in three rules. Their value is not sophistication, it is that they hold up.

First rule. By default, plan, do not implement. Every work session produces a plan, not code. Implementation is only allowed when explicitly requested. When in doubt, plan. This rule looks bureaucratic until you measure what it prevents: code written on a misunderstood intent that will have to be undone.

Second rule. A plan is not an idea. An idea is free and lives in an inbox. A plan is the product of an exploration: it names the exact files, the hookup points to reuse, the rules it must not break, the tests to write. It is actionable without further exploration. The bar is precise, decision-complete rather than detail-complete. The plan locks in the choices, which age well; it leaves the mechanical residue to implementation, which ages fast.

Third rule. A single human gate, and it cannot be bypassed. An unapproved plan does not get implemented. The control is not a code review after the fact, it is a decision validation before the fact. That is where, and only where, a human is irreplaceable.

From idea to verdict: a single checkpoint Box-and-arrow diagram: an idea becomes a decision-complete plan, passes a single human gate, then ends either in implementation or in abandonment before any line of code. From idea to verdict: a single checkpoint Idea Plan decision-complete Human gate Shipped 477 Abandoned 31
Figure 1. An approved plan gets implemented, an unapproved or stale plan gets abandoned, never the reverse. Source: Junyr development registry, 28 July 2026.

What the method enables, and why it runs against intuition

Planning parallelises, implementation does not

This is the most useful reversal. You can run as many concurrent planning sessions as you want, they never collide, because they only produce written decisions. Implementation, however, stays carried by a single writer at a time, because two agents editing the same file overwrite each other silently.

Intuition says the opposite. We instinctively assume thinking is sequential and producing parallelises. With agents, it is the reverse.

The plan becomes the unit of review, not the diff

Reviewing a six-thousand-character plan that states the files touched, the hookup points reused, and the tests to write takes a few minutes. Reviewing the matching diff takes much longer, and above all arrives too late: by the time a bad architectural choice shows up in a diff, it has already been written.

Freshness becomes a first-order problem

An approved plan ages. The code shifts underneath it. Hence a step nothing replaces: before implementing, cheaply verify that the named files and hookup points still exist as described. Checking a precise plan costs minutes; deriving an approach from an idea costs a whole exploration.

This step is not decorative. Over these seventeen days it intercepted several plans whose premise had turned false between writing and execution, including one about to destroy data while believing it was fixing it.

Case study: seventeen days of registry

The figures below come from a real registry, measured on 28 July 2026, over seventeen days of continuous existence since its creation. A first measurement had been taken on 21 July, at eleven days: between the two, volume more than doubled (260 to 565 plans) without the method itself changing a single rule. The pace itself accelerated, not just the volume: roughly 24 plans a day over the first eleven days, roughly 51 a day over the next six (see Figure 3). That is a data point too: a method that holds under growing load, not only at launch.

MeasureValue
Plans written565
Plans implemented then closed477
Plans abandoned31, 26 of them never claimed for implementation
Plans awaiting approval or their turn57
Upstream ideas and reports never turned into plans144 (out of 482 entered in the registry)
Archived plan revisions167
Median plan size5,693 characters
565 plans, seventeen days: where the volume goes Horizontal bars: out of 565 plans written, 477 are shipped, 57 await approval or their turn, and 31 are abandoned, 26 of them before any line of code. 565 plans, seventeen days: where the volume goes Shipped 477 Awaiting 57 Abandoned 31 (26 before code)
Figure 2. The 31 abandoned plans are not a failure of the method, they are its measured yield. Source: Junyr development registry, 28 July 2026.

Three lessons read directly off these figures.

Thirty-one abandoned plans, twenty-six of them without a single line of code ever written. This is the method’s yield, measured conservatively: those twenty-six were never claimed for implementation, so zero code was produced with certainty; the remaining five were claimed then abandoned, most often because the freshness pass that precedes every implementation found a false premise before anything substantial got written. Each of these thirty-one represents an exploration carried out, a decision made, and work that never happened because someone understood in time that it should not.

A hundred and forty-four upstream items out of four hundred and eighty-two entered in the registry, never turned into plans. The gap measures the selection. An idea is not a plan, and most ideas never become one: they stay readable, dated, and reopenable on a precise signal, should one arise.

A hundred and sixty-seven revisions. An approved plan that gets substantially rewritten is no longer the approved plan. The control then has to run again, or it controls nothing. This is the method’s most subtle failure mode, and the one that shows up most silently: a dashboard that displays ready work that no longer is.

Registry growth: the pace itself accelerates Growth curve of plans written since registry creation: zero at day 0, 260 at day 11, 565 at day 17. The slope of the second segment is steeper than the first. Registry growth: the pace itself accelerates Day 0 0 plans Day 11 (07/21) 260 plans Day 17 (07/28) 565 plans
Figure 3. Roughly 24 plans a day over the first eleven days, roughly 51 a day over the next six: the registry is growing faster than it was growing, not merely bigger. Source: Junyr development registry, measurements of 21 and 28 July 2026.

The three ways the method degrades

A method is judged by its failure modes, not its successes.

A gate that becomes a rubber stamp

If the approver signs off without reading, all that is left is the bureaucracy without the benefit. The only remedy is size: a plan that fits on three screens actually gets read; a fifteen-screen plan gets signed unread.

A plan that describes an intention rather than deciding one

The symptom is easy to spot: the plan names no file, no hookup point, no test. It sells a direction. The approver then believes they are validating a decision, when they are validating a wish.

A registry that lies by omission

This is the worst case, because it produces no visible error. A board that shows as available work that no longer is, a report source that only gets half-read, a counter that reads zero because it counts the wrong thing. Nothing breaks, and trust in the instrument erodes without anyone noticing.

This method is the engineering counterpart of a broader framework, the Junyr Method™, which describes how a company moves through its AI transformation across five maturity tiers.

Both answer the same question at two scales. The Junyr Method™ asks: as AI takes over execution, who decides, on what basis, and with what guarantees? Decision-gated development answers at the level of an engineer’s workstation: keep the decision, delegate the execution, and make the checkpoint explicit rather than implicit.

The Junyr Method™ is tool-independent. This engineering method is too: it requires a registry, a precision bar and a human gate, not a particular piece of software.

What I am not claiming

The method says nothing about the quality of the code produced, the choice of agents, or the architecture. It replaces neither tests nor review. It treats a single problem, the shifted bottleneck, and it only has value for teams that have actually run into it.

It has a real cost. Writing a six-thousand-character plan for a three-line fix is absurd, and nobody should do it. The method earns its keep once the volume produced exceeds review capacity. Below that, it is ceremony.

In one sentence

The bottleneck is no longer execution, it is decision. What deserves a registry, a gate and a signature is no longer the code, it is the choice.

To install this governance loop (a plan registry, a human gate, verified execution) in your AI projects, see the Junyr Method™ and the AI Express Audit & Roadmap.

Going further

Paul-Antoine TUAL, AI Transformation Leader · Croissance et Transitions (SAS) · Junyr Method™ · Junyr Mail™ · Junyr Agents™


Sources

The registry figures (565 plans written, 477 shipped, 31 abandoned including 26 never claimed for implementation, 57 awaiting approval or their turn, 144 out of 482 upstream ideas never turned into plans, 167 archived revisions, median size 5,693 characters) come from Junyr’s development registry, read on 28 July 2026, seventeen days after its creation. A first measurement had been taken on 21 July 2026 (260 plans, eleven days). For external context (removing Git, spec-driven development, forges built for agents), see the bibliography of “We removed Git from a production product”.

Frequently asked questions

What is decision-gated development?
A software engineering method in which the decision becomes a written artefact (a plan) and passes a single human checkpoint before a single line of code gets written. It answers a precise shift: with AI agents, writing correct code costs almost nothing, deciding what to write now costs everything. Three rules define it: plan by default, a plan must be decision-complete (exact files, hookup points, tests, out-of-scope), and a single human gate approves before any implementation.
Why does planning parallelise while implementation does not?
Because planning only produces a written decision, without touching the code: as many planning sessions as needed can run at once without getting in each other's way. Implementation, on the other hand, actually writes into files; two agents editing the same file at once overwrite each other silently. The method therefore splits the work into a single writer at a time on the execution side, and an unlimited number of thinkers in parallel on the decision side.
What is a "decision-complete" plan?
A plan that locks in the decisions, and only the decisions: the exact files to change, the existing hookup points to reuse, the rules it must not break, the tests to write, and what is out of scope. It is actionable without further exploration, but leaves the mechanical residue (imports, precise insertion points) to implementation. The bar is not length: it is completeness of decisions.
What is the method's actual yield?
On a seventeen-day registry: 565 plans written, 477 shipped, and 31 abandoned, including 26 before a single line of code was written. Those 26 are the most honest yield to measure: an exploration carried out, a decision made, and work that never happened because someone understood in time that it should not. In a code-first model, they would have been written, reviewed, then undone.
How does this method relate to the Junyr Method™?
Decision-gated development is the engineering counterpart, at the level of an individual engineer's workstation, of a broader company-wide framework for AI transformation. Both ask the same question at different scales: as AI takes over execution, who decides, on what basis, and with what guarantees? One applies to a team writing code, the other to an entire organisation.
Paul-Antoine Tual

Paul-Antoine Tual

AI Transformation Leader · Junyr Method™ · Transition manager specialising in AI for French SMEs and mid-caps. Engineer from the École des Mines de Nantes, lawyer, developer since 1993.