Achilles is an autonomous quality assurance solution that builds, grows, guards, and repairs web test suites, and records evidence for each result. One sentence starts an eight-phase onboarding pipeline that runs without intermediate confirmations. It runs on Claude Code through a plugin adapter; the skills load on pi as well.
Achilles routes each request to the right working mode. Give it a task in plain English; the harness takes care of the rest.
One command turns a project with zero tests into a fully maintained suite. An eight-phase autonomous pipeline handles scaffolding, journey mapping, coverage expansion, adversarial bug discovery, and delivers a branded stakeholder summary deck.
OnboardingGrows the suite journey by journey, running independent journeys in parallel. Three compositional passes and two adversarial passes add coverage, and each state-changing step is checked against an API or database oracle, not just a toast. Depth mode enforces strict per-journey parallelism for high-stakes audits.
ExpansionProbes the live app fresh — before reading any context — to catch what familiarity blinds you to. Returns a deduplicated bug ledger where each finding carries evidence, ranked by severity and business priority, and tracked through a triage lifecycle — with reproduction tests, IDOR probes, race conditions, and state-skip vulnerabilities.
Bug DiscoveryBatch-clusters failures by shared root cause and heals entire clusters at once — or runs hands-off from a terminal: npm run test:repair baselines the suite, separates flake from deterministic failure, spawns one repair worker per red spec file, and ends with each test green or explained.
On-demand, evidence-first verification of a single flow. Returns a shareable bundle: per-step screenshots, video recording, Playwright trace, HAR file, console log, and a pass/fail summary — ready to drop into any ticket.
CompanionRed-team the LLM features in your app. A three-agent architecture — adversary, target, and judge — tests guardrails, prompt injection resistance, bias detection, and compliance. Produces reproducible adversarial findings.
Agents vs AgentsThe entry point for developers and QA engineers alike: hand it a ticket, a PR, or "test what I just built". It reads the diff for risk, observes the live app for what to assert, runs a negative control to show each test can fail, and delivers a per-ticket evidence bundle. Sign-off is gated on that evidence and on an adversarial review of the testing itself. Each confirmed defect gets a sentinel test.
Shift-LeftLocks the backend surface against drift — status codes, response schemas, error envelopes, critical headers — and asserts persisted state directly in SQL: row counts, cell values, transactions. Persisted mutations are checked against an API or database oracle, because a test that only watches the UI passes when the write regresses.
Contract & DBachilles-mutate proves the suite can fail — injecting the broken state each acceptance criterion forbids and naming the test that owns it. The Achilles reporter tracks flakiness across runs, classifies @known-defect anomalies when tagged tests pass, and archives per-attempt evidence. achilles-show turns any test into watchable mp4 footage for review and sign-off.
The onboarding pipeline runs end-to-end without intermediate confirmations. A fresh reviewer agent gates every phase transition; the adapter keeps the ledger consistent. The agent finishes the phase or surfaces a blocker for human triage.
Development is agentic. Quality assurance must be too. The lifecycle runs in four stages: a human decides what matters, agents do the heavy lifting, harness-gated evidence confirms the result, and agents gate releases and heal the suite.
While a session is active, the gates apply to every tool call the same way. A hook that refuses sign-off without evidence refuses it on the ten-thousandth call as on the first; the operator can switch the adapter off, nothing inside a session can.
Achilles is a harness-neutral QA methodology with a Claude Code adapter: one orchestrator agent, five expert agents, 8 hooks, JSON-Schema return contracts. It outputs Playwright suites you run without the agent.
8 hooks in one TypeScript module run on Claude Code tool calls, agent spawns and turn completions. They deny only what is irreversible: commit bypass flags and AI attribution trailers, k6 run past the ceilings or against production, a defect filed or signed off without a reproducer's verdict, a credential left in a captured artifact, a selector edit that is not one inert attribute. Everything else is advice in the status pane. 6 hand-authored agents (orchestrator, inspector, author, reviewer, reproducer, doc-writer) bound tools and paths; separation of duties is their scope, not a kernel. Factory rules apply only when the project commits an achilles-factory-rules.json.
Probes run before the agent reads context, then findings are risk-weighted by defect likelihood, ranked by severity and business priority, and checked against an oracle stronger than a passing toast.
Tests reference elements by name, not raw selectors. Selectors live in a page repository, and achilles-selector-evidence records live-DOM evidence for an entry. This removes stale-locator flakiness from test code; it does not remove other flake sources.
Schema-bearing dispatches cite a JSON-Schema return contract in the brief, and the return is validated (warn by default, blocking with SCHEMA_RETURN_GUARD=strict). Composer, probe and reviewer returns carry a typed handover envelope.
External CLI drivers invoke Achilles hands-off in CI — regression as a release gate in the go-live pipeline, smoke per pull request, or scheduled runs. The pipeline finishes the phase or surfaces a blocker. Achilles does not host a runner: CI runs on your own infrastructure.
Not just test code. Journey maps, test catalogues, bug ledgers and summary decks, generated from the run.
Version 0.1.8. The limits that remain are listed under "Limits worth knowing" in docs/harness/claude-code.md.
A Claude Code adapter plus plain-markdown skills; pi gets the skills, expert mode and the Bash guards. No hosted runner. No native mobile; viewport emulation only. No runtime self-healing: repair runs offline against a red suite. No published benchmark.
The adapter binds the 5 Achilles agents, never the main session. ACHILLES_DISABLE=1 switches it off for new sessions. Factory rules are opt-in per project. The Bash judge reads one command line, quote-aware, not obfuscated shell.
achilles-mutate, achilles-show, achilles-self-repair, achilles-scenario-lint, achilles-selector-evidence: the 5 bins in package.json.
claude plugin uninstall achilles removes a marketplace install; an npm install is reversed by deleting the plugin entry the postinstall merged into the project settings. npm runs no uninstall script, so neither happens on npm uninstall.
Built on
One install, one sentence. A full onboarding run uses a large share of a Claude plan window.