The reference workflow is available here!Automatically validate pull request changes by actually running the code — setting up the environment, executing the test suite, exercising changed behavior, and posting a structured QA report as a PR comment. QA can be triggered in two ways:
- Adding the
qa-thislabel to the PR - Requesting
openhands-agentas a reviewer
The reference workflow triggers on either the “qa-this” label or when the openhands-agent account is requested as a reviewer. In OpenHands organization repositories, openhands-agent has access, so this works as-is. In your own repositories, requesting openhands-agent will only work if that account is added as a collaborator. If you don’t plan to grant access, use the label trigger instead.
Quick Start
Features
- Runs the actual code — Sets up the environment, installs dependencies, builds the project
- CI-aware — Checks CI status first, only runs tests CI does not cover
- High-bar functional verification — Spins up servers, uses real browsers (Playwright), runs CLI commands, makes HTTP requests. “Tests pass” is not enough
- Graceful failure — If verification approaches fail after multiple attempts, reports honestly what could not be verified and suggests
AGENTS.mdimprovements - Structured reports — Posts QA findings as a PR comment with evidence and a clear verdict (PASS / PASS WITH ISSUES / FAIL / PARTIAL)
- Customizable — Add project-specific QA guidelines without forking
How QA Differs from Code Review
The PR Review workflow reads the diff and posts inline code comments. The QA Changes workflow executes the code:| PR Review | QA Changes | |
|---|---|---|
| Reads diff | ✅ | ✅ |
| Installs dependencies | ❌ | ✅ |
| Runs test suite | ❌ | ✅ |
| Executes changed features | ❌ | ✅ |
| Detects regressions | ❌ | ✅ |
| Output | Inline comments | PR comment report |
Security
Customizing QA Behavior
Instead of forking the scripts, add project-specific QA guidelines as a skill file.How It Works
The QA agent uses the/qa-changes skill for its methodology. Add project-specific setup commands, test commands, and verification guidelines by creating a custom skill.
Skill paths: Place skills in
.agents/skills/ (recommended). See Skill Loading Precedence for details.Example: Custom QA Skill
Create.agents/skills/qa-guide.md in your repository:
Reference Workflow
This example is available on GitHub: plugins/qa-changes/workflows/
plugins/qa-changes/workflows/qa-changes-by-openhands.yml
Action Inputs
| Input | Description | Required | Default |
|---|---|---|---|
llm-model | LLM model to use | No | anthropic/claude-sonnet-4-5-20250929 |
llm-base-url | LLM base URL (optional) | No | '' |
extensions-version | Git ref for extensions (tag, branch, or commit SHA) | No | main |
extensions-repo | Extensions repository (owner/repo) | No | OpenHands/extensions |
llm-api-key | LLM API key | Yes | - |
github-token | GitHub token for API access | Yes | - |
Related Files
- QA Changes Plugin - Complete plugin with scripts and skills (in extensions repo)
- Agent Script - Main QA agent script
- Prompt Template - QA prompt template
- QA Skill - QA methodology skill

