Three repositories, five AI agents, one continuous loop: generating tests from requirements, writing automation code from plain English, classifying CI failures, fixing broken locators, and adapting tests when the product changes. Engineers review a PR at the end. They don't do all the work in the middle anymore.
The System at a Glance
Three repos, each with a distinct responsibility. AI Test Studio is the browser interface engineers open. It signs users in, runs the Test Design Agent itself, and proxies the other agent requests to QA Agent Network, the AI backbone running four independent Claude-powered agents. Both read from and write to Jarvis, the Java/Maven automation framework where all generated test code lives.
Six Features. One Closed Loop.
Each feature is a standalone workflow. Together, the output of one stage feeds the next, closing the loop from requirements all the way to verified, self-healing automation that keeps up with the product.
The Closed Loop
CI runs → failures to MySQL → Triaging Agent diagnoses & classifies → Healing Agent fixes stale locators → PR raised → engineer merges → next CI run passes
And when the product itself changes: change note → Adaptation Agent explores and updates the tests → reviewed PR → tests updated before they go red. When healing finds a page that was rebuilt rather than re-labelled, it drafts that change note itself.
Key Numbers
Built for a Team
The Studio is a shared workspace, not a single-user demo. Everyone signs in; new sign-ups wait for an admin's approval. Agent runs that push a PR each get their own isolated git worktree, so several run at once, and a busy server queues the rest fairly, so one person's ten runs can't starve everyone else. Every run is attributed to the person who started it.
An Analytics page shows what the AI work cost and what it saved. Agent cost is exact, reported by the Claude CLI itself, while the Studio's own LLM calls are estimated from a rate card, so the two are shown side by side and never added together. Time saved credits each output with a human-minutes baseline and subtracts the machine's own run time.
The Key Design Insight: CLAUDE.md
Every AI agent reads one file before doing anything: Jarvis/CLAUDE.md, a plain-text conventions file defining every naming rule, class pattern, and DO/DON'T for the Java framework.
Why this matters
Change the framework → update CLAUDE.md → every agent adapts on the next run. No prompt engineering buried in Python scripts. The conventions live in the repo, version-controlled and reviewable alongside the code itself.
What We Learned Building This
A well-maintained conventions file in the target repo is what keeps all agent output aligned with your codebase. Invest here before you invest anywhere else in prompt engineering.
A single model classifying 50 CI failures will make confident mistakes. A second, independent review pass (a separate call with no shared context, then structured debate rounds) catches those mistakes before they reach the report.
When an agent can't finish, it says why. Authoring still raises its PR marked NEEDS-REVIEW with what failed and what Claude tried; healing stops with the diagnosed cause instead of guessing. Engineers fix it in minutes instead of starting blind.
Confirming selectors against the real staging environment before generating code eliminates an entire class of first-run failures. A few minutes in the browser upfront is cheaper than debugging guessed selectors later.
The easiest way to make a failing check pass is to weaken it. So healing diagnoses before it edits, authoring freezes assertions before it fixes, and adaptation checks every edit against a contract frozen before it started.
Fingerprints recorded on green runs let a plain scoring engine propose most locator fixes: offline, provably unique, at no cost. The model is the fallback, not the first resort.
Tech Stack
Explore each feature in depth
All three repos are open source. Each feature has a full deep-dive page covering the implementation, pipeline steps, screenshots, and design decisions.