The reference workflow is available here!Automatically validate pull request changes by running the code — setting up the environment, exercising changed behavior, and posting a structured QA report. Validations can be triggered in two ways:
- Adding the
qa-thislabel to the PR - Requesting
openhands-agentas a reviewer
The reference workflow also triggers automatically on PR open and ready-for-review events for trusted contributors.
FIRST_TIME_CONTRIBUTOR and NONE author associations are excluded for security, since the QA agent executes code from the PR.Quick Start
Features
- Runs the Code — Goes beyond reading diffs to actually execute the software
- Four-Phase Methodology — Understand → Setup → Exercise → Report
- Structured Reports — Posts QA reports with evidence, commands, outputs, and a clear verdict
- Smart Retries — Tries multiple approaches before giving up, then reports honestly
- Customizable — Add project-specific QA guidelines via skills or AGENTS.md
How It Differs from PR Review
Security
- The workflow uses
pull_request(notpull_request_target) since the QA agent executes code - Fork PRs are automatically skipped with a clear notice (no access to repository secrets)
FIRST_TIME_CONTRIBUTORandNONEauthor associations are excluded from automatic triggers- Maintainers can trigger QA for any PR using the
qa-thislabel
Customizing QA Behavior
Instead of forking the agent script, you can customize QA behavior by adding a skill file to your repository. This is the recommended approach for customization.How It Works
The QA agent uses skills from the OpenHands/extensions repository by default. You can add project-specific guidelines alongside the default skill by creating a custom skill file.Skill paths: Place skills in
.agents/skills/ (recommended). The legacy path .openhands/skills/ is also supported. See Skill Loading Precedence for details.Example: Custom QA Skill
Create.agents/skills/qa-guide.md in your repository:
Note: These rules supplement the default
qa-changes skill, not replace it.Benefits of Custom Skills
- No forking required: Keep using the official plugin while customizing behavior
- Version controlled: Your QA guidelines live in your repository
- Easy updates: Plugin updates don’t overwrite your customizations
- Team alignment: Everyone uses the same QA standards
- Composable: Add project-specific rules alongside default methodology
Reference Workflow
The QA Changes plugin is available in the extensions repository: OpenHands/extensions/plugins/qa-changes
Action Inputs
Use
extensions-version to pin to a specific version tag (e.g., v1.0.0) for production stability, or use main to always get the latest features.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
- Example Workflow - Example workflow
- Composite Action - Reusable GitHub Action

