Framework

How the Five Phases Connect

The phase pages describe each phase on its own. This page describes the seams between them: which artifact crosses each handoff, who writes it and who approves it, and what happens when a later phase finds something an earlier one missed. Most confusion about AIDLC lives at these seams, and so does most of the rework.

Five glowing stations joined by handoff bridges, with one controlled return path looping back

Not a Waterfall: Phases Run Per Ticket

The five phases describe the state of a piece of work, not a stage of the calendar. At any moment a team has work in every phase at once: one feature is still being analyzed, three tickets from another are in Develop, a release is in Launch, and last month's work is in Curate.

The grain differs by phase. Analyze and Ideate usually work per feature, because a requirements brief and a design cover more than one ticket. Develop works per ticket, in thin slices. Launch works per release, which may bundle several tickets. Curate never stops: it watches everything that has shipped and feeds new work back to Analyze.

What makes it a life cycle rather than a pipeline is that work can move backward on purpose. The rule is not "never go back". It is "go back with an artifact, to the phase that owns the decision, and count it".

The Artifact Chain, End to End

Every handoff is a document, not a conversation. Each artifact below fixes one decision, so the next phase can start without re-asking it. The worked example shows every one of them for a single invented feature.

Artifact Phase Drafted by Approved by Read by Decision it fixes
Requirements brief Analyze Agent, with the product owner Product owner Ideate What problem, for whom, and the Given/When/Then criteria that define done
Design note and ADR Ideate Agent, with the tech lead Tech lead Develop, future teams Which design won, and why the others lost
API and data contract Ideate Agent Tech lead Develop The module boundaries, which become contract and integration tests
Spec Ideate Agent Tech lead Develop Goal, files, interfaces, out of scope; traces to every acceptance criterion
Ticket contract Develop Agent or engineer Ticket owner Coding agent, reviewers, Launch One thin slice: criteria, risk tier, flag, external systems, rollback
Plan Develop Coding agent Senior engineer Coding agent, reviewer Files, order, test surface and blast radius, before any code
Tests Develop Coding agent Reviewer CI, Launch Unit, integration and contract tests for every criterion, seen to fail first
Pull request Develop Coding agent Reviewer at the risk tier Launch The change itself, with what a human verified
Release plan and assurance results Launch Release agent Release owner Curate, on-call What ships, to whom first, the rollback path, and that the integrated build passed
Runbook, incident review, new rule Curate Monitoring agent On-call engineer Analyze, every agent What went wrong, and the rule, test or eval that stops it recurring

Who Owns What: A RACI Across the Phases

R is responsible for doing the work, A is accountable for the outcome, C is consulted, I is informed. Read the agent column carefully: an agent can be responsible for drafting nearly everything, and it is never accountable for anything. Accountability needs a name, and a name means a person.

Role titles vary by organization. Map them to yours; keep the rule that every A is a human.

Activity Product owner Tech lead or architect Ticket owner (engineer) Reviewer QA lead Release owner AI agent
Requirements brief and criteriaACCICIR
Design, ADR and contractsCACICIR
Spec and ticket contractsCARICIR
Plan approvalICACIIR
Tests from the criteria, then codeIIACCIR
Pull request reviewICCAIIR (pre-review)
Quality gates and mutation thresholdsICIIAC-
Release assurance and go decisionCCIICAR
Monitoring, triage and incident causeICCIIAR (read-only)
New rule, test or eval after an incidentIACCCIR

For how these roles shift as agents take on more of the drafting, see Teams and Skills. For review depth by risk tier, see risk-tiered review.

When a Later Phase Finds a Problem

Every backward move follows the same three rules. It carries an artifact, never just a chat message. It goes to the phase that owns the decision, not the nearest one. And it is counted, because a rising count is the clearest sign that an earlier phase needs fixing.

Found in What was found Goes back to The artifact that carries it Who decides
Ideate A requirement is ambiguous or two contradict Analyze An open question added to the brief Product owner
Develop A criterion cannot be tested as written Analyze The criterion, flagged for rewrite Product owner
Develop The spec or contract cannot be built as written Ideate A change request against the spec or an amended ADR Tech lead, never the agent
Launch A gap test fails on the integrated build Develop The failing test Ticket owner
Launch A gap test passes: the code was right, the suite was thin Develop's gate The kept test, and a tightened gate rule QA lead
Launch A migration or infrastructure step has no safe rollback Ideate or Develop The blocked release plan Release owner
Curate A production incident or a bad pattern in the field Analyze, plus every agent An incident review and a rule, test or eval pull request Tech lead

The controlled backward move is also an engine feature: see the pipeline can go backwards, under control and the gate configuration on Building AIDLC Into an AI Engine.

Keeping Rework Rare

A backward move is not free. Each phase a problem travels adds another review, another build and another round of agent work, and that agent work is billed. The cheapest fix is the one made in the phase that owns the decision, before anything downstream depends on it.

Make criteria testable at the source

Given/When/Then, one behavior each, with an ID and the boundary it crosses. Develop cannot write the right test for a criterion that names no observable outcome. See writing criteria an agent can test.

Fix the boundaries before the code

The API and data contract from Ideate tells Develop exactly which module boundaries and external systems a ticket touches, so the integration and contract tests are written with the ticket, not discovered at release.

Test first, at the right level

Tests come from the criteria before the code, at whatever level each criterion needs, with the mutation gate on critical modules. Launch then has little left to find. See Testing Strategy.

Count the backward moves

Track how often each phase sends work back, and why. A rising count from Launch to Develop points at Develop's gates; from Develop to Ideate, at the spec. Report it with the delivery metrics on Measuring Impact.

Ready to Hand Off

The short test for each seam. The full entry and exit criteria are on each phase page.

Analyze to Ideate

The brief has all six parts, every criterion is Given/When/Then with an ID, and the product owner has signed it. Criteria

Ideate to Develop

The spec traces to every criterion, the contracts name every boundary, and the ADR records the decision. Criteria

Develop to Launch

Every criterion has a test at the right level, CI and the mutation gate are green, and a reviewer approved at the risk tier. Criteria

Launch to Curate

The integrated build passed assurance, the rollback was rehearsed, and production validation is recorded. Criteria

Curate to Analyze

The incident review names the cause, and a rule, test or eval pull request exists before the incident closes. Criteria

Every handoff

The artifact is written down, versioned and approved by a named person. If the next phase would have to ask a question, the handoff is not done.

Frequently Asked Questions

No. The five phases describe the state of a piece of work, not a stage of the calendar, so a team has work in every phase at once. Analyze and Ideate usually run per feature, Develop per ticket, Launch per release, and Curate continuously. Work can also move backward on purpose, carried by an artifact to the phase that owns the decision.

Always a named person. An agent can be responsible for drafting almost every artifact - the brief, the spec, the plan, the tests, the code - but it is never accountable. The product owner signs the brief, the tech lead approves the design, the ticket owner approves the plan, a reviewer approves the pull request, and the release owner makes the go decision.

The work goes back with an artifact, to the phase that owns the decision, and the move is counted. An ambiguous requirement returns to Analyze as an open question, an unbuildable spec returns to Ideate as a change request, a failing gap test from Launch returns to Develop as the test itself, and a production incident returns to Analyze with a new rule, test or eval.

Follow One Feature Across Every Seam

See the handoffs with real artifacts, then see where each test in the chain gets written.