Documentation Index
Fetch the complete documentation index at: https://allhandsai-add-verification-stack-docs.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
View QA Changes Plugin
Check out the complete QA changes plugin with ready-to-use code and configuration.
Overview
The QA agent follows a four-phase methodology:- Understand — Reads the PR diff, title, and description. Classifies changes (new feature, bug fix, refactor, config) and identifies entry points (CLI commands, API endpoints, UI pages).
- Setup — Bootstraps the repository: installs dependencies, builds the project, notes CI status.
- Exercise — The core phase: spins up servers, opens browsers, runs CLI commands, makes HTTP requests — testing the changed behavior as a real user would. For bug fixes, it reproduces the bug on the base branch and verifies the fix on the PR branch.
- Report — Posts a structured QA report as a PR comment, with evidence (commands run, outputs, screenshots) and a verdict (PASS / FAIL / PARTIAL).
What It Does (and Doesn’t)
QA Agent Does
- Run the actual application and interact with it
- Make real HTTP requests, run real CLI commands
- Open browsers and verify UI changes
- Reproduce bugs and verify fixes end-to-end
- Report with evidence (commands, outputs, screenshots)
QA Agent Does NOT
- Run the test suite (that’s CI’s job)
- Analyze code for style or structure (that’s code review’s job)
- Run linters, formatters, or type checkers
- Substitute
--helpor--dry-runfor real execution
Quick Start
GitHub Actions
Create.github/workflows/qa-changes.yml in your repository:
LLM_API_KEY to your repository’s Settings → Secrets and variables → Actions.
In a Conversation
You can also trigger QA manually in any OpenHands conversation by invoking the skill:QA Report Format
The QA agent posts a structured report as a PR comment:Customization
Change Types
The QA agent adapts its approach based on the type of change:| Change Type | QA Approach |
|---|---|
| Frontend / UI | Starts dev server, opens browser, verifies visual changes, tests interactions |
| CLI | Runs commands with realistic arguments, verifies output, tests edge cases |
| API / Backend | Starts server, makes HTTP requests, verifies responses and side effects |
| Bug fix | Reproduces bug on base branch, verifies fix on PR branch (before/after) |
| Library / SDK | Writes and runs a short script that imports and calls changed functions |
Repository-Specific QA Guidelines
Add repo-specific QA instructions by creating.agents/skills/custom-qa-guide.md:
Integration with the Verification Stack
The QA agent is most powerful when used alongside the code review agent and the iterate skill as part of the full Verification Stack:- Code review catches issues by reading the diff (style, security, data structures)
- QA catches issues by running the software (behavioral regressions, UI bugs)
- Iterate orchestrates the loop — fixing issues flagged by either verifier and re-polling until the PR is clean
Troubleshooting
QA agent can't start the server
QA agent can't start the server
Ensure your repository’s setup instructions are documented in
README.md or AGENTS.md. The agent follows these to bootstrap the environment. If setup requires special steps, add them to a custom QA guide.QA report says PARTIAL
QA report says PARTIAL
PARTIAL means some scenarios passed and others failed or couldn’t be tested. Read the report details — it will explain what worked and what didn’t. Common causes: missing environment variables, external service dependencies, or insufficient permissions.
QA takes too long
QA takes too long
For large PRs with many changed entry points, the agent may need more time. Consider splitting large PRs into smaller, focused changes. You can also add a custom QA guide that prioritizes the most important scenarios.
Related Resources
- QA Changes Plugin — GitHub Actions plugin
- QA Changes Skill — Detailed skill methodology
- Verification Stack — How QA fits into the full verification pipeline
- Automated Code Review — The complementary code review agent

