EUWardenAI SDLC · demo
Walkthrough — step by step

One ticket. From intake to deployment.

Below is the real shape of an AI SDLC run, shown on a single task: PRJ-1042 — audit events on session expiry. Including the moment when verification sends the work back — because that is exactly when you can see the process working. The names are examples; the mechanics are real.

Step 01
Intake
Human — operator

Everything starts with a need expressed in plain human terms — no specification, no jargon. The process assigns it an identifier, and from that moment on every artifact will be linked to PRJ-1042.

PRJ-1042 · new issueJira
Operatorhuman

“The auditor asked whether our logs show the moment a user session expired on its own. Today they don't. We need an audit event on every session expiry — with the reason.”

Step 02
Analysis
Analyst Agent

The Analyst Agent turns the need into verifiable acceptance criteria. The analysis gate lets through only requirements that can be verified.

PRJ-1042 · commentJira
Analyst AgentAI agent

Acceptance criteria:

  • Session expiry (idle timeout) emits the session.expired audit event with reason idle_timeout.
  • Hard expiry (maximum lifetime limit) emits the same event with reason max_lifetime.
  • The event contains: session id, user id, timestamp, reason. No sensitive data.
  • Events are visible in the existing audit stream — no new storage.
ANALYSIS GATE: PASS 8f3c21ab
Step 03
Architecture
Architect Agent

The change is small, but it touches the audit path — so the architect marks it with a security flag: at the end of verification an additional verdict from the Security Agent will be required.

PRJ-1042 · commentJira
Architect AgentAI agent

Decision: we extend the existing audit event emitter with two new event types — no schema changes, no new dependencies. The change touches the audit component → adding the sec-verify-required requirement.

ARCHITECTURE GATE: PASS 8f3c21ab
Step 04
Planning
Developer Agent

Before the first line of code is written, a plan is produced: which files, which tests, what is out of scope. The plan is a contract — if it stops matching reality during the work, the work returns to this stage.

PRJ-1042 · commentJira
Developer AgentAI agent

Plan: 2 production files (audit emitter, session lifecycle handling), 1 test file. Tests: unit tests for both expiry reasons + an audit stream integration test. Out of scope: log retention, export, UI.

PLANNING GATE: PASS 8f3c21ab
Step 05
Development
Developer Agent

Implementation on an isolated branch. The proof of completion is not the agent's claim, but green tests and a PR bound to the exact code revision.

agent terminaltranscript
Step 06
Verification — FAIL
QA Agent

The QA Agent tests the edge cases from the acceptance criteria — and finds a gap: a session extended just before the maximum lifetime limit expires without an audit event. The verdict is pinned to the exact revision and the work returns to development. There is no arguing with the gate.

PRJ-1042 · QA verdictJira
QA AgentAI agent

Scenario: session extended 5 s before reaching the maximum lifetime limit → the session expires via the max_lifetime path, and the audit event is not emitted. Violates criterion 2.

QA VERDICT: FAIL 3e91c4a7 → Return for Rework
Step 07
Fix and re-verification
Developer Agent → QA Agent · Security Agent

The fix lands on the same branch — a new revision is created, so all verdicts must be issued again for the new revision. Old evidence does not carry over. This time: a complete set.

PRJ-1042 · verdicts for revision 9d24f8b1Jira
QA AgentAI agent

All 4 criteria met, including the extension-before-limit scenario. Tests: 218 passing, 0 failing.

QA VERDICT: PASS 9d24f8b1
Security AgentAI agent

Events contain no sensitive data; format consistent with the audit stream; no new dependencies.

SECURITY VERIFICATION GATE: PASS 9d24f8b1

This is the complete evidence bundle the merge gate will see in the next step — every line pinned to the same revision:

evidence bundle · revision 9d24f8b1record
EVIDENCE BUNDLE — PRJ-1042 @ 9d24f8b1 DEVELOPMENT GATE: PASS 9d24f8b1 tests: 218 passed, 0 failed · lint: 0 warnings · build: OK QA VERDICT: PASS 9d24f8b1 acceptance criteria: 4/4 · regression: 218/218 SECURITY VERIFICATION GATE: PASS 9d24f8b1 SAST: 0 high/medium · SCA: 0 known CVEs review: 0 unresolved threads @ 9d24f8b1 CI: 12/12 checks green @ 9d24f8b1 → complete for revision 9d24f8b1 — transition allowed

Every one of those lines follows the same single rule. Let us take it apart:

VERIFICATION GATE: PASS 4f9c2e7a…e3b1 position the line starts with the gate name; a mention mid-sentence does not count verdict first token after the colon; anything else — refusal binding full revision SHA on the same line; the verdict covers one state of the code refusal (fail closed): missing · not PASS · duplicated · contradictory · malformed · unbound to a revision
One line is the whole contract — which is why the gate does not need to "understand" the comment, only read it. Each of the six refusal cases ends in no transition, never in a default pass.
Step 08
Release
Merge gate — machine

The merge is executed exclusively by the gate script — no agent is allowed to merge the PR manually. The script checks the complete evidence set for the exact revision and only then merges.

merge gatetranscript
verify: QA VERDICT PASS @ 9d24f8b1 ..... ok verify: SECURITY GATE PASS @ 9d24f8b1 .. ok verify: CI rollup green @ 9d24f8b1 ..... ok verify: review threads resolved ........ ok RESULT=MERGED PR#481 → main @ 9d24f8b1
Step 09
Acceptance and learning
Human — operator · Learning

The result comes back to the human in the language of the goal, not the technology. Only the operator's acceptance closes the task — and the retrospective turns the return from step 06 into a lasting process improvement.

PRJ-1042 · closureJira
Operatorhuman

“I checked on the environment: expirations are visible in the audit with reasons. The auditor has what they asked for. Accepted.”

Learningprocess

Lesson: “just before the limit” scenarios added to the standing QA checklist for session lifecycle changes.

A verification return is not a process failure — it is the process working. The gap was found by a machine before deployment, fixed within hours, and the knowledge from it stayed in the process. Without gates, the same gap would have surfaced in an audit.

Let's talk Process presentation → Results → Adoption path → Process architecture → Process tools → FAQ →