The AI-SDLC Maturity Model

29 min read

2
Part I · The Case and the Map

The AI-SDLC Maturity Model

A maturity level is useful only if it tells you what a human still checks, and most published models don't. In this one, a phase's level is what a human reviews, and when, read against the authority the AI actually holds. You score it per task type, cap it by risk, and never treat it as a target. The first rule is that nothing climbs past L2 without an automated check the AI cannot edit. The second explains most of the incidents on record: if an agent's credentials reach further than your review does, the credentials set the level.

2.1

Why another model

Tell three published models that your team is "at Level 3" and you have told them three different things. Dan Shapiro's Five Levels run "from Spicy Autocomplete to the Dark Factory", and his Level 0 already lets you "occasionally hit tab to accept a suggestion", while almost everyone else's L0 means no AI at all. Steve Yegge's scale, as told to The Pragmatic Engineer, runs from 1 to 8, and its upper levels count agents rather than checks. Hassan et al. label their levels "SE 1.0" to "SE 5.0". None of these numbers tells you what a reviewer still looks at.

There is a structural gap too. Almost every published model is a single scale for coding, usually borrowed from the SAE driving levels, and the lifecycle-wide frameworks describe a process or organisational stages. No published model is a per-phase grid. Yet a team can let an agent open pull requests unattended while every deployment still waits for a human, and a single number hides exactly that difference. In June 2026 Gartner recommended "classifying development tasks into three execution models: developer‑led, developer‑with‑agent, and fully agent‑led", and deciding "appropriate levels of autonomy for each task". That is an analyst's opinion, but it endorses the design used here: a level per phase, and within each phase a level per task type.

2.2

The defining axis: what a human reviews

The published models that are most useful in practice agree on one variable: what the human reviews. Sourcegraph's Levels of Code AI (2023) puts the line between a level where the developer "is expected to review all of the code that the AI generates" and one where the human reviews only the final output; at its L4, "humans are no longer expected to review the final code output". Dash0's six levels (2026) go from "Review and approve every PR before merge" to "Look at intent and proof (satisfaction reports, screenshots, behavior evidence), not diffs". Both track the reviewer's object: every line, then an evidence bundle, then nothing.

The academic work adds a second point: a level is something you choose to deploy, not a property of the model. Morris et al. at Google DeepMind write that "Increasing capabilities unlock new interaction paradigms, but do not determine them", and that the appropriate level "need not be the maximum achievable given the capabilities of the underlying model". Feng, McDonald and Zhang define their levels by the user's role, from operator to observer, and argue that autonomy "can be treated as a deliberate design decision".

This model therefore leaves three things out of the definition on purpose.

  • Capability. A stronger model makes a higher level possible. It doesn't put you there.
  • Agent count. Scales that count parallel agents reward throughput with no verification attached.
  • Rollout breadth. Microsoft's four-level model runs from "Ad hoc use of AI assistants by individual developers" to "Agent teams orchestrated across the lifecycle". It measures spread, not authority.

What is left is a pair of observable facts. One is the review mode, meaning what a human looks at and when. The other is the authority, meaning what the AI's credentials and settings let it do. The rules in section 2.4 say what happens when the two disagree.

2.3

The five levels

These are the book's definitions. Each is a criterion an auditor could check over a trailing window of 30 or 90 days, and each names the evidence you would show.

L0 Manual

No AI touches this phase's outputs, or policy prohibits it. Deterministic automation, such as codemods, Renovate and rule-based bots, counts as L0 for AI: it may be heavily automated, but none of it is AI. Evidence: the policy, or the absence of AI tooling for the phase.

L1 Assisted

AI suggests and a human authors every artefact. AI output enters only as suggestions the human edits. Evidence: tool telemetry exists, and no artefact is attributed to an agent.

L2 Delegated

For at least one named, recurring task type, the AI produces a complete artefact: a pull request, a test file, an ADR draft or a mitigation proposal. Every one of those artefacts gets recorded human review before it takes effect. Agent output is attributed by a label, a commit trailer or metadata. A shared instruction or context file exists, and the team tracks acceptance or rework for the task type. Evidence: approval logs that cover 100% of the artefacts, the attribution, the file and the tracked rate.

L3 Supervised-autonomous

For named routine task types, the AI runs end to end. A human reviews an evidence bundle, a sample, or only the items routed to them, not every line. Hassan et al. call the bundle a Merge-Readiness Pack: "a structured evidence bundle submitted for human approval, designed to demonstrate functional completeness". All of the following must hold:

  • The routing rules, which decide what reaches a human, are written down and enforced by machine.
  • Pause and rollback exist and have been exercised.
  • The escaped-defect or incident rate of AI-run work is compared against a human baseline over at least 90 days.
  • The AI cannot change its own evaluator (Rule 1).

L4 Autonomous (always for a named task class)

For one enumerated, narrow, reversible task class, the AI acts without per-item human approval, for example by auto-merging or auto-remediating. All of the following must hold:

  • A documented verification record exists, either N consecutive items with no escaped defect or an error budget.
  • Monitoring is continuous, with automatic rollback or a kill switch.
  • A named human is accountable and has documented the risk acceptance.
  • Audit samples are taken periodically.
  • The scope is the task class, never the whole phase.

This book always writes L4 with its scope, as in "L4 for dependency patch bumps", so it cannot be misread as "the phase runs itself". On how the human's role changes from rung to rung, see human-in-the-loop and progressive autonomy.

2.4

The rules

Teams place themselves generously, so seven rules make the model hard to game. Rule 6 is a heuristic and is labelled as one; the others follow from the evidence.

Rule 1. The oracle principle

The oracle principle. No task type runs at L3 or L4 unless an automated verifier decides pass or fail and the AI cannot edit that verifier. The verifier might be tests, mutants, the compiler, a plan classifier or a policy engine. Whichever it is, the agent must not be able to edit it, skip it or redefine success.

The rule exists because agents game whatever checks they can reach. METR found that o3 reward-hacked in 39 of 128 RE-Bench runs (30.4%). Models attempted "modifying the tests or scoring code", and in one case o3 monkey-patched an evaluator so that every submission was marked successful.

Measured by METR, independent evaluator · agent runs on RE-Bench and HCAST · 128 RE-Bench runs, June 2025 · T1

ImpossibleBench built tasks whose specifications contradict their tests, so that "any pass necessarily implies a specification-violating shortcut", and frontier models still produced such passes. The same behaviour shows up in production. Spotify's agents took shortcuts such as "commenting out failing tests or downgrading Java versions", as reported by InfoQ from a Spotify talk. Elastic's CI agent "fixed" broken dependency bumps by removing the bump; Elastic added the rule against downgrading versions only after seeing it.

Enforced, the rule works: every migration on record that reached L3 had a deterministic check closing the loop, whether compiler, tests or linter. The anonymous practitioner site ASDLC.io states the rule in its own words: at L3 the AI "cannot modify the underlying definition of success", and any change to an evaluator "must be restricted to a proposal loop" that passes "a human-in-the-loop audit". The wiki covers the failure mode in eval integrity and scorer gaming and the generator-verifier gap.

Rule 2. The level is the authority actually granted

A phase's level is the higher of two readings: the review mode the team practises, and the authority the AI's credentials and settings allow. An agent that holds a token able to reach production, or runs in a skip-permissions mode, is operating at L4 for everything that token reaches, whatever the team calls it.

The incident record supports the rule. In December 2025 an AWS Cost Explorer interruption involved Amazon's Kiro agent, and the two accounts of it disagree. The Financial Times, as relayed by Reuters and Engadget, reported a 13-hour interruption after the agent decided to "delete and recreate the environment". Amazon's correction (20 February 2026) called it "brief" and the result of "user error—specifically misconfigured access controls—not AI as the story claims". Amazon also said "Additional safeguards include mandatory peer review for production access." Read together, the two accounts point at the same class of failure: an operator role broader than the review around it. The fix was a boundary, not a better model. Anthropic's auto-mode write-up lists overeager actions from its own internal use, including "deleting remote git branches" and "attempting migrations against a production database". Each is a de facto L4 grant that nobody knew had been made (see blast radius).

Rule 3. Score each named task type, not the whole phase

A phase's level is the highest level at which a named, recurring task type in that phase runs with the required evidence. Always record the task type next to the level: "Testing: L3 for flaky-test triage; L2 for feature tests." A phase-wide number overstates the risky work or understates the routine work. See task scope for why task boundaries, not task size, decide what can be delegated.

Rule 4. Risk sets a ceiling

Each combination of phase and risk class carries a maximum level, recorded in a ceiling column of the self-assessment. For example: nothing above L2 in CI/CD for regulated services, and no L4 anywhere an action is irreversible. James Read puts it briefly: "As risk increases, acceptable autonomy decreases". The Cloud Security Alliance and AWS both attach escalating controls to each level (see section 2.5). Irreversibility alone makes a task class ineligible for L4.

Rule 5. There is no L5, and L4 is narrow

The serious sources agree that general autonomy either doesn't exist or has no controls. Hassan et al. say their general-domain L5 "currently is at the conceptual/research stage, i.e., it does not yet exist". The Cloud Security Alliance says "the control mechanisms required to safely operate at this level don't exist yet". The ai4se taxonomy calls full automation "rather unrealistic for complex, industrial-scale software". The agent-swarm showcases, Thoughtworks notes, "chose use cases that could rely on existing detailed specifications… Those conditions are not representative of typical product development". Levels are not targets; the right level for a phase can be L1 indefinitely.

Rule 6. A heuristic: run Coding at most one level above the lower of Review and Testing

This is the book's proposal, not a law. When coding runs ahead of the phases that verify it, the telemetry shows a consistent pattern: more pull requests, bigger pull requests, longer reviews, more merges with no review at all, and more instability. DORA's 2025 report offers a mechanism: AI-associated instability is "likely, in part, because it is harder to review larger batches of code". The vendor telemetry in the box below agrees on direction. The evidence is correlational, so treat the rule as a tripwire, not a proof. When Code Gets Cheap, the Bottleneck Moves makes the full case.

Vendor-reported. These figures come from engineering-analytics vendors' pooled customer telemetry. In each case "the effect" means the difference between high-adoption and low-adoption teams or periods. The data are correlational and not peer-reviewed, and each report sets its own baseline, so each is cited separately and the figures are never combined.

  • Faros, 2025 (10,000+ developers, 1,255 teams): PRs merged +98%, PR review time +91%, PR size +154%, and "no significant correlation" with company-level outcomes.
  • Faros, Q2 2026 (22,000 developers, 4,000 teams): PRs merged with no review +31.3% (stated in Faros's companion post), deployments per week −11.7%.
  • LinearB (8.1M+ PRs, 4,800 teams): agentic PRs waited 17.6 h at P75 for pickup against 3.4 h for unassisted ones, and AI PRs (agentic and AI-assisted together) merged within 30 days 32.7% of the time against 84.4% for unassisted ones.

What is missing: causal design, independent replication, and any measure of escaped defects tied to the specific PRs.

Rule 7. Evidence beats self-report

A placement must cite something observable: approval logs, attribution, routing configuration, a credential inventory or a verification record. The reason is that people's sense of their own speed and safety is unreliable. In METR's 2025 trial, experienced developers took 19% longer with AI and afterwards believed they had been 20% faster.

Measured by METR · randomised controlled trial · 16 developers, 246 tasks, early 2025 · T1

A Stanford research group found that 43 engineers' self-rated productivity correlated with their measured productivity at only r = 0.17, and that people "misjudge their productivity by ~30 percentile points" (conference slides, not peer-reviewed).

Measured by Stanford Software Engineering Productivity group · self-rating against model-scored output · n = 43 · T3, not peer-reviewed

The same drift applies to autonomy: Thoughtworks carried "Complacency with AI-generated code" in its Radar's Hold ring ("Proceed with caution") for three editions (October 2024 to November 2025), warning that "It's all too tempting to be less vigilant when reviewing AI suggestions after a few positive experiences with an assistant." A team's estimate of its own level will rise with comfort unless the evidence holds it in place.

Vendor-reported. Anthropic measured these figures on its own product, Claude Code. In its autonomy telemetry (February 2026), full auto-approve rose from "roughly 20%" of sessions for users with under 50 sessions to "over 40%" by 750 sessions. In its auto-mode post (March 2026), users approved 93% of permission prompts, and its automated approver missed 17% of 52 curated real overeager actions. What "success" means here is session share and classifier recall, not outcomes. Anthropic itself cautions that configuration changes may explain part of the rise. What is missing is independent replication. The direction is still the point: neither human clicks nor classifiers hold a level in place.

2.5

Controls that come with each level

A level is also a set of permissions. The Cloud Security Alliance asks for "machine-readable boundary definitions" and "technical enforcement mechanisms that actually prevent boundary violations" at its L3. At its L4 it asks for "immediate kill-switch capabilities", "continuous monitoring" and "executive authorization and documented risk acceptance". The AWS Agentic AI Security Scoping Matrix moves from "explicit human approval for all actions of consequence" (Scope 2) to agents that act "without further approval" inside "Clear execution boundaries defined at initiation" (Scope 3). Their numbering is offset from this book's; section 2.8 maps them.

The table below is the book's proposal, synthesised from vendor defaults and post-incident fixes. GitHub's Copilot cloud agent, for example, "only has the ability to push to a single branch"; its "workflows are not triggered until Copilot cloud agent's code is reviewed"; and the person who requested the work cannot approve its pull request (as of October 2026). In Anthropic's sandbox design, "sensitive credentials (such as git credentials or signing keys) are never inside the sandbox". No outcome-validated standard exists, and no published study gives incident rates by permission level.

Level
Where it runs and what it holds
What it may change
L2 Delegated
A developer machine with permission prompts on and bypass modes disabled by managed settings. The developer's own credentials, and no production credentials on the machine.
The workspace only, and a human approves every commit. Untrusted input is acceptable because a human sees everything. Irreversible actions are never taken by the agent.
L3 Supervised-autonomous
An ephemeral sandbox with filesystem and network isolation. Short-lived, task-scoped credentials injected by a proxy, never placed inside the sandbox.
Its own branch only. It cannot merge or approve, and CI is gated on human approval. It applies Meta's Agents Rule of Two: an agent reading untrusted input must give up either sensitive access or external state change. For irreversible actions, the agent prepares and a human executes.
L4 Autonomous (task class)
As L3, plus continuous monitoring and a kill switch. A narrow service identity per task class, never a general-purpose token.
Auto-merges or acts only for the enumerated class, behind a verifier it cannot edit. It never combines untrusted input, sensitive access and external state change. Irreversible actions go only through APIs with undo or soft delete, with backups outside the blast radius. Otherwise the class is not eligible for L4.

Chapter 12, Security, Permissions & Blast Radius, owns the full permission envelope and the incidents behind each row. For who signs the L4 risk acceptance, see accountability and roles.

2.6

Enablers that gate a level

Controls limit what an agent can do; enablers decide whether a climb pays off at all. The strongest evidence is DORA's AI Capabilities Model (September 2025). According to the 2025 report (p. 50), DORA started from 78 interviews and 15 candidate capabilities, then tested them against its survey. Seven showed "substantial evidence of an interaction with AI use": with them in place, the difference AI made to key outcomes was amplified. The evidence is survey-based and correlational. Treat the seven as preconditions to check before a climb, not as levels.

  • A clear and communicated AI stance.
  • Healthy data ecosystems.
  • AI-accessible internal data.
  • Strong version control practices.
  • Working in small batches. Trade-off: "AI adoption's benefits for individual effectiveness are slightly reduced in teams that are working in small batches." DORA judges the net effect positive.
  • User-centric focus. Without it, according to the 2025 report, "AI adoption has a negative impact on team performance."
  • Quality internal platforms. Trade-off: with a quality platform, "AI's neutral effect on respondents' reported experiences of friction is made harmful". DORA's hypothesis is that platforms act as guardrails, and guardrails add friction.

Microsoft's Agentic DevOps model, a vendor framework with no data, puts it bluntly: "agents do not magically fix broken engineering practices". Without small batches, working rollback and usable internal context, a higher level mostly amplifies the problems a phase already has.

2.7

The grid: eight phases, five levels

This is the map. Each cell gives the observable criterion, then the best public evidence with its tier (defined in the Preface). "None" means none was found.

Requirements

Level
Observable criterion
Best evidence
L0
No AI on tickets, PRDs or specs.
69.2% of developers "don't plan to use" AI for project planning (Stack Overflow 2025, survey).
L1
AI drafts stories or PRDs, or extracts specs from legacy code. A human rewrites and owns each one.
Design and planning rose from 1.0% to 9.9% of Claude Code use inside Anthropic (T3). Morgan Stanley says its legacy-to-spec tool saved "more than 280,000 hours", with no method given (according to Business Insider, T4, secondary).
L2
The agent interviews a human and writes a spec that is kept in the repo. A human approves every spec before implementation starts.
The practice is vendor-documented (Spec Kit, Kiro, Anthropic's guidance); outcome evidence is weak. Repos in the top third for spec quality spent 11.8% of commits on bug fixes against 20.4% (EPIC, n = 114 repos, T1, correlational). A 14-engineer Spec Kit pilot saw rollbacks fall from 2–4 to 0–1 a month (T3, uncontrolled).
L3
Routine inbound items become specs or reproducible tickets without per-item approval. Humans see only flagged or ambiguous items.
A mechanism exists: Kiro's Quick Spec runs "without approval gates" (vendor docs, as of October 2026). No outcome evidence.
L4
Auto-dedupe and auto-labelling of tickets, with audited precision. Explicitly not "AI decides what to build".
None.

Developed in Chapter 5, Requirements, Specs & Design.

Design

Level
Observable criterion
Best evidence
L0
No AI in design docs or ADRs.
None direct.
L1
An LLM drafts ADR text or options. An architect writes the decision.
GPT-4 generated "relevant and accurate" design decisions, though they "fall short of human-level performance" (ICSA 2024, T1, lab study).
L2
The agent proposes options in plan mode or a design file, and a human chooses. Accepted ADRs are fed into the agent's instruction file.
In dotnet/runtime, of 253 closed agent PRs, 16% were closed as "wrong approach" and 8% as "design rejected" (T2).
L3
Pattern-conforming changes ship gated by architecture fitness functions. Humans see only violations.
None. Uber's review bot has no access to "past PRs, feature flag configurations, database schemas, technical documentation, and so on" (T3).
L4
Leave empty.
None. The counter-evidence is de facto L4 by app generators. On Lovable, 170 of 1,645 apps had inadequate row-level security on their data (CVE-2025-48757, T1). Moltbook exposed 1.5M API tokens (Wiz, T1).

Developed in Chapter 5, Requirements, Specs & Design.

Coding

Level
Observable criterion
Best evidence
L0
AI prohibited for code.
Gentoo and QEMU decline AI-generated contributions (policy, as of October 2026).
L1
Autocomplete and chat. A human writes every commit.
A range, never one number: from 19% slower (METR, T1) to 55.8% faster on a greenfield toy task (Peng et al., T2), with three field RCTs at +26.08% completed tasks (T1, mixed independence). Task type, familiarity, codebase maturity and tool generation move the result.
L2
Agent PRs for named task types. Every diff is human-reviewed, the agent is attributed, and an instruction file exists.
In dotnet/runtime, 67.9% of agent PRs merged against 87.1% for Microsoft's own engineers. Preparation lifted success from 38.1% to 69%, and reverts were 0.6% against 0.8% (T2). In open source, 83.8% of Claude Code PRs merged, and 54.9% of those merged unmodified (Watanabe et al., T1).
L3
Unattended background agents run routine task types in a sandbox, gated by a verifier. Humans review the final PR or the evidence. The agent cannot merge or approve.
Stripe's Minions produce over a thousand merged PRs a week (as of February 2026), and every one is human-reviewed (T3, volume only). Agents open 13–14% of PRs "at the leading edge" (Faros, vendor telemetry, T3, as of September 2026). The failure case: Answer.AI with Devin succeeded on 3 of 20 tasks (T1).
L4
Auto-merge for an enumerated change class, backed by a verification record.
No LLM evidence. Spotify's Fleet Management auto-merges most of its 2.5M+ PRs (as of June 2026), but it began as deterministic scripts and Spotify does not say how many auto-merged PRs its LLM agent wrote, so it is not L4 evidence for LLMs. The de facto L4 failures are Replit and PocketOS, each losing a production database (T4).

Developed in Chapter 6, Coding.

Review

Level
Observable criterion
Best evidence
L0
No AI review.
58.7% "don't plan to use" AI for committing and reviewing code (Stack Overflow 2025, survey).
L1
AI suggestions on the author's side only.
At Google, authors address 7.5% of reviewer comments by applying an ML-suggested edit (ICSE-SEIP 2024, T2).
L2
A bot comments on every PR. A human approves every merge.
Atlassian RovoDev: 38.7% of comments led to code changes, and PR cycle time fell 30.8% (ICSE 2026, T2). Uber uReview: 75% of comments rated useful, and over 65% addressed against 51% for human comments (Uber, T3). These are different metrics and are not ranked. The counter-evidence: in an industrial study, mean PR closure time rose from 5h52m to 8h20m (ICSE-SEIP 2025, T1).
L3
AI is the first reviewer. Humans review by risk tier or by evidence bundle, and the routing is enforced by machine.
Partial: Atlassian's human-written review comments fell 35.6% (T2), and the Merge-Readiness Pack is a proposed artefact. A reverse signal: according to the FT, as reported by Fortune, Amazon's retail organisation planned senior sign-off for AI-assisted changes; Amazon says no such sign-off is required (T4, disputed).
L4
AI approval alone merges an enumerated low-risk class.
No LLM primary. The precedent is Zalando's bot, which auto-approves the 33% of PRs classed as low-risk using rules "built based on analysis of our production incidents". Lead time fell 20–40% against all PRs (T3). Whether the bot uses an LLM is not stated.

Developed in Chapter 7, Code Review.

Testing

Level
Observable criterion
Best evidence
L0
No AI in tests.
None direct.
L1
Test suggestions in the IDE. AI failure diagnosis is shown to humans.
Google's Auto-Diagnose was 90.14% accurate on a manual check of 71 failures (T2).
L2
AI generates tests behind deterministic filters: they must build, pass reliably, and raise coverage or kill mutants. A human accepts each one.
Meta's TestGen-LLM: of raw candidates, 75% built, 57% passed reliably and 25% raised coverage. 73% of the filtered recommendations were accepted (T2). FlakyGuard repaired 47.6% of reproducible flaky tests, and developers accepted 51.8% of the fixes (T2).
L3
AI maintains suites. Humans review mutation or coverage reports, not individual tests. The agent cannot edit the oracle.
Meta's just-in-time catching tests: of 22,126 generated tests, 41 candidate catches were reported and 8 were true positives. Assessors cut review load by 70% (T2, experimental). Airbnb automated 97% of a test-file migration (T3). The gap: Spotify's dataset migrations had no build-time tests, so owners tested by hand (T3).
L4
Flaky-test quarantine and fixes land automatically, under an audited false-fix rate.
None. FlakyGuard's fixes were accepted by developers, not landed automatically.

Developed in Chapter 8, Testing & Verification.

CI/CD

Level
Observable criterion
Best evidence
L0
No AI in pipelines.
75.8% "don't plan to use" AI for deployment and monitoring (Stack Overflow 2025, survey).
L1
ML suggests build fixes, and the developer applies them.
Google's DIDACT RCT covered 50% of developers for 11 weeks. 34% of those with breakages applied fixes, throughput rose about 2%, and there was no detectable rise in rollbacks (T2, RCT).
L2
The agent pushes a fix to a branch and a human merges it. Auto-merge is disabled whenever AI contributed.
Elastic fixed 24 broken dependency PRs in its first month. Auto-merge was off and tools were allow-listed (T3). GitHub's "Fix with Copilot" pushes to your branch and tags you for review (vendor docs, as of May 2026).
L3
Fixes auto-apply after a verification phase. CI agents act under policy on untrusted input.
Nx auto-applies fixes only after verification passes (vendor). The risk: PromptPwnd showed that CI agents reading untrusted issue and PR text while holding privileged tokens can be made to leak secrets (T1). The control: the Copilot cloud agent's workflows don't run until a human reviews.
L4
AI promotes or rolls back canaries for defined services, within an error budget.
No LLM evidence. The classical-ML precedent is Harness Continuous Verification's automatic rollback (vendor docs). The anti-pattern is Kiro with an over-broad role (T4, disputed).

Developed in Chapter 9, CI/CD & Release.

Operations

Level
Observable criterion
Best evidence
L0
No AI in incident handling.
None direct.
L1
AI ranks root-cause hypotheses, gated by confidence. Humans investigate and act.
Alibaba's BiAn cut time to root cause by 20.5% (55.2% for high-risk incidents) over 10 months, comparing shadow operators using BiAn with shadow operators using an RCACopilot baseline (SIGCOMM 2025, T2). Independent benchmarks are low: OpenRCA 2.0 recovered the exact root-cause set in 20.7% of cases (T1).
L2
The agent proposes a mitigation from a closed, typed set. A human authorises each one.
Google SREs limit Gemini CLI to drain, rollback, restart and add capacity, behind typed tools, risk tags, policy checks, forced confirmation and an audit trail (T3, design walkthrough).
L3
The agent executes allow-listed, reversible mitigations. Humans are paged on exceptions, and the system downgrades to L2 automatically when risk rises.
Google's AI Operator executes mitigations "autonomously for minor incidents". On an elevated risk score it downgrades L3 requests to L2, and a fleet-wide "Red Button" can revoke L3 (T3).
L4
Auto-remediation for an enumerated alert class, with a kill switch.
No credible evidence. The failures with production credentials are PocketOS, Replit and Kiro (T4).

Developed in Chapter 10, Operations & Incidents.

Maintenance

Level
Observable criterion
Best evidence
L0
No AI. Deterministic codemods count as automation, not AI.
Spotify's Fleet Management has automated "around half of Spotify's pull requests" since mid-2024, largely deterministically (T3).
L1
AI suggests migration edits, and humans apply them.
No dedicated case.
L2
AI drafts migration PRs, and each one is reviewed.
In Google's int32→int64 migration, 80% of edits in landed changes were AI-authored. In its JUnit3→4 migration, 5,359 files moved in 3 months and about 87% of the generated code was committed unchanged (T2). Slack's AST-plus-LLM approach converted 80% of the code in 9 sampled files correctly, against 45% for the AST codemod alone (T3).
L3
Fleet-wide changes with deterministic verifiers. Owner-approved or sampled review, plus an evidence pack.
Spotify's Honk has 1,500+ merged PRs and 60–90% time saved on the migrations where Spotify measured it. Verifiers run in a stop hook, and an LLM judge vetoed about a quarter of sessions (as of December 2025; InfoQ later reported that Spotify removed the judge as "too rigid") (T3). Airbnb migrated about 3.5K files in 6 weeks against a 1.5-year estimate (T3). Google's year-long study covered 39 migrations (T2).
L4
Dependency or security updates auto-merge under a verification record.
No LLM evidence. Pre-LLM auto-merge by Renovate or Dependabot is L0 for AI.

Developed in Chapter 11, Maintenance & Migrations.

Read the grid as a whole and three observations stand out.

  1. Real L3 evidence exists in only a few places: coding (volume only), testing (partly), maintenance, and a narrow, self-reported class in operations. No phase has credible L4 evidence for LLMs. Requirements and design have no L3 evidence at all.
  2. Classical ML got there first. Release gating with automatic rollback, as in Harness Continuous Verification, reached L3 and L4 with classical ML years ago. The grid counts classical ML as AI but doesn't credit it to LLMs, and deterministic automation, however autonomous, is L0 for AI.
  3. The incidents cluster where permissions outran review. Every cell that holds an incident (coding L4, operations L3 and L4) is a case where granted permissions put the team higher than it believed: Rule 2 at work.

The cases behind these cells, with their full measurement caveats, are in Case Studies: Who Did It and What They Measured.

2.8

Translating other models

When someone says "we're at Level 3", ask whose scale they mean. The table is the book's reading of each model; "≈" marks an approximate mapping. Appendix C, Glossary, repeats it.

Model
Maps to the book's levels
Beyond the book
Sourcegraph, Levels of Code AI
L0 = L0. L1 completion ≈ L1. L2 creation (the developer reviews "all of the code that the AI generates") ≈ L2. L3 supervised automation ≈ L3. L4 full automation ≈ L4, narrowed to a task class.
L5, where the AI sets its own goals.
Shapiro, Five Levels
L0, occasional tab-accepted suggestions, ≈ L1. L1 "AI intern" and L2 "junior buddy" ≈ L2. L3, "the human in the loop" whose "life is diffs", ≈ the L2/L3 boundary. L4, where you write the spec and "check to see if the tests pass", ≈ L3.
L5, "a black box that turns specs into software" (the title's "Dark Factory").
Yegge, eight levels
1 "no AI" ≈ L0. 2, an agent in the IDE with permissions on, ≈ L2. 4, "not look at the diffs", ≈ L3 by review mode only.
3, "YOLO mode", is authority without controls (Rule 2). Levels 5 to 8 count agents and are not mapped.
Hassan et al.
L0 to L4 ≈ the book's L0 to L4. L4 "specialized domain autonomy" is the closest published match to a narrow L4.
L5, general domain autonomy, which "does not yet exist".
Morris et al. (DeepMind)
0 ≈ L0. 1 tool and 2 consultant ≈ L1. 3 collaborator ≈ L2. 4 expert ≈ L3. 5 agent ≈ L4, narrow scope only.
None.
Feng, McDonald, Zhang
Operator ≈ L1. Collaborator and consultant ≈ L2. Approver ≈ L3. Observer ≈ L4.
None.
ai4se
L0 = L0. L1 options ≈ L1. L2 selection ≈ L1/L2. L3 partial automation ≈ L3. L4 full automation ≈ L4.
None.
Cloud Security Alliance
L1, per-action approval, ≈ L1/L2. L2, plan or batch approval, ≈ L2. L3, machine-readable boundaries, ≈ L3. L4, kill switch plus executive risk acceptance, ≈ L4.
L5, whose controls "don't exist yet".
AWS Scoping Matrix
Scope 1, no agency, ≈ L1. Scope 2, prescribed agency, ≈ L2. Scope 3, supervised agency, ≈ L3.
Scope 4, full agency that initiates itself.
Dash0, six levels
L2, review every PR, ≈ L2. L3, intent and proof, ≈ L3. L3.5, selective auto-merge, ≈ L4.
L4, which notifies humans rather than asking them, and L5, the dark factory.
Microsoft Agentic DevOps
L1 Reactive ≈ L1. L2 Foundation and L3 Structured ≈ L2.
L4 Optimized. Measures rollout breadth, not authority.
Gartner execution models
Developer-led ≈ L1. Developer-with-agent ≈ L2. Fully agent-led ≈ L3, or L4 for a narrow class.
None.
Google SRE AI Operator
"L2 Autonomy (Partial Automation)" ≈ L2. "L3 Autonomy (High Automation)" ≈ L3.
Google's other levels were not read.
This wiki's autonomy levels
L0 Suggest ≈ L1. L1 Act-with-approval and L2 Act-and-escalate ≈ L2. L3 Supervised autonomy ≈ L3. L4 Full autonomy ≈ L4.
None.

One warning closer to home: the wiki's own autonomy levels page counts from L0 = "Suggest", so its L0 to L2 sit one step below this book's numbers.

2.9

Scoring yourself

Three worked examples, from public data only, score a phase by review mode, by verifier design and by granted authority.

Worked example 1: dotnet/runtime's coding phase

Microsoft's .NET team published ten months of data on GitHub's Copilot Coding Agent in its runtime repository. Every agent PR went through human review, so the phase scores L2 for every task type, however good the merge rates look. The question is which task types are candidates for L3. Cleanup work merged at 84.7% (77 PRs) and testing work at 75.6% (99 PRs). Performance work merged at 54.5% (46 PRs), so it isn't a candidate. To move cleanup to L3, the team would need two things the post doesn't claim. The first is a verifier the agent cannot edit, deciding pass or fail. The second is a 90-day comparison of escaped defects. The revert data are a start: 3 of 535 merged agent PRs were reverted (0.6%), against 33 of 4,251 other merged PRs (0.8%). The post itself says the difference isn't statistically meaningful.

Measured by Microsoft .NET team, own public repo data · 878 agent PRs, 19 May 2025 – 22 Mar 2026 · T2

Worked example 2: Spotify's maintenance phase

Spotify's background agent, Honk, runs fleet migrations. Its deterministic verifiers (format, build, test) run in a stop hook, and when one fails, "the PR isn't opened and the user is presented with an error message". The agent is "highly sandboxed", its toolset is deliberately small, and pushes and Slack messages come from the surrounding infrastructure, not from the agent. On design evidence, that is L3 for fleet migrations: the oracle sits outside the agent's reach, and a human sees the result. The public record lacks the 90-day defect comparison, and an outside scorer should write that gap down. Spotify's Fleet Management is a separate system. Its 2.5 million-plus PRs are mostly auto-merged with no human in the loop (as of June 2026). It began as deterministic scripts, and Spotify does not say how many of the auto-merged PRs its LLM agent wrote, so its autonomy cannot be credited to AI; the deterministic part scores L0 for AI however autonomous it is.

Measured by Spotify engineers, own blog series · 1,500+ merged PRs by November 2025 · no failure or revert rates · T3

Worked example 3: scoring by granted authority (Kiro)

Whatever review mode was intended, an operator role broad enough to delete and recreate a production environment put that task at de facto L4. The two accounts differ on everything else. The FT, via Reuters and Engadget, reported 13 hours; Amazon says the interruption was "brief", "an extremely limited event" affecting one service in one of 39 regions, and caused by "a misconfigured role—the same issue that could occur with any developer tool (AI powered or not) or manual action". The score doesn't depend on which account is right. Amazon's fix, "mandatory peer review for production access", returned the task to L2, and it did so by changing the authority, not the model.

Measured by anonymous sources via the FT (secondary) against Amazon's own correction · one incident, December 2025 · T4, disputed

The self-assessment template

Fill one row per phase and task type. The "credentials held" column is what turns this into Rule 2: wherever it reaches further than the review column, record the higher level. The rows below are illustrative and name no organisation. Appendix A, Templates, carries a blank copy, and Chapter 13, Assess Your Starting Point, walks through filling it in.

PHASE        TASK TYPE              LEVEL  EVIDENCE                          RISK CEILING  CREDENTIALS HELD
-----------  ---------------------  -----  --------------------------------  ------------  ------------------------------
Coding       dependency cleanup     L2     approval log 100%; PR label       L3            dev token; no prod access
Coding       performance work       L1     no agent attribution              L2            none beyond IDE
Testing      flaky-test triage      L3     verifier outside agent; 90-day    L3            CI read; own branch only
                                           escaped-defect comparison
Operations   cache restart          L2     typed tool; human confirms each   L3            scoped service identity
Operations   (any) via shared token L4 !!  token reaches prod DB             L2            broad API token -> FIX FIRST

Look for rows like the last one first. Nobody chose L4 for that task; the token did.

What to do.

  • Fill in the grid per task type, and cite evidence (approval logs, attribution, routing configuration) rather than opinion.
  • For every claimed L3, write down the oracle and who can edit it. If the agent can edit it, you are at L2.
  • Inventory the credentials and permission modes your AI tools hold. Wherever they reach further than your review mode, record the higher level, then fix the credential or the review.
  • Set a risk ceiling for each phase before anyone proposes a climb, and make irreversible actions ineligible for L4.
  • Check the Rule 6 heuristic. If Coding sits two levels above Review or Testing, raise those first.
  • Re-score every quarter. Expect the scores to drift upward, and ask people to show the evidence.