QAForge is an AI-powered QA agent system that runs inside VS Code with GitHub Copilot. You describe a user story. QAForge produces structured test cases, resolves test data, generates automation code, validates results, and writes the final report — entirely through a chain of specialist AI agents.
QAForge is a system of eight coordinated AI agents that handle every step of the QA lifecycle for a user story — from analysis to final sign-off. You provide the story and context; the agents handle the rest.
It works for any project. Playwright, Selenium, REST APIs, manual testing, or no automation at all. The Playwright skill pack extends QAForge for Playwright + TypeScript projects specifically.
| Requirement | Details |
|---|---|
| VS Code | Version 1.95 or later |
| GitHub Copilot subscription | Agent mode required (Individual or Business plan) |
| GitHub Copilot Chat extension | Installed and signed in |
| Node.js 20+ | Only required if you use the Playwright skill |
No CLI. No npm package. No configuration files. QAForge runs entirely through .agent.md files in your project.
Follow these three steps. Total time: ~5 minutes to get running.
git clone https://github.com/mdrasul/qaforge.git
cd qaforge
code .All agents — 8 core + 8 skill pack — are already in .github/agents/. GitHub Copilot discovers them automatically when you open the folder. No copying. No installation.
cp core/templates/PROJECT_CONTEXT.template.md PROJECT_CONTEXT.mdOpen it and fill in:
- Project name and team name
- A 2–4 sentence description of your application
- Your QA environment URLs
- Test user credentials (or a reference to your vault)
- Test management tool (leave blank if you don't use one)
This is the only file required to run your first story.
For automation projects:
cp core/templates/AUTOMATION_CONTEXT.template.md AUTOMATION_CONTEXT.mdFor projects with REST APIs:
cp core/templates/API_CONTEXT.template.md API_CONTEXT.mdFor UI-heavy features:
cp core/templates/UI_CONTEXT.template.md UI_CONTEXT.mdThen reload VS Code: Cmd+Shift+P → Developer: Reload Window.
Tip 1: Be specific about your environment URLs. The Data Resolver agent uses your QA URL to construct test data instructions. A placeholder URL means placeholder instructions.
Tip 2: The "What does this application do?" field is the most important one. Agents use this description to understand scope. 2–4 clear sentences are enough. Don't paste your entire product spec.
Tip 3: Leave fields blank rather than writing [TODO].
Blank fields are skipped gracefully. [TODO] markers appear verbatim in agent output and create noise.
Open Copilot Chat → switch to Agent mode → select @QAForge Manager.
Paste a story in this format:
Ticket: PROJ-123
Title: User Login — Basic Authentication
User Story:
As a registered user, I want to log in with my email and password
so that I can access my account.
Acceptance Criteria:
- AC-01: Valid credentials result in successful login and redirect to dashboard
- AC-02: Incorrect password shows an error message
- AC-03: Unregistered email shows an error message
Scope: Manual verification only
The Manager will:
- Create
FeatureSpecs/PROJ-123-user-login/with your story - Route to the Story Analyst
- Pause at each step with an APPROVAL GATE — type
APPROVEto advance
Want to skip all gates? Add --ci to your message to run the full cycle uninterrupted.
After a full story cycle, your FeatureSpecs/ folder will contain:
FeatureSpecs/PROJ-123-user-login/
├── 01_STORY_INPUT.md ← Your story, structured
├── 02_TEST_ANALYSIS.md ← Testable scenarios with priorities
├── 03_TEST_CASES.md ← Plain-language or BDD test cases
├── 04_TEST_DATA.md ← Resolved test data and setup instructions
├── 05_execution_evidence/ ← Your test results go here
├── 07_VALIDATION_REPORT.md ← QA sign-off decision (PASS / BLOCKED)
└── 08_FINAL_TEST_REPORT.md ← Shareable report for stakeholders
See examples/web-ui-api/FeatureSpecs/DEMO-001-event-detail-cta/ for a complete, polished example of all artifacts.
- Confirm
.agent.mdfiles are in.github/agents/inside your open VS Code workspace - Confirm GitHub Copilot Chat extension is installed and up to date
- Restart VS Code and try again
- Confirm
PROJECT_CONTEXT.mdexists at the root of your workspace (not in a subfolder) - If your project has multiple root folders, place it in the folder you opened in VS Code
- If your story is manual-only (no automation scope), it won't ask for this file
- If it asks, either create
AUTOMATION_CONTEXT.mdfrom the template, or change your story's Scope to "Manual verification only"
- Your
PROJECT_CONTEXT.mdlikely has unfilled[TODO]fields — fill in the URL and description fields - Check that your QA environment URL is reachable
- See examples/web-ui-api/ for a fully working reference deployment
- Open a GitHub Discussion in the QAForge repo with the label Q&A