
The Agentic SDLC, Explained
One person writes the spec and approves the release. Between those two moments, a chain of agents plans, builds, reviews, tests and ships. Here is the wiring.

Building a product is a project. Running it is a payroll line that never ends. For a small SaaS the operations burden — monitoring, deploys, incidents, the on-call rota nobody wants — is usually what forces the first two or three hires, long before feature work does.
This is the part of the stack where agents have moved fastest, because operations work is unusually well suited to them: the inputs are structured, the actions are scriptable, and success is measurable.
An alert fires. A triage agent correlates it against recent deploys, error rates and traces, forms a hypothesis, and either acts or escalates. If it acts, it opens a pull request with the patch and the reasoning, which goes through the same review and test gates as any other change. If the change passes, a deploy agent canaries it and watches its own rollout.
The important property is that the loop closes. The thing that raised the alert is the thing that verifies the fix, so a patch that does not actually resolve the symptom does not get quietly marked done.
Not all remediation is equal, and the useful split is by reversibility rather than by severity.
| Action | Reversible? | Let the agent do it? |
|---|---|---|
| Restart a pod, scale a worker pool | Yes, instantly | Yes, unattended |
| Roll back a deploy | Yes | Yes — faster than a human, and this is the 3am job worth deleting |
| Open a PR with a proposed fix | Yes, it is a diff | Yes, always |
| Merge and deploy that PR to production | Mostly | Only after the staging record is boring |
| Run a schema migration | No | No. Draft it, then have a human approve |
| Delete or mutate customer data | No | Never |
That last row is not a performance judgement. Some actions should require a human because the cost of being wrong is unbounded, and that is true regardless of how good the agent gets.
The owner of an agent-run system should not be watching dashboards. Dashboards are a pull interface, and the whole point is that you are not sitting there. Every state change should arrive as a message in Slack or Discord with a link to the underlying artefact.
Route them to separate channels by urgency. A rollback and a nightly digest in the same channel means one of them gets ignored, and it will be the wrong one.
Webhooks are the mechanism and they are unglamorous: an incoming webhook per channel, a formatter that turns an event into a message with a link. The engineering effort is small. The discipline is in deciding what is worth a notification, because a channel that fires forty times a day gets muted within a week, and a muted channel is worse than no channel at all.
A QA agent checks a deployed build against the specification, not against the code. It drives the real interface, follows the acceptance criteria from the SRS, and reports what it could not do. This catches a category of failure unit tests structurally cannot: the feature works exactly as implemented, and the implementation is not what was asked for.
Run it against staging on every deploy and against production on a schedule. Production QA is how you find the failures that only exist with real data — the ones that never appear in a seeded test environment.
The single most important setting in this system is when the agent stops and pages a human. Set it too high and you are on call anyway; too low and you find out about outages from customers.
Something has to escalate on: an alert the agent cannot correlate to a known pattern, a fix that failed twice, anything touching data or money, and any incident that lasts longer than a set wall-clock time regardless of confidence. That last one matters most — an agent quietly failing to resolve something for forty minutes is the failure mode you will actually meet.
Google's SRE book predates all of this and remains the best description of what you are automating. The DORA research has the metrics worth measuring against — if deploy frequency rises while change failure rate holds, the system is working.
The end state is not zero humans. It is that the human is asleep during most incidents and reads about them over coffee. That is a genuinely different business — it is the difference between needing an on-call rota and not. How small a SaaS team can be works through what that does to headcount, and scale and re-architecture is where we do this work.
An AI SRE agent monitors a production system, correlates alerts against recent deploys and traces, forms a hypothesis about the cause, and either remediates directly or opens a pull request with a proposed fix. It reports through a channel such as Slack or Discord and escalates to a human when its confidence is low or the action is irreversible.
Split by reversibility rather than severity. Restarts, scaling and rollbacks are instantly reversible and should run unattended — rollback in particular is the 3am job most worth deleting. Opening a pull request is always safe because it is only a diff. Schema migrations should be drafted but approved by a human, and anything that deletes or mutates customer data should never be unattended.
Through webhooks into Slack or Discord, with one message per state change — alert raised, patch opened, deploy shipped, rollback fired — each linking to the underlying artefact, plus a daily digest of what resolved itself. Route by urgency into separate channels: a rollback and a nightly digest in the same channel means the wrong one gets ignored.
On an alert it cannot correlate to a known pattern, a fix that has failed twice, anything touching customer data or payments, and any incident exceeding a fixed wall-clock time regardless of the agent's confidence. The time-based rule matters most, because an agent quietly failing to resolve something for forty minutes is the failure mode teams actually encounter.