AI-SDLC, AI agents in your delivery: what changes in your work
Phase 1 alone (Discovery, 1-2 weeks), or the package: Phase 1, Implementation (4-8 weeks), then measure and hand over (how we work).
Marek Koniew
AI Architect & Tech Lead · Contact
Agents join daily work; a person approves every product change.
You prepareA sponsor and read-only access to tickets and code; for the package, one pilot team, a tech lead as AI champion and an owner per change.
We deliverA report and roadmap, then a context repository, agents, AI review and automatic checks in 2-3 areas, measured before and after.
You prepare, in detail
For the package: the pilot team gives half a day per engineer per sprint for the first two sprints; the tech lead is the AI champion; each change has an owner after we leave.
Hypotheses until Discovery measures your baseline (how we measure).
You read our report and decide.
Your part
Name a sponsor and the goal. Plans →
In week 1 you name who approves sensitive changes.
Your part
Agents never merge alone. Permissions →
Each Monday you see how long tickets take to ship.
Your part
Describe the result; a check proves it, a person closes the ticket. Tasks →
Clear, tested tasks run alone on a cloud agent; you steer unclear or risky ones on your laptop. A teammate approves.
Your part
We measure the team, never one person. Flow →
Who does what
| Step | Runs on | Agent | Person |
|---|---|---|---|
| Ticket | Cloud agent | drafts plan | accepts |
| Build | Cloud or Laptop | codes, tests | steers unclear, risky |
| Review | Cloud agent | reviews first | checks risky |
| Approve | Laptop | never its own | approves |
| Release | CI | drafts notes | can stop it |
Tools we set up
Each tool reduces the risk beside it.
Our defaults per step
Replaceable, not locked in: per class, yours or our default. Settings and written rules come before tools.
- Ticket: GitHub Spec Kit (spec, plan, tasks), a PRD template, a readiness check.
- Plan: the context repository (
CLAUDE.mdorAGENTS.md,docs/, ADRs). - Build: clear, well-scoped tasks go to Claude Code cloud agents, one sandbox per task, no production keys; broad, unclear or sensitive ones a developer steers locally (GitHub guidance); branch protection and code owners.
- Review: a reviewer agent, then a second model family, then AI pre-review on the pull request; a person approves every product change.
- Merge: build and types, lint, tests with coverage and mutation score on changed lines, code scan, package, licence and secret checks, complexity and duplication limits, merge queue on the latest main; a skipped check fails (gate table).
- Release: your deploy pipeline releases after required checks and signatures; rollback is one step. It writes the release onto the ticket, with pull request and approver.
- Run: error rate and CI failures checked against their normal range; an agent drafts a ticket with the evidence; a person decides.
- Every step: model routing with fallback and cost caps (OpenRouter), an audit log.
Or yours: GitLab, Jenkins, Cursor.
Files you keep:
Where it runs
- Jira ticketspick up, build clear ones
- Pull requestsreview each
- Securitywatch dependencies, secrets
- Running systemwatch, draft a ticket
No laptop or cloud agent holds production keys; where your data agreement requires it, code stays on models you host.
How we work with you
Next step
You prepareA sponsor and a 30-minute call.
We deliverA report and roadmap in 1-2 weeks.
Book DiscoveryWe build software with AI agents every day. The AI-SDLC process we use ourselves, implemented with your team and measured before and after.
Agents, an AI reviewer and blocking CI checks in 2-3 areas of your delivery, tracked on five team numbers. AI-SDLC: software development run with AI agents.
We run AI-SDLC adoption as a measured process, not a tool rollout.
You prepareYour CTO and 2-3 tech leads, one pilot team, read-only access.
We deliverDiscovery and analysis, then 2-3 areas improved (for example code review or testing), measured, handed over.
Your goals, your delivery flow, the data to read.
Goals agreed, your ticket-to-production flow mapped, data access ready.
We tie agent adoption to your goals and your real delivery flow from the start.
You prepareYour CTO and 2-3 leads, the self-check report if you ran it, and works council agreement on per-team data use before week 1, where one exists.
We deliverA facilitated workshop, the flow map, a knowledge inventory, the data plan, a decision log and a glossary.
Data note, decision log, glossary
For the works council we supply a one-page data note.
The decision log lives in docs/adr from week 1, open to the pilot team.
The glossary defines review tier, spike, prototype, product code, done-when, metric, score and pass mark.
CharterBefore any AI work longer than a day, one page that sponsor and tech lead sign.
your team us agreed together
Agenda
- Frame
Goals, rules of the engagement, the 16 areas and the maturity ladder.
- Self-check walk-through
If you ran it: the likely blocking area and the questions it leaves open.
- Map the delivery flow
From ticket to production: where work waits, where AI is used today.
- Known problems
One list, each problem with an owner on your side.
- Team knowledge
Where it lives today (heads, chat, wiki, tickets) and the questions new people and agents keep asking; each gap gets an owner.
- Data plan
Tickets, git host, CI, your wiki and docs, and incidents for the last 3-6 months, read-only; access, the data agreement, the formula of each of the five numbers.
- Close
Participants and date of the maturity workshop.
Who takes part
CTO or VP Engineering, 2-3 tech leads, the product or ticket owner (optional); we facilitate.
One-page charter
Sponsor and tech lead sign it before any AI work longer than a day. The charter separates throwaway code from product code and says what counts as a failure.
- The workR&D or deliveryThe question it answersThe success signalKeep the code or throw it awayDone-when: the line that makes a result final
- RolesSponsorAI championArea ownersDomain expert
- A named owner forRulesTicket orderPausing an agentGuardrailsToolsEach external tool or service
Data rules first
- Signed before any access
- Which tools may read the data
- Where it stays, how long it is kept, deletion after
- Which AI provider, and where its models run: decided in Discovery
- No client code trains a model
- Per team, never per person
- Germany and Austria: the works council agrees data use first
- Elsewhere: your employee representatives, where you have them
Where it sits
Step 1 of Phase 1, Discovery and analysis (1-2 weeks). Covered by the Discovery and analysis plan and by the AI-SDLC Package.
Sixteen AI-SDLC areas scored on your tickets, git, CI, incidents and interviews.
A draft level per area from your data; the lowest marked.
We start agent work in the areas your data shows are weakest, not on a guess.
You prepareRead-only access to tickets, git, CI, incidents and scanner alerts; short interviews with 2-3 leads.
We deliverDraft scores with evidence, the baseline, each problem marked: AI can fix it, partly, or not.
Baseline: five team numbers and one security number demo
- Per team
- AI-assisted work apart from other work
- A number your history cannot give: baseline from the first 2 weeks of Implementation
- Plus one security number
- From your scanner and git history, measured as the Verizon DBIR does; its median is 43 days
- Your security team already tracks it; it drops within weeks once upgrade pull requests open overnight (Security)
Example
The data shows AI pull requests waiting 21 h for a first review, other pull requests 13 h, so Code Review is the first area to check.
Problems marked
Context area, scored from the data
Team knowledge is scored from the data: a rules file per repository, ADR count, last edit date of docs against code changes, questions repeated in pull request comments.
Level criteria per area
L1 Ad hoc: a person writes and checks. L2 Guided: an agent writes, a person checks all. L3 Systematic: an agent writes, the pipeline checks first. L4 Optimised: an agent ships when the checks pass; people approve only flagged exceptions (not in the package).
Client case, anonymised (our measurement)
Test-automation SaaS company.
- The analysis run found that only 0.7% of finished tickets were linked to a release, so no before/after claim on AI delivery gains could hold.
- Fix: the deploy pipeline writes the release onto the ticket, as the first change.
Next: Maturity workshop
Your leads score the 16 areas together against these drafts, place the team on the team ladder and agree the weakest area. Maturity workshop →
Your leads agree each area's level, the team's level and the weakest area.
One agreed team level and one weakest area, checked on evidence.
Your leads agree on evidence where agents help first, so the rollout has their backing.
You prepareYour CTO, 2-3 tech leads, QA and release owners.
We deliverFacilitation, the evidence check, the agreed level and weakest area.
The delivery process is how a team moves from 2 to 3.
After the workshop
- Choose the delivery process →
Spec, agents, CI gate, chosen on the agreed scores.
- Report and roadmap
Scores, baseline, ranked changes, the chosen process.
- You decide
Stop, go alone, or continue to Implementation →
Agenda
- Frame
Area levels L1-L4, target L3; the team ladder.
- Score together
For each of the 16 areas the leads read the criteria and tick what the team meets, with evidence: a file, a setting, a report.
- Evidence check
We explain each draft score and its evidence to the leads before they tick; we show what the analysis of your data found; a score is corrected where the evidence disagrees with a tick.
- Place on the ladder
The team level is the highest level every relevant area passes; the lowest area sets the first change.
- Agree the weakest area
And why it blocks the others.
- Rank and choose
Problems ranked by expected gain; the CTO picks 2-3 areas for Implementation.
Duration: to agree. Groups above 8 people split for the first rating of each area, then agree one score.
Who takes part
CTO or VP Engineering (opening and close), 2-3 tech leads (all blocks), QA lead, DevOps or release owner, two engineers of the pilot team; a security contact for the governance block (optional). We facilitate.
Report and roadmap
- Scores with evidence, the baseline, the weakest area.
- The chosen delivery process and its set-up list.
- Ranked changes, each marked "you alone", "with us" or "not an AI problem".
- For each number: a formula, a window, a target and a guardrail.
- A debrief, to agree.
Your decision
Stop and keep the report, make the changes alone, or continue to Implementation for 2-3 areas each passing its agreed checks. The Discovery and analysis plan ends here; the AI-SDLC Package continues.
Demo team
Most relevant areas pass Guided, so the team is Guided on the ladder. Moving up starts with Code Review, the lowest area: a written rule for which changes need a person, then AI pre-review of every change and a pull-request size limit. Each rung usually moves the bottleneck: at Guided it is review, at Systematic it is planning and release, at Optimised it is the decisions only people make.
One path for agents from ticket to merge.
One delivery process and the agent setup that runs it, chosen on your data, in the roadmap.
Every agent follows one agreed path from ticket to merge, so results can be compared.
You prepareYour stack, a ticket sample, existing architecture decision records (ADRs), specs and your rules file.
We deliverOptions scored against your criteria; the choice written as an ADR. The named tools are replaceable defaults.
Review tiersOne pace per tier: prototypes fast and disposable, product code at review capacity.
Your maturity scores and stack
A ticket sample and your ADRs
Size of a typical change
Approvals and audit trail you need
Who writes requirements
options- Spec Kit, our default
- OpenSpec: large, old code base
- cc-sdd: unattended parallel runs
- AWS AI-DLC: approval per stage
- BMAD Method: nobody writes requirements
- Superpowers: a packaged Claude Code runner
- Kiro specs: one paid AWS editor
- Agent OS: agents ignore team conventions
You write the task, on your laptop or in Jira
Spec Kit documents
Many cloud agents, one per task, each in its own sandbox
Your CI as the gate
Recorded as an ADR; goes into Report and roadmap- SpikeAnswers one question
- Set time limit
- Answer recorded
- Code kept out of the product
- Prototype review
- PrototypeDisposable code to test an idea
- Main path works
- No production data or secrets
- Keep, rebuild or discard recorded
- Product code review; never copied unchecked
- Product codeShips and is maintained
Inputs
- Maturity scores and the team's place on the team ladder
- Stack and the coding agent you allow
- A ticket sample
- Existing ADRs, specs and your rules file
Criteria
- Place on the team ladder
- Typical change size
- Code base age and size
- Stage approvals and audit trail
- Who writes requirements
- Licence and upkeep
Options and when each fits
- Default: Spec Kit documents, cloud agents (Claude Code), your CIConstitutionfilled from your ADRsspec.md, plan.md, tasks.mdper change; spec.md is the product requirements document (PRD); a small change takes a one-page specImplementer and reviewercloud agents, each in its own sandbox, take the task you write on your laptop or in JiraMergeonly when CI passes and a person approves
Chosen for its large user base, MIT licence and plain Markdown any agent can read.
- OpenSpec
Large, old code base where most work is small changes: one change folder per change, spec deltas.
- cc-sdd
Team ready for unattended runs at the Systematic level: parallel batches, a reviewer per task.
- AWS AI-DLC
Approval per stage and an audit trail are required, as in regulated work.
- BMAD Method
Nobody writes requirements: it drafts the brief, PRD, architecture and stories first.
- Superpowers
A packaged runner on Claude Code with a fixed workflow is wanted.
- Kiro specs
An AWS shop that wants one supported, paid IDE.
- Agent OS
Added to any option when agents ignore team conventions.
Review tiers
Every ticket and pull request names one review tier and passes all its checks. Moving up a tier needs that tier's review; prototype code is never copied into the product unchecked.
- Spike
Time-boxed work that answers one question; not shippable (Agile Alliance). Checks: question and done-when stated, time limit, answer recorded, code kept out of the product.
- Prototype
Disposable code to test an idea (GOV.UK Service Manual). Checks: goal named, main path works, no production data or secrets, keep, rebuild or discard decision recorded.
- Product code
Code meant to ship and be maintained (Microsoft SDL). Checks: another person approves; every required gate passes (build, types, lint, tests, code scan, secrets, packages, licences); merge queue on latest main; rollback and owner recorded.
Who and when
After the maturity workshop, inside the 1-2 weeks of Phase 1. We propose; your CTO and tech leads agree it at the Report and roadmap debrief.
Set up in Phase 2
With the pilot team:
- spec, plan and task templates
- the PRD and ADR standard in docs/prd and docs/adr
- implementer and reviewer agents within the guardrails
- the code-review, security-guidance and tracker plugins
- the CI gate
The first 2-3 pilot tickets run through it. In Hand over, one of your tech leads becomes its owner.
What the evidence does not show
No published study shows that a spec step improves delivery outcomes. We propose it as a trial: Measure reports tickets run through it apart from the others, and the pilot team decides whether it stays.
2-3 areas changed with one pilot team in 4-8 weeks.
Changes merged in your repositories only after the agreed quality gates pass.
Agents run in your real pipeline with one team first, so other teams adopt a setup already measured in your pipeline.
You prepareA sponsor, one pilot team, an owner per area and for the context repository; half a day per engineer per sprint for two sprints.
We deliverGuardrails, the delivery process, then 2-3 areas changed with your team.
- Team
- A domain expert checks changes against business rules
- A tech lead as AI champion coaches the team
- Weekly check-in
- AI champion and area owners
- Sponsor every second week
- Each decision logged the same day
- Who changes the code
- Your engineers make and merge
- We pair and review
- Our pull requests keep the agents' review budget
Team and pilot start
The domain expert checks each change and each acceptance check against the business rules. The AI champion coaches the team on real tickets and reads every decision; the role is written in the charter, with reserved time in the sprint plan.
The pilot team works on real tickets with the agent. Before it starts, we brief leadership on goal and guardrails and send engineers a short change note. The pilot team picks its first tickets, sets the risky-paths list and the first review budget with us, and signs the targets. Leadership sends one message on speed and care per review tier.
The change note says what each engineer learns (running the delivery process, reading an agent's trace, tuning the rules file) and what stays the same: your people merge, the team is measured, never a person.
your team together with us
Typical changes
- Tickets
Short units of work, with human validation before implementation; the acceptance and readiness checks are ours (AWS AI-DLC).
- Rules and context
A short rules file per repository, versioned and reviewed, kept only where a test shows it helps (Gloaguen et al.).
- Context repository
Plain Markdown in git, one index page that links every page, an owner who approves edits; agents read it on every task and propose page edits in the same pull request (how it works).
- Code Review
AI pre-reviews every change; a person approves every product change; nobody approves their own; the size limit is ours (OpenSSF Scorecard checks human review and branch protection).
- Testing and CI on main
Every change passes the gate table: mutation score and coverage on changed lines, a registry lookup that stops invented packages (Spracklen et al.), a licence allow list (LiCoEval).
- Replay tickets
Each agent keeps a few replay tickets, taken from real past defects supplied by the domain expert; a rule or prompt changes only when they still pass.
- Tracing
Every finished ticket links to the deployment that shipped it.
- Security and governance
Each agent has a name, an owner and a switch-off (ours), and minimal permissions, human approval, rate limits and quotas (OWASP LLM06, LLM10).
Every change has a rollback step.
- People
Training and paired sessions on the team's own tickets, run by us in Phase 2 and by your AI champion after; the sponsor explains the change to the wider organisation (BCG).
Who changes what, when
| Phase 1 | Phase 2 | Hand over | After we leave | |
|---|---|---|---|---|
| Sponsor | Signs the charter | Explains the change to the wider organisation; at the check-in every second week | Rolls the change out to the next teams | Runs the roll-out plan |
| CTO | Sets the goals, decides priorities, picks 2-3 areas | Briefed on goal and guardrails | Runs the monthly review | Reads the five numbers and adoption every month, per team |
| AI champion | Role written in the charter | Coaches on real tickets | Takes over the delivery process | Owns the delivery process; runs paired sessions |
| Area owners | Named in the charter | Approves each change | Owns one change each | Approves edits to its rules; answers for its number |
| Pilot team | Two engineers take part in the maturity workshop | Picks the first tickets; signs the targets; builds the changes with us | Its adoption number decides when a team joins | One engineer pairs with each joining team |
| Domain expert | — | Checks each change and each acceptance check against the business rules | — | — |
| Works council (where one exists) | Agrees per-team data use before week 1 | — | — | Numbers stay per team, never per person |
| Next teams | — | — | Join when adoption held for four weeks at the agreed bar | Own champion, reserved time and baseline |
The rules, the order of tickets, pausing an agent, guardrails, targets and tools each have a named owner, agreed in Phase 1.
Order of work
- Guardrails first: agent access, review rules, data rules.
- Set up the delivery process chosen in Phase 1 with the pilot team: spec templates, the PRD and ADR standard, implementer and reviewer agents, the CI gate. The first 2-3 pilot tickets run through it.
- Then the 2-3 areas, ranked by expected gain, then cost: settings and written rules before tools, tools before custom builds.
What is read first
Review wait and started tickets that reached release move first, then Lead time; Change failure rate and the guardrail numbers must not get worse.
The same five team numbers, plus days to fix a critical flaw, before and after the AI-SDLC change.
Five numbers from your tickets, git and CI (baseline, weekly, final), plus days to fix a critical flaw before and after.
You see in your own numbers whether delivery got faster and safer after the change.
You prepareThe same read-only access as in Phase 1: tickets, git, CI, incidents, scanner alerts.
We deliverThe same numbers measured again the same way; the 16 areas re-scored; any number that did not move is named with its reason.
- Guardrails, per teamSecurityReviewer loadDeveloper satisfactionAdoptionDefects found after mergeStale context pages
- Use
- Team diagnostics
- Never targets for people
- Never input to performance reviews
Whole product
Lead time and change failure are also read for the whole product, not only the pilot team.
baseline, Phase 1 after, week 8
The AI-SDLC change for each number
Weekly loop
Each week we measure the five numbers per team, pick the one that moved the wrong way against the baseline and agree one action; the next week shows whether it worked. We read the numbers with your AI champion, who explains them to the team; from hand over the area owner answers for each number.
Weekly reading, week 6 (demo)
- Team splits pull requests over 400 lines; we tune the AI reviewer to flag large pull requests first.
- Week 7: review wait 12.5 h, on target.
- Larger AI-written pull requests deter reviewers (LinearB 2026, vendor).
Reviewer load and satisfaction
Speed can rise while reviewers drown or the team grows unhappy; these show that strain early. Per team, never per person, with the same baseline and re-measure as the five.
- Reviewer load
- Open reviews per reviewer
- Changed lines per review
- Developer satisfaction
- A short pilot-team survey, before and after
- Adoption
- Share of pilot tickets run through the delivery process
- Share of pilot engineers using it each week
- Baseline, weekly, final
- Defects found after merge
- Counted in merged code, read beside review wait
Why a weekly reading
Each week the team compares one number with its baseline. Without a baseline, a pilot's effect cannot be shown.
How the numbers are taken
- Days to fix a critical flaw
- Median days from the scanner's first alert to the fix running in production
- Only flaws attackers already use
- Measured as the Verizon DBIR does: its median is 43 days; only 26% were fully fixed
- Cost per change
- From your baseline, failed attempts included
- Agent fleet
- Catches quality slipping early
- Pilot tickets
- Reported apart from other work, so the pilot team decides whether the delivery process stays
- Rules
- Targets set on your baseline in Discovery and analysis
- The numbers shown are samples, not a client result
- A number not measurable yet: installing the data link is the first task
- Never per person
Germany and Austria agree data use with the works council first; elsewhere, with your employee representatives where you have them (numbers per developer usually need it; CMS).
A named owner in your team runs each AI-SDLC change after we leave.
Every change has an owner; the numbers are read monthly.
The AI-SDLC keeps running after we leave, owned and reviewed by your team.
You prepareAn owner for each change, for the delivery process and for the monthly review, with hours for it in the sprint plan.
We deliverA handover note, the first monthly review, a plan for the next teams.
your team us, only if you ask
Who owns what after we leave
- The handover note
It records the decisions and why they were made, the open risks and the agent run log, so your team or an agent can resume after weeks away.
- The context repository
Its owner approves page edits; the monthly review reads the stale-page count and the questions agents had to ask a person. The handover note is a page in it.
- Each change
Its area owner approves edits to its rules and answers for its number.
- The five numbers and adoption
Your CTO or tech lead reads them every month, per team, never per person.
- The delivery process
Chosen in Phase 1, set up in Phase 2. A tech lead of yours owns its templates, agent set-up, CI gate and ADR, and approves every change to them. Your AI champion owns the delivery process and runs paired sessions. Who changes what, when: see the table in Implementation →
- Guardrails and agents
Each agent keeps a named owner, a spend cap and an audit log.
- Next teams
Your sponsor runs the roll-out plan; our support is optional.
When a team joins
A team joins when the pilot's adoption number held for four weeks at the bar agreed with the pilot team on your baseline and reviewer load stayed within the review budget; the team has an owner, reserved time, its own baseline and names its own AI champion; one pilot engineer pairs with it on its first tickets.
Duration
Phase 3, Measure and hand over: to agree.
Why a monthly review
An AI management system must improve continually (ISO/IEC 42001); the review matches the Measure and Manage functions of the NIST AI RMF.
What the AI-SDLC sets up at each stage of your delivery line
One setup per delivery stage.
We add agents stage by stage where your team loses time, each with a check that proves it works.
You preparePick the stages where your team loses time.
We deliverEach chosen setup running in your pipeline, with its check.
What runs at each stage
- Ticket: you write the task on your laptop or in Jira; cloud agents build and check clear tasks, you steer unclear or risky ones on your laptop; a person approves every product change, and risky ones also need the code owner.
- Plan: a short rules file, the context repository (glossary, runbooks, ADRs) and a map of which folder owns what.
- Build: many cloud agents, each task in its own sandbox; permissions keep merges and protected paths with people; a router picks the model per step, and when a model or a whole tool stops, the next on your list takes over.
- Review, in run order: a reviewer agent checks the implementer's work, a second model family cross-reviews, a cloud agent pre-reviews the pull request (you can run it on your laptop first), then a person approves.
- Merge: CI runs tests that must fail when the code is broken on purpose; a security-watch agent opens dependency fixes; gates check every pull request; a merge queue tests each change against the latest main, and a repair agent asks a person after 3 failed fixes.
- Release: your deploy pipeline releases after required checks and signatures; rollback is one step. One record links ticket, scope, approval and release.
- Run: a script checks error rate and CI failures against their normal range; outside it, an agent drafts a ticket with the evidence and a person decides.
- Measure: the five team numbers weekly, AI work split from other work; cost per change measured and kept under its cap; long sessions kept short.
- Hand over: short reports with a fact check; a named owner and a monthly review for each setup.
The problem each setup answers
- Who does what: unclear AI steps.
- Delivery process: vague tickets.
- Goal convergence: agent drift.
- Rules and context: ignored rules.
- Context repository: guesswork.
- PRD and ADR: forgotten decisions.
- Agent permissions: unattended agents.
- Model routing: one provider.
- Multi-agent: usage limits.
- Implementer and reviewer: self-approval.
- Cross-review: blind spots.
- Code Review: review queue.
- Testing: weak tests.
- Security: vulnerable dependency.
- Quality gates: flawed AI code.
- CI on main: red main.
- Tracing: untraced changes.
- Production monitoring: late incidents.
- Five numbers board: unproven gains.
- AI cost levers: rising AI bill.
- Token savings: long sessions.
- Kill verbosity: unreadable reports.
- Handover: setup decays after we leave.
Client case, anonymised (our measurement)
Test-automation SaaS company.
- More than half of its classified production incidents came from its own changes, and the share rose as output rose.
- Fix: the existing incident-cause field goes on the weekly board, so each change, agent-built or not, is measured against what comes back.
Before the first ticket: who acts at each step of the line, and when a person decides.
Delivery flow: agents build and check; a person approves every product change
A person approves the acceptance check and every product change; risky ones also need the code owner.
Agents do the routine steps; your people keep every decision that carries risk.
You prepareA ticket template, branch protection and your risky paths.
We deliverA second-model review, merge checks and sign-off rules.
Example: DS-142 reaches a person three times: you write the check, a cloud agent asks you to review, and the code owner signs off
- ReleaseYour deploy pipeline releases after required checks and signatures.
- RunA script checks error rate and CI failures against their normal range; outside it, the agent drafts a ticket with evidence and a person decides.
Client cases, anonymised (our measurement), and public reports
Test-automation SaaS company, ticket agent.
- Nobody knew which tickets the agent should take.
- Fix: hand it small fresh tickets the week they are written; people keep the rest.
- Fresh tickets closed in a median of 2 days, backlog tickets in 67 (fresh tickets are also smaller).
Enterprise device maker.
- Seven steps: ticket, design, build, check, pull request, review, merge.
- Three gates where a person decides: design, code and merge, which agent pull requests pass too.
- The author is never the reviewer.
Software platform company.
- The check moved from reading the diff to just before deploy (tests, evaluations, a watched feature-flag rollout).
- One person reads the AI review and CI results.
- Merges rose about 4.5x at this company (self-reported; its own post reports pull request cycle time falling from 21 h to 5.4 h).
Runs alone
- Build: an agent writes the code and its tests on its own branch, with no production keys.
- Second model checks: another model reads the change and flags the lines a person must read; it never fixes or approves.
- Build, tests, scans: build, types, lint, tests, code scan, packages and secrets (gate table). A failed gate goes back to the agent, up to 3 rounds; then the ticket returns to the developer.
- Release: your deploy pipeline releases after required checks and signatures; rollback is one step. The version is written on the ticket.
Always a person
- Ticket: the acceptance check that proves it is done. No check, no agent start.
- Review: AI pre-reviews every change; a person other than the requester approves every product change.
- Sign-off: risky changes (payments, login, personal data, infrastructure) also need the code owner. Low-risk changes skip it.
- Any change that weakens a test, a gate or a rule goes to the code owner.
One list shows every ticket waiting for a person, the step it stopped at, and why.
Who can override
- A failed check: only the code owner, with a written reason kept on the ticket.
- An agent: never.
- Anyone on the team can stop a release; rollback is one step.
Retry limit, risky paths and the 400-line cap per pull request (see Code Review) are our defaults, set with the pilot team in week 1 and tuned from your numbers.
Run: production monitoring
- Range check: after each release, a script compares the error rate and CI failures with their normal range.
- The agent drafts a ticket: when a number leaves its range, it writes the evidence (release, change, graph) into a new ticket. It never fixes or rolls back on its own.
- A person decides: roll back, fix or close. A fix takes this same path from the ticket.
- Each incident records its cause, so changes from your own team, agent-built or not, show on the weekly board.
Client case, anonymised (our measurement): test-automation SaaS company. More than half of its classified production incidents came from its own changes, and the share rose as output rose. Fix: the existing incident-cause field went on the weekly board.
The line starts at the ticket: it becomes a written spec.
Each ticket reaches a reviewed pull request from its requirements note (PRD)
You write the task, on your laptop or in Jira; cloud agents drive each change from a written spec to a reviewed pull request.
Agents build from a written requirement, and a reviewer checks the result against it.
You prepareA requirements note per ticket (PRD) and your recorded decisions (ADRs).
We deliverSpec Kit artifacts, implementer and reviewer cloud agents, CI as the gate.
Example: ticket DS-142, add retry to the payment webhook, written by youThe spec states what must be true, each line with its checkThe plan keeps to the accepted ADRThe tasks split the work, one per acceptance checkA cloud agent builds one task in its own sandboxA second cloud agent checks it against the spec and sends problems backCI and the code-review plugin check the pull requestA reviewed pull request, every spec line checked
The reviewer agent sends a problem back before the pull request opens
Review order, before every merge
An AI check blocks only after 90% precision and 60% recall on 30 past changes, labelled by two people (agreement measured) and not used to tune it (held out); until then it warns. (calibrating an AI judge). A person always approves.
Default and alternatives
Default: three files in the repository (spec, plan, task list, from GitHub Spec Kit: spec.md, plan.md, tasks.md), run by cloud agents (Claude Code), gated by your CI and the official code-review plugin. Spec Kit supplies the commands and files, not a runner; we configure the implementer and reviewer agents.
Alternatives and when each fits: Choose the delivery process.
How it works
/speckit.specifyreads the approved PRD and writesspec.mdwith its acceptance checks.- The plan command reads the accepted ADRs and writes
plan.md. /speckit.taskswritestasks.md; the task template set up in Implementation gives one task per acceptance check.- Before writing the plan, the agent checks the code to avoid asking for what exists; one plan once asked for tests already written.
- You write the task on your laptop or in Jira; a cloud agent picks it up, and each task runs in its own sandbox.
- A reviewer agent checks the diff against
spec.mdandtasks.md; problems go back to the implementer. - When the work departs from
plan.md, the plan is updated in the same commit.
The pull request then meets your CI and the code-review plugin. Branch rules keep the merge with a person.
Review order
- Reviewer agent: checks the diff against the spec; the implementer answers each problem.
- Second model: another model family reads the change without the author's reasoning.
- Pull-request pre-review: risk labels decide who reads which lines.
- Person: approves every product change; nobody approves their own.
An AI check blocks only after 90% precision and 60% recall on 30 past changes, labelled by two people (agreement measured) and not used to tune it (held out); until then it warns. Agent pull requests get human-only review about 8% of the time against about 25% for human ones (arXiv:2605.02273), so the person stays last.
Where it fits in the AI-SDLC
- Choose the delivery process (Discovery and analysis) picks it from your maturity scores, stack and tickets; small changes take a light path, a one-page spec.
- Set up the delivery process (Implementation) gives the pilot team the templates, the two agents and the gate.
When it does not help
- Thoughtworks and Martin Fowler's site find the full artifact set heavy for small work.
- No published study shows that a spec step improves delivery outcomes, so the pilot measures the five delivery numbers before and after.
The spec defines done; the task board keeps the agent off side work until each check passes.
A task closes only when its acceptance checks pass
Agents finish the task you wrote instead of drifting; side work waits; an automatic check proves the acceptance condition and a person closes the ticket.
Agents stay on the agreed task.
You prepareThe PRD, or your request in your own words; one repository.
We deliverA task board with a goal, cited priorities and an automatic check.
Example: you write the goal once, on your laptop or in JiraEach task gets an acceptance check and a priority you wroteA cloud agent picks up the top task; a timed check keeps it thereA refactor or tool idea waits as a new taskThe task closes only when its acceptance check passes
The side job becomes task 3; task 1 closes only when its check passes
How it works
Three files hold the work: the task board (what is left, an acceptance check per task), the decisions (your rulings), the work log (what happened).
Only a sentence you wrote can raise a task to the top priority; the agent cannot promote its own work.
An automatic check validates the board; a timer re-reads the files so a long session stays on them.
Where it fits in the AI-SDLC
Implementation. The pilot team's agents work the roadmap tasks from Discovery and analysis, and each task's acceptance check becomes a number checked in Measure and hand over.
Result
No published number yet.
When it does not help
A single-step task, or work where a runnable test already decides what done means.
To work each task, the agent reads your rules and code map.
Rules file and code map speed agent investigations and keep changes within your code rules
Investigations: two days to 30 minutes at a social network (our client, anonymised).
Agents work from your own rules, so their changes fit your codebase from the first task.
You prepareYour existing rules file, folder owners, build and test commands, if you have them.
We deliverOne short rules file, a folder map and a CI check per rule; layer rules break the build (ArchUnit, dependency-cruiser).
billing-ui/, amounts in centsExample: without the map the agent edits the wrong module
Code rules in the rules file, each enforced by a gate
- Cognitive complexity of a function at most 15 SonarQube S3776
- A function at most 50 lines and 5 parameters linter
- No copied blocks: at most 3% of new lines duplicated jscpd
- No dead code or unused packages knip, vulture
- Imports stay inside their layer dependency-cruiser, ArchUnit, import-linter
- Team design rules written as code Semgrep, ast-grep
- A pull request at most 400 changed lines Danger
Client cases, anonymised (our measurement), and public reports
Social network company, data pipelines.
- Agents lacked the team's unwritten knowledge of a four-repository, three-language pipeline.
- Each investigation took about two days.
- Fix: agents read 4,100+ files and wrote 59 reference files, graded by separate critic agents.
- Investigations fell to about 30 minutes; tool calls per task fell by 40%.
Ride-hailing and delivery platform. With a map of data and service metadata (not of code) the same question to an agent, finding the right analytics table, took 38 seconds and was right; without it, 20 minutes and wrong (one practitioner's report).
Enterprise device maker. One command writes the project's agent rules file; company, project and personal rules load in that order.
- Agents reach company systems only through approved connectors; unapproved tools stay blocked, so security knows what agents can read.
When a rules file pays off
- Generic context file
- Over 20% more model cost, no general gain in task success
- Map written for one codebase
- Reverse-engineering estimate cut from 6 weeks to 2, for about 10,000 lines of COBOL
So a rules file helps only when it is short and specific to your code.
How we keep it that way
- Size
- A CI check measures it: Codex reads only the first 32 KiB of an AGENTS.md and drops the rest silently
- Each rule
- Backed by a CI check
- Dropped if it does not change the agent's work
- A mistake the agent repeats becomes a rule, with its check
- Rules file, agent-step scripts or model change
- The checks rerun on past tasks with known good results
- A lower pass rate stops the change
Agents know your code. They do not know what your team knows by heart.
Your team's knowledge, in a repository agents read
Agents start each task from what your team knows; review keeps it true.
The knowledge that lives in heads and chat is written, linked, kept current and read by agents when a task needs it.
You prepareWhere your team's knowledge lives today, and an owner.
We deliverThe repository set up, an index page, agents reading and updating it, a stale-page check.
AGENTS.md · docs/index.md · docs/glossary.md · docs/runbooks/ · docs/adr/⏺ Read(docs/glossary.md) amounts are in centsExample: on ticket DS-142 the agent reads “amounts are in cents” from the glossary instead of asking
Client case, anonymised (our measurement)
Social network company, data pipelines.
- Agents lacked the team's unwritten knowledge of a pipeline of 4,100+ files; they “weren't making useful edits”.
- Fix: 59 context files that encode what had lived only in engineers' heads, refreshed every few weeks by checking paths and re-running critic agents.
- Research that took about two days took about 30 minutes, with about 40% fewer tool calls (preliminary, six tasks).
Details on the rules file side: Rules and context.
The pattern: index, log, lint
- One
index.mdlinks every page; an append-onlylog.mdrecords what changed; a periodic lint looks for contradictions between pages, stale claims and orphan pages (Karpathy, LLM wiki). - Plain files in git: every major agent reads
AGENTS.md(agents.md), and review works as it does for code (Write the Docs). - People can browse the linked pages in any editor; Obsidian is one viewer that shows hubs and orphans as a graph.
- Agents propose page edits, an owner approves: wikis die when upkeep outgrows value, and agents do the bookkeeping.
Keep it short and specific
- Generic context files add over 20% to model cost with no general gain in task success; they help for non-standard practices (Gloaguen et al.).
- Files written by developers beat model-written ones by about 4 points of task success (same study).
- So pages stay short, one topic each, and an owner removes pages that do not change the agent's work.
Where it fits in the AI-SDLC
- Discovery: an inventory of what the team knows and where it lives.
- Implementation: the repository is set up with the pilot team in the guardrails step.
- Handover: its owner approves page edits; the monthly review reads the stale-page count and the questions agents had to ask a person.
Besides the rules file, the agent must respect decisions you already made.
A change that breaks a recorded decision is stopped
The conflict goes to the ticket; only a person lifts it, with a new ADR.
Agents respect decisions your team already made; only a person can change them.
You prepareA PRD per ticket and an ADR per decision, in your repository.
We deliverBoth templates, and agents set up to read, follow and check them.
ADR statusEach ADR carries a status: proposed, accepted or superseded. An accepted ADR's text is never edited, only its status line; a new ADR supersedes it.
docs/adr/0003-retries-live-in-the-webhook-handler.md
Decision
Retries stay in the webhook handler; the queue only carries messages.
Confirmation
A test fails unless maxReceiveCount is 1.
Example: on ticket DS-142, ADR-0003 keeps retries in the handlerLess code would be a queue setting in config/queue.yamlIt contradicts ADR-0003, so the agent does not make itOnly a person lifts the stop, by recording a new ADR
The agent does not make the change that contradicts ADR-0003
Before an agent starts: the readiness gate
An incomplete issue halved an agent's task success, from 47.2% to 23.4% (Vijayvargiya et al.). So a ticket starts only when every acceptance line has a Check.
The PRD next to it
docs/prd/DS-142-webhook-retry.md lists what must be true when the ticket is done, each line with the check that proves it.
- Line 1: WHEN no 2xx answer THE SYSTEM SHALL retry up to 8 times (check:
npm test -- webhook). - Line 2: the wait never exceeds 30 s.
- Four more lines follow, each with its check.
Each PRD line becomes a task on the board (Goal convergence).
PRD template
File docs/prd/<ticket>-<slug>.md, one page. Sections: Status, Owner, Decisions (the ADRs that bind it), Problem, Users, Scope (the paths the agent may edit), Acceptance checks, Out of scope, Open questions.
- Each acceptance check is one behaviour in one fixed sentence shape: WHEN a condition, THE SYSTEM SHALL a result (the EARS form, plain enough that a tester can check it).
- It ends with the Check that proves it: a command, a test or a query.
- A line with no Check is rewritten before work starts.
- The agent writes each open question with its recommended answer and the rejected option; the owner accepts or changes it, and an answer that sets a rule becomes an ADR.
An open question names an owner and the line it blocks. The agent stops on that line and asks; it does not guess.
ADR template
File docs/adr/NNNN-<slug>.md, next unused number, never reused. Sections: Status (proposed, accepted, rejected, deprecated, superseded by ADR-NNNN), Decided by, Context, Decision, Options considered, Consequences, Confirmation.
- Confirmation is required: it is the test or review question that shows the code still follows the decision.
- An accepted ADR changes only its status line.
- Reversing a decision adds a new ADR and marks the old one superseded.
How agents follow it
The repository rules file carries four lines:
- Read the PRD and every accepted ADR before editing.
- Work only on files in the PRD's Scope.
- If a change contradicts an accepted ADR, stop and report the ADR number and the conflicting line.
- An answer from a person that sets a rule becomes a new ADR in the same pull request.
- Each acceptance check becomes a task on the board (DS-142 gives six); the goal closes when all six pass together.
- A separate reviewer agent checks the diff against the PRD (Checks, Scope, Out of scope) and each ADR's Confirmation.
- A person still merges.
Where it fits in the AI-SDLC
- Choose the delivery process (Discovery and analysis) records the choice as the first ADR.
- Set up the delivery process (Implementation) puts both templates in docs/prd and docs/adr and adds the rules file lines and the reviewer check.
- Each roadmap task then starts as a PRD.
Before the agent touches your branches, permissions set what it may change.
Agent permissions keep merges with your people
Agents cannot merge, land protected-path edits or close tickets alone.
Agents act on your code, but your people still own every merge.
You prepareYour protected paths and who may approve a merge.
We deliverAgent permissions set in branch protection, code owners and scripts that run around each agent step.
config/prod.yaml, asks to mergeown sandbox, no production keysExample: ticket DS-142, a cloud agent edits a protected deploy file and asks to merge. Laptops running agents get no production keys either
The merge is refused until the code owner approves
Client cases, anonymised (our measurement), and public reports
Test-automation SaaS company, ticket agent.
- The agent posted the same failure into one ticket three times and kept going.
- The written "stop after three failures" rule never fired.
- Fix: one failure counter per ticket, and dispatch stops when daily use passes a set limit.
Enterprise device maker.
- Agents could drift in quality and cost.
- Fix: three failures call a person.
- An agent never merges or approves its own work.
- Roll back when cost passes 150% of budget.
- Stop when complexity grows 40%.
- These limits are a design, not a measured result.
Cloud services provider.
- An agent fixing a bug rebuilt a live environment and caused a 13-hour outage of one service (press report; the company calls it user error).
- Fix: a person approves before any production change.
The permissions
- Merge: an agent never merges or approves its own pull request.
- Push: an agent commits only to its own branch; a person or a named service account opens the pull request under branch protection.
- Protected paths: CI workflows, lint, test, scanner and coverage config, infrastructure, secrets and payment code need the code owner's approval; gate config also needs the platform owner.
- Tickets: an agent attaches the passing check's output; a person closes the ticket.
- Priority: only a person raises a ticket's priority.
- Git: no force push or history rewrite on shared branches.
- Safety: back up or commit untracked work before an agent edits it; agents never print secrets in logs or diagnostics.
- Failures: after three failed attempts the agent stops and calls a person.
- Budget: the agent stops when its spend passes the set limit.
- Riskiest code: changes to login, cryptography and billing need reviews from two people.
Untrusted input. Ticket text, pull request descriptions, comments and dependency files can carry hidden instructions.
- The agent that reads them holds no secrets.
- It writes only to its own branch.
- Pull requests from forks are reviewed without secrets.
Sources: OWASP LLM01, GitHub Security Lab: preventing pwn requests.
The platform team owns the permission file; an engineer's local settings cannot widen it.
A rule is text the agent reads and can work around, so the hard limits sit in its environment: many cloud agents run at once, each task in its own sandbox (an isolated machine or worktree) that holds no production keys, and laptops running agents get none either and reach only approved hosts, and it never merges on its own.
Example: the orchestrator Cezar of Open Mercato (open-source project) runs each task in its own worktree; its README says "Nothing merges on its own" (README).
Permissions set what the agent may do; routing sets which model does each step.
Model routing: lower cost, fallback on failure
Routine steps go to a small model; errors fall to the next.
Cheap models take routine steps, and a failure moves the step to the next model on your list.
You prepareYour AI tasks and the providers you allow.
We deliverA router (OpenRouter is a replaceable default) with model order, fallbacks and caps.
Model ruleOne task-to-model list: a small model for routine steps, the strong model only for steps the list names; every choice and stand-in is logged.
Example: one provider rate-limits and the pipeline stops
The problem
A strong model on every step overpays for easy work; a single provider that goes down or rate-limits stops the pipeline.
How the router works
- Model choice. The task-to-model list below; each task has a priority list of models.
- Fallbacks. On errors, rate limits, context-length limits or downtime the next model on the list answers (OpenRouter fallbacks).
- Provider rules. Order, price, throughput or latency, a price ceiling, and a no-data-retention requirement (OpenRouter provider selection).
- Cost caps. A spend limit per key and per team, with alerts before the cap is reached.
The task-to-model list
One list sets which model does each step; Model routing and Multi-agent follow the same list.
- Routine steps (summaries, formatting, ticket drafts): a small model.
- Writing the change: the main model.
- Critical review and cross-review: the strong model; cross-review uses another vendor's model.
- Any other step uses the strong model only when the list is changed to name it; nothing is upgraded on the fly.
- Logged: every answer records the model that gave it; a stand-in model is flagged, and strict mode refuses it on a check.
Your team edits the list; cost per change per model shows where to move work.
Sourced behaviour
By default the router sends most traffic to cheaper providers, and a provider with an outage in the last 30 seconds goes to the back of the line (OpenRouter).
Lesson. With your own provider key, keep the request pinned to that provider: a fallback to a paid route needs credit on the router account, and without it the call is refused.
Where it sits in the AI-SDLC
- Implementation: the router and the model list per task go into your agent setup.
- Measure and hand over: Cost per change per model shows where to move work; your team edits the list.
Routing swaps models inside one tool; a whole tool can also hit its usage limit.
When one AI tool hits its usage limit, another takes over
When one AI tool stops at its usage limit, work continues on another; the switch is logged.
Your team's agent work does not wait for one tool's limit to reset.
You prepareAccounts for the AI tools you allow.
We deliverFallback chains and a log of which model answered.
Example: a usage limit on one tool stops the work
The problem
One vendor, one agent, one point of failure: a usage limit stops the work.
How the agents split the work
- Claude does the main work in the repository (Claude Code subagents).
- An approved second tool under your own account continues when Claude reaches its limit, tested and logged before you rely on it. Codex and Gemini are examples, not dependencies (Codex CLI, Gemini CLI); a vendor can withdraw a tool at short notice, so no step depends on one.
- Fallback chains. A usage limit on one tool falls to the next instead of stopping work.
The task-to-model list
One list sets which model does each step; Model routing and Multi-agent follow the same list.
- Routine steps (summaries, formatting, ticket drafts): a small model.
- Writing the change: the main model.
- Critical review and cross-review: the strong model; cross-review uses another vendor's model.
- Any other step uses the strong model only when the list is changed to name it; nothing is upgraded on the fly.
- Logged: every answer records the model that gave it; a stand-in model is flagged, and strict mode refuses it on a check.
Your team edits the list; cost per change per model shows where to move work.
Lesson: the silent fallback
- Problem: a usage limit on Codex silently fell through to Gemini, so one model answered both "independent" checks.
- Fix: every answer is logged with the model that gave it; a substitution is flagged, and strict mode refuses it.
Where it sits in the AI-SDLC
Implementation: fallback chains and the model log go into your agent setup. Measure and hand over: the log shows which model answered each check, and your team owns the chains.
The change is built; the first check comes from an agent that did not build it.
A separate agent verifies each change before it is done
Whoever builds the change does not sign it off.
No agent marks its own work done.
You prepareOne scoped task with a written acceptance check.
We deliverAn implementer agent and a separate reviewer agent.
Example: an agent marks unfinished work done; you write what done meansOne agent makes the changeAnother agent checks it and files numbered problemsThe implementer must answer each problemDone only when the reviewer verifies every number
The reviewer reopens problem 2; the implementer cannot close it alone
Step 1 of 4 in the review order →
How it works
- Why a command
- The implementer runs it and sees the problem; without it, AI judges reject under 25% of invalid output
- No command: marked judgement, cites a rule or ADR, a person decides, it cannot block
- Why three rounds
- Five rounds of "improve this code" raised critical flaws 37.6%
- Rules
- The tool refuses a round where implementer and reviewer are the same agent
- Extra work the implementer spots goes to the reviewer as a numbered question; the reviewer rules on it
Where it fits in the AI-SDLC
Implementation. Each change in the pilot is built by one agent and checked by another before a person approves it, so the before/after in Measure and hand over counts verified work only.
Result
In a test on research findings: an automatic check accepted 22 findings once each carried its source reference; the reviewer read 6 by hand and found none supported by its source. The check alone would have shipped all 22.
- A separate reviewer asked why a function silently returned an empty result when a required input was missing.
When it does not help
A reviewer copied from the implementer's session shares its blind spots. With one actor only, the substitute is a review by a different model.
A reviewer on the same model shares the implementer's blind spots.
A second model reviews the first model's change
A different model reviews it; a record shows which one answered.
A second model catches what the first one misses before a person reviews.
You prepareThe change and your rules file.
We deliverReviews by a second model family, findings compared; run on your laptop, or automatically on pull requests from a cloud agent.
Example: the author model misses a camelCase/snake_case mismatchThe reviewer gets the change and the rules, not the reasoningA model from another family reads it freshA record shows which model answered, and flags when another model stood inThe second model flags the mismatch; findings side by side
Two ways it runs
The second model finds the name mismatch the tests missed
Step 2 of 4 in the review order →
How it works
Two modes: on your laptop you type the command before you push; on pull requests a cloud agent starts it automatically and flags mismatches for a person.
One command sends a review, diagnosis or research task to another model family: Gemini, Codex or OpenRouter models.
The reviewer sees only the change and the project rules, not the author's reasoning.
A record names the model that actually answered and flags a substitution.
Naming and style run in the linter first (ESLint camelcase, Ruff pep8-naming); the second model gets what linters cannot see.
Findings from both models are combined; only a finding backed by a failing test, command or scanner line can block.
Where it fits in the AI-SDLC
Implementation. Every pilot change gets a second-model review before a person approves it; findings feed the Code Review area.
Result
Enterprise device maker. A second model caught a camelCase/snake_case mismatch the author model missed.
- A model reviewing its own output reads about 70% less before editing; we review with a second model instead.
- Combining several models raised false-alarm removal from 62.5% to 78.9% on a benchmark, but only from 33.85% to 38.46% on real code, so the real-code gain is small (arXiv 2506.16899).
- Combining the results of several review runs raised the F1 score (a mix of missed and false findings) by up to 43.67% (arXiv 2509.01494).
When it does not help
- A silent stand-in: the same model answering twice is not a cross-check.
- Unchecked answers once produced five confident findings about code that did not exist.
- The record of which model answered, and a check of the examined lines, catch this.
The AI review is done; what is left is deciding which changes a person reads (review order).
Six tool-backed checks keep code quality before a person reads the change; risky changes also need the code owner
Pull request cycle time fell 30.8% in a year of AI code review at Atlassian (vendor paper, arXiv 2601.01129).
As agents write more, the risk label decides who reads which lines, so your people read closely where a mistake costs most.
You prepareYour existing review checklist and folder owners, if you have them.
We deliverThe six checks below on every pull request, each blocking once calibrated; risk labels; risky changes go to the code owner.
- Review budget
- Flagged or large change
- 10-minute walkthrough by its author: branch, commit, what to read first
- Approval carries a written comment
Pull request cycle time, Atlassian (vendor paper)
Before the AI reviewer.
An AI reviewer comments first; 38.7% of its comments led to a code change.
Where the review runs
Then a person reads what no tool judges: design (the simplest that works, no over-engineering), intent, names, and whether each test fails when the code breaks (Google).
Checks before a person reads
- 1 Build, types, lint: fails the check when: any build or type error; a new lint error
- 2 Code rules: fails the check when: a new function, or one this change raised, over 15 in cognitive complexity (new code only, as in SonarQube); function over 50 lines or 5 parameters; over 3% new lines copied; new dead code or unused package; an import across a layer; a broken team design rule
- 3 Tests: fails the check when: changed lines under 80% tested; changed files' mutation score below last night's, or a mandatory planted bug open (Google)
- 4 Security: fails the check when: new high or critical finding; a secret; a vulnerable, missing or newly registered package
- 5 AI review: fails the check when: the finding quotes the line and a command or failing test proves the bug; otherwise it is "judgement" and cannot block
- 6 Low noise: fails the check when: over 400 changed lines; files outside the ticket
Client cases, anonymised (our measurement), and public reports
Five-person cloud-cost consultancy (several changes at once).
- 60 pull requests were open, two days of review for five people.
- Fix: a script labels changes that touch the public API, login, the design system, the database schema or agent skills; only those need a person.
- Shown for the queue effect; in our package a person still approves every product change.
- Lint rules, an 85% coverage floor and end-to-end tests came at the same time.
- Merged pull requests rose from 80 to 154 a week (self-reported).
European fashion e-commerce platform. Low-risk pull requests queued behind risky ones. A review bot handles the low-risk third (33%); their lead time is 20% to 40% shorter than that of all pull requests. In our package a person still approves every product change.
Test-automation SaaS company, review bot.
- 46 bot comments were 28 distinct findings, and half cited the wrong line.
- Fix: a gate drops a finding whose quoted code is not at the cited line.
Enterprise device maker.
- Four review layers (domain, tests, architecture, good practice) caught three runtime bugs in a 121-file pull request before merge.
- A design touching over 20 files gets a plan that splits it into ordered pull requests.
- Review comments are questions, one concern each, placed inline on the code line.
Review budget
Set before agents start writing: defect finding drops beyond about 400 lines and after about 60 minutes (SmartBear). Without a budget, agent output piles up unread and approvals become a formality.
- Pull request size
- At most 400 changed lines
- Bigger: split, never waved through
- Review session
- 60 minutes
- Open reviews
- Capped per reviewer
- Who opens and merges
- The agent commits to its own branch
- A person or a named service account opens the pull request under branch protection
- A person approves the merge
Why each check, measured
- Tests at 100% coverage caught 4% of planted bugs: diff coverage needs a mutation score beside it (arXiv 2506.02954).
- AI co-written pull requests drew 1.7x the review findings: 10.83 against 6.45 per pull request (CodeRabbit, vendor).
- Model judges accept over 96% of valid output and reject under 25% of invalid output: an AI finding needs a command that shows it (arXiv 2510.11822).
- Merging several AI review runs raised F1 (found bugs against false alarms) by up to 43.67% (arXiv 2509.01494).
- 5.2% (commercial models) to 21.7% (open models) of package names were invented (arXiv 2406.10279).
- Critical flaws rose 37.6% after five rounds of "improve this code" (arXiv 2506.11022).
- AI triage removed 34% to 38% of scanner false alarms on real code (arXiv 2506.16899).
AI review rules
- Starts after checks 1 to 4 pass, reads their output, never repeats them.
- Two or more runs from different model families, because a model rates its own kind of output higher (arXiv 2410.21819); the union of findings is kept.
- CI runs the AI review on the pull request's latest commit, signs the output with the commit id using GitHub artifact attestations, and the summary check fails without it.
- Each finding carries a command or failing test that shows it; without one it is marked "judgement" and cannot block alone.
- An AI check blocks only after 90% precision and 60% recall on 30 past changes, labelled by two people (agreement measured) and not used to tune it (held out); until then it warns. Five bots scored 64% to 96% precision (Signal65, vendor-commissioned).
- Risk label high: the change touches login, payments, data migrations, CI settings, dependency files or a code-owner path, or carries a scanner finding or a new package; the code owner approves.
Methods and tools
- Types: TypeScript strict, mypy, pyright.
- Linters: ESLint (max-lines-per-function), Ruff (too-many-arguments), golangci-lint.
- Cognitive complexity: SonarQube rule S3776, default limit 15 (method, why 15).; Biome noExcessiveCognitiveComplexity for JS/TS, fast in
biome ci. - Quality gate on new code: SonarQube quality gates, duplicated lines on new code at most 3%.
- Duplication: jscpd, PMD CPD.
- Dead code, unused packages: knip (JavaScript, TypeScript), vulture (Python).
- Layers and module boundaries: ArchUnit (Java), dependency-cruiser (JavaScript), import-linter (Python).
- Team design rules as code: Semgrep, ast-grep.
- Tests on changed lines: diff-cover; mutation testing with Stryker, PIT, mutmut.
- Security: CodeQL, Semgrep, gitleaks, GitHub dependency review, OSV-Scanner, package age and origin on deps.dev.
- Size and noise: Danger fails a pull request over the size limit or touching files outside the ticket.
Thresholds are starting values, set with you; the gate table is in Quality gates.
Try the change first
Where the team has preview environments, a change to a screen or an API opens one, and the reviewer uses it before reading the code.
Numbers to expect
About half of agent patches that pass the tests would still not be merged by a maintainer; the maintainer merge rate is 24.2 points below the automated score (METR).
In a year-long deployment of AI code review, cycle time fell 30.8% and 38.70% of review comments were acted on (arXiv 2601.01129). Expect less waiting, not every comment fixed.
Industry
AI-written pull requests wait about 16 hours for a first review, against about 200 minutes for others, across 8.1 million pull requests (LinearB 2026, vendor).
Open Mercato (open-source project) says "100% of code is generated by coding agents" (HIRING.md); people still own the architecture, the specs and every merge, and an audit of it found 16 high-severity flaws.
Review reads the code; tests prove it works.
We keep agent code reliable: tests proven by planted bugs (mutation testing) catch agent bugs
Planted bugs check each test before code reaches main.
We keep code quality as speed grows: agent code ships only past tests proven to catch real bugs.
You prepareYour test suite and read access to CI.
We deliverMissing tests from your acceptance checks, each proven by a planted bug.
- Mutation score
- Changed files score below last night's run on main (as for coverage: Codecov)
- A surviving planted bug the reviewer made mandatory (Google)
- Coverage
- Under 80% of changed lines covered, the SonarQube new-code default
- New test
- Already passes on the merge base
qty > 10 → qty >= 10Example: all 12 tests pass on code broken on purposedemo
How the mutation score is run
Client cases, anonymised (our measurement), and public reports
Search and cloud company, bug-fixing agent.
- For machine-reported bugs, 73% of agent patches passed the tests, but only 43% were correct when checked by hand (25.6% and 17.9% for human-reported bugs).
- Fix: validate a patch before showing it and hold back the ones unlikely to be accepted.
- Validation and holding patches back raised usable results by up to 29 points in the published paper (39 in the preprint).
Internal AI-tooling team.
- One check run returned 15 tidy verdicts, 11 of them wrong, while every check passed.
- Fix: each test must fail on a planted bug before its result is trusted.
Ride-hailing and delivery platform. Generated tests worked for 80% of Python code but 20% of Java. Fix: measure per language, not one headline rate.
Fixing a bug: test first
Incident tests go through the same before/after run.
Tests cannot be weakened
- The gate fails on a new skip, only or xfail marker (no-focused-tests, pytest --strict-markers).
- It fails on a snapshot rewritten in CI (jest --ci) and on fewer tests than the merge base.
- Deleting a test file needs the code owner.
- Parsers, validation and login code get property tests (Hypothesis, fast-check, jqwik) or a bounded fuzz run; any counter-example fails.
Why coverage is not enough
Line coverage of 90% can sit beside tests that catch nothing: a suite can reach 100% coverage and catch only 4% of planted bugs (arXiv 2506.02954). Test strength counts the planted bugs a test catches. The scores in the demo above are demo values, not measurements.
- Where bugs are planted
- Changed, covered lines only, one per line: Google cut the median from 820 to 7 planted bugs per change
- A 10-minute run, the usual CI build limit; over it, "not measured", never "passed"
- Surviving planted bugs
- Each becomes a review comment, at most 7 per file; Google engineers rated 75% useful
- Blocks the merge
- A planted bug the reviewer made mandatory
- Changed files score below last night's run on main (the coverage rule)
- No fixed floor
- None is published; Stryker's 60% only colours the report unless
breakis set - At Facebook over half the planted bugs survived
- Set
breakat your own nightly score
- None is published; Stryker's 60% only colours the report unless
- Coverage gate
- Under 80% of changed lines and branches run by tests
- Total coverage drops
- After a change or an incident
- Agent or harness change: one real end-to-end case runs on the real path
- Production incident: it leaves a test, so the failure cannot return unnoticed
- Each correction: the agent updates one record in an indexed lessons catalog, checked in CI
Social network company: 73% of tests generated for privacy testing were accepted by its engineers in a trial (published 2025).
Tests check behaviour; security scans your code, dependencies, licences and secrets.
Vulnerable packages blocked before merge; newly disclosed flaws fixed as soon as a fix exists
A vulnerable new dependency never merges; once a fix for a new flaw is out, running code gets a tested, approved upgrade, aiming for the same day.
Upgrade speed
The upgrade ships as soon as your release process allows.
More agent changes do not add risk: flawed packages stop at merge, new flaws are patched fast.
You prepareYour scanners, read access to every repository, who may approve a merge, and tests that pass the Testing gate.
We deliverA dependency gate, and an overnight run that turns each new flaw into tested upgrade pull requests.
- Your code
- New high or critical finding
- New package
- Known high or critical flaw
- Licence
- Off the allow list
- Secret
- Any secret
Example: Spring4Shell (CVE-2022-22965) in a new dependency
Example: a new flaw in a shared library, already running in production
The dependency scan blocks the merge until the agent bumps the version
Why it matters
Known-exploited flaws took a median 43 days from detection to full fix; only 26% were fully fixed (Verizon DBIR 2026). Fewer than 1 in 10 dependency flaws can be reached from the application's code (Endor Labs, vendor data), so a reachability check cuts the alerts to the few services that need a fix. We measure your share in Discovery and analysis.
- Reachable or unproven, high or critical
- Blocks the merge
- Proven unreachable
- A ticket due in 30 days
- Medium
- An owner and a due date
- No fixed version yet
- The agent lists the exposed services
- It proposes a temporary block until the fix ships: switch off the feature, change a setting or add a firewall rule
- Why teams welcome it
- Removes an unplanned day of searching and upgrading
- A person still approves
- Reuses your gates, merge line and approvals
- A team that sees it work trusts agents with the next step
- Limits
- Your release process still deploys
- The upgrade is only as safe as your tests (Testing)
- Every fix has a revert (CI on main)
Client cases, anonymised (our measurement), and public reports
Test-automation SaaS company.
- 737 security tickets were open across five projects, the oldest over two years.
- The written rule (no Medium or higher merges) differed from the gate that ran (Critical only).
- Fix: sweep and close done-but-open tickets, triage new reports first, and make the written gate match the one that runs.
Large internet company. 76% of the alarms in a 433-alarm study set were false. A hybrid of model and static analysis removed 94-98% of the false alarms, with recall of 0.75-0.88: some real bugs were filtered out too.
Search and cloud company. An agent that drafts fixes opened 72 security fixes in six months; a person reviewed every one before it landed.
The example
- Spring4Shell: data binding can reach the class loader and let an attacker run code.
- The order controller binds request fields, so the path is reachable.
- The scanner decides; the model explains the finding in the pull request.
AI-generated code failed security tests in 45% of samples across 100+ models (Veracode 2025, vendor).
The EU Cyber Resilience Act sets reporting and vulnerability-handling duties for products with software (European Commission).
Code scan
- CodeQL security-extended or Semgrep runs on every pull request against the merge base.
- A new high or critical finding on changed lines blocks the merge.
- AI triage may lower a finding's rank, never dismiss it: the best model removed about 62.5% of false alarms, not all (arXiv 2506.16899).
Supply chain and release
- Lockfile
- Required; CI installs with
npm cioruv sync --locked
- Required; CI installs with
- New package
- Must exist in its registry and be over 30 days old
- A new install script is flagged
- GitHub Actions
- Not pinned to a commit: the gate fails, as a tag can be moved (GitHub)
- Licences
- Off the allow list or unknown: fails, on every pull request
- The full tree is scanned before each release
- Release
- Ships a CycloneDX or SPDX bill of materials, scanned
- A high or critical flaw with a fix blocks the release
- Carries a build provenance attestation (SLSA Build L2)
- Upgrades
- Patch and minor: one approver after a green gate
- Major: the code owner
- Each ships with its revert
Secret scan
- gitleaks runs as a pre-commit hook in every agent sandbox and in CI; GitHub push protection is on; full history is scanned at onboarding.
- A key in the diff blocks the merge.
- The agent moves the key to an environment variable and rewrites its own unmerged branch, so the key is in no commit.
- The key's owner rotates it within 24 hours.
Tests, scans and simplicity rules help only if a failure blocks the merge.
We keep code quality: seventeen tool-backed gates stop flawed code before merge
Every pull request runs seventeen gates (full table in Details). Ten block from day one; seven warn first and block once false alarms are rare.
Agents can write more code because the gates stop a change before merge when tests or scans fail, or when it adds complex, copied or unused code.
You prepareRepository read access and CI settings.
We deliverThe gate table set up in your CI to keep agent-written code within the quality thresholds agreed with you, and a weekly blocked-change report.
Example: the agent's pull request adds a package that does not existSecurity gate blocks the mergeAgent removes the package, the gate reruns and passesComplexity at most 15, duplication under 3%, no layer crossed86% of changed lines tested; the floor is 80%Merged after the block; the invented package never shipped
The security check blocks the merge until the agent drops the invented package
Gate table
- Build and types: fails when: any error; starts as: block from day one
- Linter: fails when: one new error; starts as: block from day one
- Cognitive complexity: fails when: new function, or one this change raised, over 15 (new code only, as in SonarQube); starts as: warn first
- Duplication: fails when: over 3% of new production lines copied; test files reported apart; starts as: warn first
- Architecture rules: fails when: one forbidden import; starts as: warn first
- Dead code: fails when: the change adds any; starts as: warn first
- Diff coverage: fails when: under 80% covered; starts as: warn first
- Mutation score on changed lines: fails when: changed files score below last night's main run (as for coverage), or a mandatory survivor is open; over 10 minutes: measured nightly, a warning on the pull request, not a skip: "not measured", never "passed"; starts as: warn first
- Code security: fails when: new critical or high finding; starts as: block from day one
- Secrets: fails when: any secret; starts as: block from day one
- Vulnerable dependency: fails when: high or critical flaw; starts as: block from day one
- New package: fails when: name missing (invented), under 30 days old, or unreviewed; starts as: block from day one
- Licence: fails when: not on the allow list; starts as: block from day one
- Findings per AI round: fails when: any count rises, or a fourth round starts (arXiv 2506.11022); starts as: block from day one
- Tests not weakened: fails when: fewer tests, a new skip, or a snapshot rewritten without the code owner; starts as: block from day one
- Gate config protected: fails when: edited by an agent, a gate rule switched off, or edited by a person without the platform owner; starts as: block from day one
- Pull request size: fails when: over 400 changed lines; starts as: warn first
Thresholds are starting values, set with you. A warn-first gate reports on the pull request and blocks once false alarms are rare.
Client cases, anonymised (our measurement), and public reports
Enterprise device maker, scanner evaluation software.
- A misspelt prediction key scored every barcode dataset at zero.
- Fix: one gate command (lint, tests, coverage, security, branch name, title) runs before a pull request opens.
- A person approves design, code and merge.
- On that ticket the gate passed 997 tests at 93% coverage before a person saw the pull request.
Same company, agent pull requests. The agent's pull request runs the same gate as a person's, on every push, so nothing passes only on a laptop.
Search and cloud company, code migration. A migration of 5,359 files over three months: machine checks decided what passed, and 87% of the AI-written code landed unchanged.
Prove the checker
A gate is only as good as the check behind it. Four habits prove an AI check before it may block a merge:
- Calibration. The check grades a sample a person also grades. An AI check blocks only after 90% precision and 60% recall on 30 past changes, labelled by two people (agreement measured) and not used to tune it (held out); until then it warns. On code, model judges accept over 96% of valid output and reject under 25% of invalid output (arXiv 2510.11822).
- Replay tickets. Past defects from the domain expert rerun before a rule, prompt or model changes; the change waits until they pass (Anthropic on agent evals).
- Pre-flight. Tool servers, model endpoints and judges are checked before a run, and the AI reviewer must find one planted bug, so a reviewer that stopped catching bugs grades nothing (planted bugs, Google); an unready tool stops the run and is not counted as an agent failure.
- Model version log. Every answer records the model that gave it, so a silent model change shows (OpenTelemetry GenAI conventions).
Security gates, set-up
- Code scan: CodeQL with the security-extended queries, plus Semgrep rules for your own security rules; new critical or high fails.
- Secrets: gitleaks on every pull request and as a laptop pre-commit hook; any hit fails and the secret is rotated.
- Dependencies: dependency review action with fail-on-severity high and a licence allow list; OSV-Scanner for lock files outside GitHub.
- Invented packages: each new name is looked up in its registry and on deps.dev; missing or under 30 days old fails. Models invent 5.2% to 21.7% of package names (arXiv 2406.10279).
- Findings per round: scanner counts are kept per agent iteration; a rise fails. Critical flaws rose 37.6% after five "improve" rounds (arXiv 2506.11022).
Methods and tools
- Gate engine: SonarQube quality gates on new code; GitHub rulesets make each check required.
- Cognitive complexity: SonarQube rule S3776, limit 15 (method, why 15).; Biome noExcessiveCognitiveComplexity for JS/TS, fast in
biome ci. - Duplication: jscpd, PMD CPD.
- Architecture: ArchUnit, dependency-cruiser, import-linter; team design rules in Semgrep or ast-grep.
- Dead code: knip, vulture.
- Tests: diff-cover; Stryker, PIT, mutmut. Tests at 100% coverage caught 4% of planted bugs (arXiv 2506.02954).
- Security: CodeQL, gitleaks, GitHub dependency review, OSV-Scanner.
- Size: Danger.
A change can pass every gate and still break against what others merged meanwhile.
We keep main green: each change retested on the latest main; a repair agent fixes breaks
Changes wait in a merge queue and are tested one by one on the latest main.
Many agent changes merge in parallel without breaking main for the rest of the team.
You prepareYour CI pipeline and branch rules.
We deliverA merge queue; each red build fixed by pull request.
- Repair pull request
- Passes every gate
- Deletes assertions
- Skips tests
- Edits test, lint or gate config
- Flaky test
- No automatic rerun
- Fails and passes on one commit: quarantined
- An owner has 14 days
- Then fails the gate
Example: a dependency bump turns main reddemo
Client cases, anonymised (our measurement), and public reports
Test-automation SaaS company.
- CI broke the same few ways after each platform migration, and each team rediscovered the fix alone.
- Fix: a red pipeline is matched to a break already fixed elsewhere, and the same fix arrives as a pull request.
Same company, reverts. One team reverted three dependency bumps from production in three months. Fix: every break lands as a pull request with its own revert.
Ride-hailing and delivery platform. An agent reads the failed job and opens the fix; a person reviews it.
The rule
The repair agent starts read-only: it explains each failed build on the pull request and flags flaky tests (Google on flaky tests). It starts fixing once its explanations prove right.
Each break is fixed by a new pull request, never by a direct push. The 90% main-branch success threshold is checked on your own pipeline.
Industry: 70.8% main-branch success in 2026 and 72 minutes to get back to green (CircleCI 2026, vendor).
After the merge comes the release; later, someone must show what shipped and who approved it.
Every agent change traced to approval and release
Each release is written on its ticket, with pull request and approver.
Every agent change stays accountable: you can show what shipped and who approved it.
You prepareTicket ids in branch names and folder owners.
We deliverA trace per ticket: a cloud agent picks it up from Jira and commits to its own branch; a named service account opens the pull request; then approval, release and a live check of the released service (Google SRE).
Example: 99.3% of finished tickets at one client had no release link
The ticket ends with its plan, pull request, approver and release on one record
Client case, anonymised (our measurement)
Test-automation SaaS company.
- Of 5,297 resolved tickets, 38 (0.7%) carried a release version, so nobody could show what a customer received, agent-built changes included.
- Fix: the deploy pipeline writes the version onto the ticket.
Same company, agent register. Two agents running in production had no register entry. Fix: each agent gets a name, a budget and an owner.
Enterprise device maker. Every agent pull request carries its ticket in the branch and title, an ai-assisted label and a named approver, checked before the pull request opens.
The audit trace
- Kept per agent actionTicket idAgent and model nameTimeCommand or file changedResultApproverPull requestRelease version
- Agreed with your audit team in Phase 1
- How long records are kept
- How tampering is detected
- Export format, to fit the tools you already audit with
- Set up in every case
- The log sits where agents cannot write or delete
- What the trace gives you
- Compliance: who approved each change, on record
- Debugging: replay the agent steps, files changed and approvals to find the cause
Every stage so far runs agents; their bill needs a number per change.
Agent cost tracked per change, with a cap and alerts
Cost per change on your board, with a cap; alerts fire before the cap is reached.
Agent spend stays a known number per change, so scaling agents is a budget decision.
You prepareYour agent usage export and who owns the budget.
We deliverLevers chosen from your usage export, Cost per change on your board.
Example: agent requests grew 9.4x in six months at one platform
Client cases, anonymised (our measurement), and public reports
Ride-hailing and delivery platform.
- Weekly users grew 7x and agent requests 9.4x.
- Fix: automatic compaction, medium reasoning effort by default, a one-hour prompt cache.
- Live session cost in the terminal; alerts at 50/80/100% of expected spend.
- With the model held fixed, cost per session fell 52% from its peak.
Same platform, tool calls. Each tool call cost one model round trip. Running batched scripts instead cut tokens by 55% to nearly 100% per query in a five-query test (the article says more than 50%).
Test-automation SaaS company.
- One unwatched agent session cost about twice the whole matching backlog in a day.
- A shared monthly budget drained in days with nobody told.
- Fix: a hard cap per agent account, with warnings before it.
The levers
- Prompt caching and short sessions: see Token savings.
- Batch processing: about half price for work that can wait.
- Model routing: a smaller model for easy steps, checked on your coding tasks first; public chat, knowledge and maths tests showed 35% to 85% lower cost at 95% of the large model's quality (RouteLLM).
- Open-weight models: no per-request fee; code stays in your network, and you pay for the hardware.
- Context control: less for the model to read.
- Team budgets: caps heavy users, with alerts before the cap.
Detail: Token savings (session and cache rules) and Model routing (model choice and fallbacks).
Once cost is measured, the biggest lever is fewer tokens per session.
Caching and short sessions lower agent cost
Caching cut cost 41-80% over 500+ agent sessions (external benchmark).
Agent cost per change falls, so more of your work can run through agents.
You prepareYour agent usage export and one typical working day.
We deliverSession and cache rules, Cost per change tracked.
Example: a long session re-reads every earlier turn on each call
Why the bill grows
- Each call re-sends the whole conversation, so a long session re-reads every earlier turn.
- A pause longer than the cache lifetime throws the cached part away; it is paid again at full price.
The four rules
- Stable prompt first. Tools and rules first, the changing part last, tool results kept out of cached blocks (arXiv 2601.06007).
- One task, one session. Clear the context between tasks instead of carrying it (Claude Code costs).
- Handover note. The agent writes what is done and what is next; a fresh session reads the note, not the transcript.
- Cache lifetime fits pauses. A ride-hailing platform moved from a 5-minute to a 1-hour cache because idle gaps kept discarding it. Short sub-agent tasks kept 5 minutes (engineering blog).
Model choice and batch: Model routing and AI cost levers.
Sourced results
Published study. Caching cut cost 41% to 80% over 500+ agent sessions on four models (arXiv 2601.06007).
Security-tooling company. Static prompt on a 1-hour cache, conversation on a sliding window: cache hit rate rose from 7% to 84%, savings 59%, then 66%, then 70%.
Caution. Caching everything, tool results included, sometimes slowed execution.
Where it sits in the AI-SDLC
Implementation: session, handover and cache rules go into your agent setup. Measure and hand over: Cost per change shows the effect, and your team owns the rules file.
Long agent reports cost tokens and your reading time.
Shorter AI reports, checked against the original
Shorter agent reports that keep every fact: numbers, names and rules are checked against the original.
Your team reads less agent output without losing the facts it needs.
You prepareOne long report your team has to act on.
We deliverThe short version, the original kept, a lost-detail check.
Example: an agent report longer than its length targetRepeats, filler and hedges are markedEach section is cut to its word targetEvery number, path and rule is checked against the originalThe reader gets the short version first
The fact check finds one lost number and puts it back
How it works
A script finds the padding; agents rewrite one section at a time.
Rules are split across specialist checks, because one agent holding 35 rules applies about four.
A check compares numbers, paths, identifiers and rules with the original and keeps the original until you confirm.
Where it fits in the AI-SDLC
Measure and hand over. The Discovery and analysis report, the roadmap and the before/after report reach your leads shortened to the target length.
Result
Runs land at 1.11 to 1.27 times the target length across 16 samples and four model backends; a second pass removes only 0% to 11% more (mean 6%, nine samples).
When it does not help
A document with under 5% padding: three runs on one 8,545-word log removed 3.3%, 0.6% and 0.3%.
Tool
Self-check: find which of 16 AI-SDLC areas holds your delivery back
You get, as you answer: a level per area, the area where agent work waits today, and the first change that gets it moving.
In 10 minutes you see where agents would help your delivery first.
You prepareOne tech lead, about 10 minutes: yes or no to 48 statements about what the team does today.
We deliverA report (PDF or link) with the first change for each weak area and the number it should move; it opens the discovery workshop.
- New tickets carry an acceptance check a person can run
- Team knowledge agents need is written in a repository they read
- An AI pre-review comments on every pull request before a person looks
- CI runs the tests on every pull request
- Code Review L2: A written rule says which changes need a person's review
- Code Review L3: An AI pre-review comments on every pull request before a person looks
- Then Testing and Security
- AI pre-reviews every change; a person approves each one, and the risk label decides who reads which lines.
- Example team: review wait 16 h to 12 h (example numbers)
The weakest area is the first topic of the discovery workshop and the first change of Phase 2.
Start the self-check: 10 minutes →The story, step by step
- To find which area holds AI work back, you answer yes or no to 48 statements in 16 delivery areas in about 10 minutes; the answers stay in your browser.
- Each area gets a level from L1 Ad hoc to L4 Optimised.
- The lowest area is named, with the reason AI work stops there. In the example, Code Review is at L1: agents write changes faster than people review them, so AI work waits before release.
- The report names the next fix for the lowest area and the matching plan: Phase 1, Discovery and analysis, or the AI-SDLC Package when several areas are below L3.
- The lowest area becomes the first topic of the discovery workshop and the first item of the roadmap.
How it connects to the AI-SDLC
What stays private
Answers are kept in the page address and never sent. Copy the snapshot link to share the result with your team or bring it to the discovery workshop.
Your AI-SDLC maturity report, lowest area first
Gap to the next level
Next steps, lowest area first
Start your AI-SDLC with Discovery and analysis
In 1-2 weeks: a baseline, a chosen delivery process, a roadmap.
You prepareOne call and read-only access.
We deliverPhase 1, Discovery and analysis.
Start the AI-SDLC with Phase 1, or run all three phases with us.
Phase 1 has a fixed scope and duration; Phases 2-3 are sized from its findings. Due diligence is a separate track for a company you invest in or buy.
You start the AI-SDLC small with Phase 1 and commit further only on its findings.
You prepareYour goal, a sponsor, read-only access to tickets, git and CI, and employee-representative agreement on data use. Package: a pilot team, an AI champion, an owner per change.
What each plan needs
Due diligence uses the same read-only analysis as Phase 1.
Data use: in Germany and Austria the works council agrees before week 1; elsewhere, your employee representatives, where you have them. We supply a one-page data note.
Package: the pilot team gives half a day per engineer per sprint, a tech lead is the AI champion, and each change has an owner after we leave.
We deliverPhase 1: a report and roadmap. Package: changes running and measured. Due diligence: a decision report.
- Two workshops and the analysis of your data
- Report and roadmap, baseline of five numbers
- Phase 1, then 2-3 areas (for example code review or testing) set up with one pilot team
- Changes running and tested in your pipeline; the five numbers before and after
- Architecture, code, AI use, team, scalability, risks
- Decision report with red flags and recommendations
Who decides what and when: Who changes what, when · Remote by default · optional onsite days: price on request · Contact →
Discovery and analysis (Phase 1)
- Covers: discovery workshop, analysis of your tickets, git and CI (read-only), maturity workshop on 16 areas, choice of the delivery process.
- You get: report with the weakest area agreed, a roadmap with measurable milestones, the baseline of five numbers (lead time, started tickets that reached release, review wait, change failure rate and cost per change).
- Then you decide: stop with the report, run the roadmap yourselves (remote support optional), or continue with us.
- From us: Marek Koniew, or a collaborator working with him, leads every workshop and builds with the pilot team; every report is checked by a second model family, then by Marek Koniew.
AI-SDLC Package (Phases 1-3)
- Covers: Phase 1; Implementation in 2-3 areas (for example code review or testing) with one pilot team, guardrails first, weekly check-in (4-8 weeks); Measure and hand over.
- You get: report and roadmap, tools and practices fitted to your stack, changes running and tested in the agreed areas, the five numbers before and after, owners for each change.
- Implementation runs with our consultant inside your team, not as a report handed over.
Due diligence (Light or Full)
- Light (~1-2 weeks): architecture and code, for smaller or early-stage companies; a first view and whether Full is needed.
- Full (~2-4 weeks): a decision report with red flags and conditions; architecture, code quality and technical debt, team and its capacity to grow the product, scalability, risks (dependencies, vendor lock-in, IP, open-source licences).
- You get: a decision report with red flags and a recommendation (proceed, proceed with deal conditions, or stop); optional Q&A debrief with the deal team.
- Duration depends on access to the company's repositories and team.
Phase 1 alone, then you decide.
In 1-2 weeks: baseline, weakest area agreed, a roadmap.
You decide on wider agent use with your baseline and roadmap in hand, not on promises.
You prepareThe CTO and 2-3 leads, and read-only access to tickets, git and CI.
We deliverTwo workshops, the analysis of your data, the delivery process chosen for your team and recorded as a decision record (ADR), the report and roadmap.
Price: price on request · continue later with the AI-SDLC Package → · Contact →
All three phases, from discovery to hand over.
Changes merged and tested in 2-3 areas (for example code review or testing), measured before and after.
We take the AI-SDLC from a first measurement to agents running in your pipeline, proven in numbers.
- Your team size and a sponsor
- Read-only access to tickets, git and CI
- One pilot team, with a tech lead as AI champion
- An owner per change after we leave
Pilot team time
The pilot team gives half a day per engineer per sprint.
We deliverA report and roadmap, changes running and measured in your pipeline, and the five numbers before and after.
Price: price on request · Phase 1 alone: Discovery and analysis plan → · Contact →
Our read-only code and delivery analysis, for a company you invest in or buy.
A technical recommendation on the software you invest in or buy.
Light gives a preliminary view of the code, main stack, licences, scan results and AI use; Full adds whether the team and system can carry the business plan.
You prepareLight: read-only repository access and one CTO interview. Full adds ticket, CI, cloud and incident access, and interviews with the leads.
We deliverLight: a first view and whether Full is needed. Full: a decision report with red flags and conditions.
Six choices that shape your plan, each with our recommendation
Each choice has our recommendation and its reason, so the plan fits your team and no more.
Your answers set how far and how fast we take agents into your team.
You prepareA yes, or a change, per choice.
We deliverThe plan you choose, scoped to your answers; the price is on request.
Concepts behind the AI-SDLC
Each concept: its place in the AI-SDLC and how it helps adoption.
Each concept is tied to the AI-SDLC step it supports, so your team knows why it matters.
You prepareThe concept your team questions first.
We deliverThat concept mapped to your repository in Discovery and analysis.
How to read this list
Concepts are grouped by what they do: find where to start, run the work with agents, keep every change safe.
Sources: research and market data, standards, tools and methods, and cases by industry.
Why the AI-SDLC needs a process, not only a tool
Agents speed up writing; the process decides what reaches release.
Faster code writing pays off only when the process carries it to release; we set up that process.
You prepareThe question your board asks about AI in delivery.
We deliverThe number that answers it, its source and where we act on it.
more releases with coding agents, while commits grow far faster. We measure started tickets that reached release, not commits.
NBER w35275 · →of AI-generated code samples failed security tests. We run security checks on every pull request.
Veracode 2025 (vendor) · →Measurement
The METR 2026 re-run was inconclusive.
Adoption: share of work agents already do
- Pragmatic Engineer: How Uber uses AI for development 11% of Uber's pull requests are opened by agents (March 2026).
- Google, Alphabet Q3 2024 earnings remarks More than a quarter of new code is generated by AI, then reviewed by engineers.
- Anthropic: recursive self-improvement More than 80% of merged code was authored by Claude (May 2026).
Release: code written is not code shipped
- DORA 2025: State of AI-assisted Software Development AI amplifies the strengths and weaknesses of the delivery system.
- Sadowski et al.: Modern Code Review at Google A case study of why and how review is done, over 9 million reviewed changes (written before AI coding).
Security: every agent change needs a check before merge
- Spracklen et al.: package hallucinations On average at least 5.2% (commercial) to 21.7% (open-source) of suggested package names were invented.
- Liu et al.: LiCoEval 0.88-2.01% of outputs closely match open-source code.
Measurement: only measured numbers count
- DORA software delivery metrics Lead time, deployment frequency, recovery time, change fail rate, rework rate.
- Forsgren et al.: The SPACE of Developer Productivity Productivity is not one metric.
Cost: predictable as use grows
- Chen, Zaharia, Zou: FrugalGPT A model cascade matches the best single model at much lower cost.
- OWASP LLM10:2025 Unbounded Consumption Quotas and anomaly detection against runaway use.
Research and market data behind each step of the AI-SDLC
Each finding names the AI-SDLC step it supports.
Each AI-SDLC step rests on published evidence, on your baseline, or on a hypothesis we test in the pilot.
You prepareThe claim about AI in delivery your team doubts.
We deliverThe study behind it and the step where we act on it.
How the groups are built
Each line: the source, what it shows for the AI-SDLC, and where we act on it. Vendor reports are marked; preprints are research that is not yet peer-reviewed.
The market group lists analyst and industry sources only.
The standards each AI-SDLC check maps to
Every gate, trace and report names the standard it follows.
Agent work passes the checks your customers and auditors already expect.
You prepareThe standards your customers or auditors ask for.
We deliverEach check mapped to them, in the report and the handover note.
Why standards
A check that cites a standard is easier to approve: security, audit and works-council reviews read a shared vocabulary instead of our own terms.
Some ISO pages block automated readers; their content is confirmed from the standard's public summary.
The tools we set up, by delivery step
Each tool reduces one risk to code quality at one delivery step, from discovery to hand over; we pick only what fits.
We add only the tools each AI-SDLC step needs, on the stack you already run.
You prepareThe tools your team already uses and those you allow.
We deliverTools chosen on your stack, set up in your repositories.
Tool class per step, and the risk it reduces
- Ticket: specifications, against vague tickets.
- Plan: context repository, against guesswork.
- Build: sandboxed agents with a switch-off, against leaked keys and runaway agents.
- Review: AI and human review, against missed defects.
- Merge: quality gates, against flawed merges.
- Every step: prove the checker, against an AI check that is confidently wrong or a silent model change.
- Release: release record, against untraced changes.
- Run: production monitoring, against late incidents.
- Measure: the five numbers and cost per change, against gains claimed but not shown.
How we choose
We start from what your team already runs and add a tool only where a step has no check. Vendor tools are listed for what they do, not as a recommendation. No step depends on one vendor: the fallback is an approved second tool under your own account.
Published cases: one AI-SDLC step at work in each industry
Each case shows one AI-SDLC step running at a named company.
You see each AI-SDLC step working at a real company before you adopt it.
You prepareYour industry and the step your team worries about.
We deliverThe closest published case and how it maps to your team.
About these cases
Each case links its public source; numbers are self-reported. Our own client cases are described by industry; details on request.