ADLCThe Agentic Development Lifecycle
Chapter 26 · Part V — Modes and Practice

Chapter 26 — A 90-Day Adoption Plan

3261 words

Ninety days does not buy Level 3. It buys the evidence with which to decide whether to fund it.

What you'll learn
  • The five tests an adoption plan must pass, including the one about permission that most plans assume away
  • Why this plan does not start with a context file, correcting the version in this book's own outline
  • Three stages, each with a gate that is an artefact test rather than a feeling
  • What to stop at each stage — which matters more than what to start
  • The seductive cheaper substitute waiting at each gate, and why the plan must name its own failure modes
  • What ninety days cannot buy, and why the plan ends in a decision rather than a result
The claim this chapter defends

the correct sequence is instrument, then constrain, then close the loop — and it is also the sequence that ascends the permission gradient, so a single engineer can start on Monday and nothing above a manager is needed until day 61. Plans that begin with executive sponsorship do not begin.


26.1 What a plan must earn

Ninety-day plans are the sixth-easiest thing in this book to write badly. So, as with Chapters 12, 14, 15, 17, and 21: the standard first.

1. Every gate is falsifiable. Not "the team feels more confident" but an artefact someone can go and look at. Chapter 15's maturity levels each had an artefact test; the gates here are the same instrument applied to a timeline.

2. Sequenced by dependency, not by comfort. The order must be forced. If steps could be permuted without consequence, it is a checklist with dates attached.

3. It says what to stop. Every plan lists additions. The subtractions are what actually free the capacity to do the additions, and Chapter 3 established that capacity is the binding constraint.

4. It does not consume the constraint. A plan that requires substantial review time to execute is competing with the thing it is trying to fix. This rules out most of what a consultancy would propose.

5. It survives the organisation not caring. This is the test most plans fail by assuming it away. Chapter 16 §16.2 showed the harness is a public good — no stream-aligned team will fund it against feature work and none should be asked to. So a plan whose first step requires central funding will not take its first step. The plan must reach value before it needs a budget.

Test 5 turns out to determine the entire ordering, and pleasantly, it does not conflict with test 2.

26.2 Not a context file

This book's own outline proposed starting with baseline measurement and a single context file. Chapter 15 makes that wrong, and correcting it is the most consequential decision in the chapter.

§15.5 argued that the conventional maturity ladder is sorted by cost of adoption rather than dependency: a hook that runs a type checker on every agent edit depends on an agent loop and a type checker, and does not consult AGENTS.md. The dependency does not exist. Which yields the conclusion that Level 1 is "the only level a single team can fully fund and fully capture" and also the only level that unlocks nothing.

So a context file is a fine thing to have and a bad thing to start with. It is the most visible move, the cheapest, the one that produces an artefact in a pull request — and it leaves you exactly where you were.

The first move is Chapter 15's questions 3 and 4: one blocking check inside the agent's edit cycle, and a trace store. Everything else in ninety days is downstream of those two.

Chapter 25 supplies the confirmation. Stripe describes sub-second blocking pre-push hooks as "the single biggest cost reducer at agent scale" [D], and Chapter 7 derived the same conclusion from a benchmark ablation two years earlier.

26.3 Days 1–30: instrument before you intervene

Why measurement first. Chapter 18 established that self-report is invalid as an instrument — METR's cohort was 19% slower and estimated 20% faster after living through it, and the general overestimation runs around forty percentage points [A]/[B]. If you change your practice before baselining, you will never know whether it worked, because the only remaining instrument is the one that does not work.

Four of Chapter 14's five starter metrics are computable from data you already have.

MetricSourceEffort
Batch size — median lines per merged changegithours
Rework rate — % of merged agent code changed within 14 daysgit + authorship attributiona day
W and λ — open→first human review, and arrivalsreview timestamps, excluding bot eventsa day
Autonomy mix — distribution of merged work across A0–A4a level label on merged changesa week to start labelling

The fifth, time-to-control, needs failure-mode labels, which Chapter 14 conceded is the hard part. Measure it by hand on a sample of twenty incidents. A hand-computed median is enormously more informative than nothing.

Then two installations.

Trace capture. Chapter 15 §15.6 identified this as the prerequisite no maturity model lists: the outer loop's only inputs are the inner loop's artefacts, so Level 3 is unreachable without it regardless of how many controls exist. It prevents no defect on its own, which is why it loses every prioritisation argument — and why it goes first, before anyone has to argue for it. Traces not captured are gone.

One blocking check. The fastest deterministic check you have — format, syntax, types, in that order of speed — wired into the agent's edit cycle so that a failing edit is refused rather than reported. Chapter 7 §7.4's placement hierarchy: value falls sharply as you move from blocking to in-loop to out-of-loop, because each step spends more of the constraint.

GATE, DAY 30 — ALL THREE ARE ARTEFACT TESTSCan you produce the four numbers?Not estimate. Produce.yes / noDoes the blocking check REFUSE abad edit?Demonstrated, not configured.Ch 13 §13.9: a control neverseen to fire is a belief.yes / noAre traces queryable?Can you answer "what happenedin that session?"yes / noNothing here required a budget, a mandate, or a meeting with anyone above the person doing it.
The day-30 gate. All three are artefact tests: each is answered by producing a thing, not by asserting a state.

26.4 Days 31–60: make one class of work verifiable

Now the highest-value component, and Chapter 24 §24.4 showed it is also among the cheapest to retrofit because it touches no existing code.

A held-out acceptance set, for one class of work. Chapter 8 §8.8's partition: acceptance criteria authored by a human, before generation, never shown to the agent, run only at the merge gate. The agent may write and iterate against its own in-loop tests indefinitely; only the held-out set licenses a merge.

This is the only mechanism in the book that addresses Chapter 8's Figure 8.5 — code and tests descending from one model of intent prove consistency, not correctness. Pick one class of work. Three human-written assertions are categorically different from none.

Run the first drill. Chapter 8 §8.9: deliberately produce the failure the blocking check exists to prevent, and verify it fires. Three outcomes, all actionable. The one people do not expect is the third — if you cannot produce the failure even with the control disabled, the deficit has closed and the control is retireable.

Drills cost agent time and almost no human time, which matters under test 4.

Score two or three classes of work. Chapter 13 §13.5's instrument: six harnessability questions summed, six blast-radius questions taking the maximum. Read the ceiling off Figure 13.2. Most teams discover they are simultaneously above ceiling on their severe-blast-radius work and far below it on trivial work — which is the reallocation the instrument exists to surface.

Then enforce one ceiling by capability. Chapter 13 §13.3: an autonomy level enforced by instruction is not an autonomy level; it is a hope with a number attached. Pick the class with the highest blast radius and remove a capability — merge permission, a credential in the environment, network egress. One revocation, actually implemented.

   GATE, DAY 60

   ▸ Is there a class of work with human-written
     acceptance criteria the agent has never seen?   yes / no
   ▸ Did a drill produce evidence a control fired?   yes / no
   ▸ Is one autonomy ceiling enforced by a REVOKED
     CAPABILITY rather than by an instruction?       yes / no

26.5 Days 61–90: close the outer loop once

The first two stages built the inner loop and the instruments. This stage runs the outer loop a single time, end to end, which is the thing that distinguishes Level 2 from Level 3.

Detect one recurrence and install a control for it. Chapter 8 §8.1's trigger is "whenever an issue happens multiple times." You now have traces, so recurrence is visible. Find one failure mode that has occurred at least twice, and install the cheapest deterministic control that detects it — Chapter 8's ordering rule.

Record, on the control: the date, the named failure mode, and a retirement criterion. Chapter 12's fourth prohibition, and the thing whose absence Chapter 21 identified as the early warning for Harness Theatre.

Retire one control. This is the step everyone skips and it is Chapter 15's Level 3 artefact test: a control that was removed, with a reason. Chapter 8 §8.2 showed a loop that only adds terminates in theatre, and Chapter 15 called the deleted control the rarest artefact in the entire maturity model. Use a drill to find one: disable a control, attempt its failure, and if the failure can no longer be produced, remove it.

Name a harness owner. Chapter 16 §16.3: accountable for harness coverage against drills, the retirement arm, the autonomy policy and its review date. Not accountable for individual diffs. This is the first step in the plan that requires a manager to allocate a fraction of a role, and it is deliberately last.

Run the crossing scan. Chapter 23 §23.5 showed all four crossing signals are mechanically detectable from artefacts you already have — a dependency-graph query, git log, secret scanning, a config scan. It is cheap, it runs unattended, and it will find artefacts nobody knew were in production. Chapter 23 §23.6 gives the five-step response, including the option most discussions omit: retire is frequently the correct answer.

   GATE, DAY 90 — this is Chapter 15's L3 test

   ▸ Can you point to a control installed in response
     to a RECURRENCE, with the prior incidents named?   yes / no
   ▸ Can you point to a control you REMOVED,
     with a stated reason?                              yes / no
   ▸ Does someone's job description contain the
     harness?                                           yes / no

26.6 What to stop

More important than the additions, because these free the capacity that pays for them.

StageStopWhy
1–30Reporting self-assessed productivity in any formCh 18: the instrument does not work, and it is worse at leadership level where ~89% report improvement [B]
1–30Mandating generation throughput — merged PRs per engineer, lines, % AI-authoredCh 12's seventh prohibition. Raises λ against fixed μ, relocating the bottleneck out of sight
31–60Letting the agent author its acceptance criteria aloneCh 8 §8.7: generated tests are a regression harness, not a specification harness
31–60Enforcing autonomy levels by instructionCh 13 §13.3, Ch 11: belief-based controls are defeated by injection and by ordinary misunderstanding
61–90Fixing recurring defects at the instanceCh 12's third prohibition. Consumes the constraint and returns nothing to the system
ThroughoutAdding controls without a date, a named failure mode, and a retirement criterionCh 8 §8.2, Ch 21: the monotone loop terminates in theatre

The first two are the ones that will be resisted, and they are the ones that matter most. An organisation that keeps a throughput mandate running while executing this plan is applying Chapter 3's valve 2 and valve 3 — reviewing less and batching more — with better instrumentation to watch it happen.

26.7 The seductive substitute

The plan will be attacked by the same force that produced the field's distribution, and it is worth naming in advance.

Chapter 7 §7.7 identified a cost gradient operating on harness authors: markdown costs an afternoon; a wired check costs a quarter and an owner. Both are "harness work"; one produces a visible artefact immediately. Chapter 16 §16.2 added the economic layer.

That gradient will act on this plan, at every gate, offering a cheaper and more visible substitute for the thing the gate actually requires.

AT EVERY GATE THERE IS A CHEAPER, MORE VISIBLE SUBSTITUTETHE GATE REQUIRESTHE CHEAPER SUBSTITUTEWHICH ISday 30 — a blocking check thatrefuses a bad edita context file describing theconventionsHARNESS THEATREday 60 — acceptance criteria theagent has never seenasking the agent to generatecomprehensive teststhe transplant revertingday 60 — a revoked capabilitya line in the context file saying"ask before merging"a hope with a numberday 90 — a control REMOVED with areasonthree more controls addedthe monotone loopEach substitute produces an artefact and no change. Each is one of Chapter 21's anti-patterns, arriving on schedule.
Figure 26.1 — At every gate there is a cheaper, more visible substitute that produces an artefact and no change. Each is one of Chapter 21's anti-patterns, arriving on schedule.

This is why the gates are phrased as artefact tests with a yes/no. "We improved our documentation" passes no gate here. "A drill produced evidence this control fired" either happened or did not.

26.8 What ninety days cannot buy

The honest close, and it changes what the plan is for.

It does not buy Level 3. Chapter 15 priced L3 as a standing role — someone who owns the harness, runs drills, and decides what to retire. That is a rhythm, not a project. Ninety days lets you traverse the outer loop once, which demonstrates the loop is possible in your organisation. It does not establish it.

And Chapter 15 §15.7 warned specifically: "L3 funded as a project decays back to L2 with a larger pile of controls than it started with." A ninety-day programme that ends without a funding decision produces exactly that.

So the plan's output is not a capability. It is evidence with which to make a funding argument — which is the argument Chapter 16 said must be made centrally, because the harness is a public good and no stream team will fund it.

By day 90 you have what that argument requires: a baseline and a re-measurement on four metrics; demonstrated blocking sensors with drill evidence; one class of work with real acceptance criteria; one traversal of the steering loop with a control installed and a control retired; and a crossing scan telling you what is already in production unowned.

STILL MISSING AT DAY 91a graphCh 9 — needed before structural work in legacy (Ch 24 §24.5)harness templatesCh 8 — needs a topology commitment, an executive decisionan enabling capabilityCh 16 — how other teams make the same movestructural improvementCh 10 — the expensive half of harnessabilitya behaviour harnessCh 8 — unsolved, everywhere, for everyoneNinety days moves one team from L1 to a demonstrated L3 traversal. The last item is beyond anyone.
Figure 26.2 — Ninety days moves one team from L1 to a demonstrated L3 traversal. Everything above is beyond it, and the last item is beyond anyone.

And one adjustment by starting position, from Chapter 24 §24.8. This plan is written for the common case — low harnessability, whatever the age of the code. If your H-score is already high, days 1–60 will be faster and the constraint is organisational rather than technical, so start at §26.5 and at Chapter 16. If your codebase is new and low-scoring — Chapter 24's top-left quadrant, the one nobody warns about — add types now, because Figure 24.3 showed the window for cheap banking closes while it still feels unnecessary.

Finally, the six-item table from Chapter 23 §23.7 explains why this plan treats things together that look separate. Trace capture, drift detection, drills, retirement, crossing scans, and harness ownership are not six initiatives. They are six instances of work with no triggering event, and the remedy for that category is singular: a standing mandate, a named owner, and funding that does not compete with delivery. Day 61's harness owner and the crossing scan's schedule are that remedy, applied once, so that on day 91 there is something to point at.


The takeaway

Instrument, then constrain, then close the loop once — a sequence that is forced by dependency and happens also to ascend the permission gradient, so it starts on Monday with one engineer and ends on day 90 not with a capability but with the evidence required to fund one.

Open questions
  • Is ninety days the right window? It is long enough to traverse the outer loop once and short enough to hold attention. Whether a single traversal predicts sustained practice is unmeasured, and it is the assumption the whole plan rests on.
  • Does the permission gradient hold in regulated organisations? §26.3's claim that nothing above a manager is needed until day 61 assumes an engineer can wire a hook and store traces without review. In some environments the day-1 move requires a change-control process, which inverts the ordering.
  • What is the drop-out point? Chapter 25 §25.7 noted we have no denominator for harness programmes — survivorship means the failures are unpublished. If most attempts stop, knowing where would be worth more than this plan.
  • Does starting with sensors rather than a context file actually work better? §26.2 corrects the plan on the strength of Chapter 15's dependency argument, which is mechanism rather than evidence. Two teams, ninety days, opposite orderings would settle it.
Sources
  • Galster, Mohsenimofidi, Lulla, Abubakar, Treude, Baltes. arXiv 2602.14690, AIware '26 [A] ✅ — the distribution that makes §26.2's correction consequential: Context Files 90.6%, Hooks 0.9–3.2%
  • METR, arXiv 2507.09089 [A] ✅ and METR self-report survey, May 2026 [B] ✅ — the invalidity of self-assessment that forces measurement-first (§26.3), and the ~89% of engineering leaders reporting improvement
  • He, Agarwal, Denisov-Blanch, Azaletskiy, Koyejo, Vasilescu. arXiv 2607.01904 [B] ✅ — the throughput mandate met while batch size grew ~37%, the pattern §26.6 says to stop
  • Stripe. Minions, stripe.dev/blog [D] ✅ — sub-second blocking pre-push hooks as "the single biggest cost reducer at agent scale", confirming §26.2's first move
  • OpenAI. Harness engineering, February 2026 [D] ✅ — standing drift agents opening refactoring PRs; the day-90 crossing scan and drift detection in their production form
  • Böckeler, Birgitta [D] ✅ — the steering loop's trigger, "whenever an issue happens multiple times"; drills and the silent sensor
  • Yang et al. SWE-agent, arXiv 2405.15793, NeurIPS 2024 [A] ✅ — the blocking lint guardrail, +3.0 points, from which §26.2's first move was originally derived
  • The plan is otherwise assembled from Chapters 3, 7, 8, 11, 12, 13, 14, 15, 16, 21, 23, 24, and 25; each step is cited inline to the chapter that establishes it

Full entries and verification status: references/sources.md.