QA Kit CLI — AI-assisted QA automation toolkit for Playwright, Cypress, Jest, and more.
Project description
QA Kit
AI-assisted QA automation toolkit for Playwright, Cypress, Jest, Vitest, Selenium, GitHub Actions, and Jenkins.
QA Kit is a CLI toolkit purpose-built for QA automation engineers. It gives your AI coding assistant (Claude Code, GitHub Copilot, Gemini CLI, Cursor, Windsurf, and 25+ more) a complete set of slash commands for the full QA lifecycle — from strategy through release gate decisions.
Think of it as Spec Kit for QA: same architecture, same install method, but every command is tailored to testing workflows rather than feature specification.
Architecture details: ARCHITECTURE.md
Install
uv tool install qa-kit-cli
Or with pipx:
pipx install qa-kit-cli
Or with pip:
pip install qa-kit-cli
Quick Start
# Initialize QA Kit in your project (auto-detects your AI agent)
qakit init
# Or initialize with specific options
qakit init --integration codex --integration-options="--skills"
qakit init --preset playwright --integration claude
qakit init my-project --force --script ps
# In your AI agent, run the QA lifecycle commands
/qakit.policy
/qakit.strategy
/qakit.testplan
/qakit.traceability
/qakit.write.playwright
/qakit.ci.github-actions
/qakit.release-gate
Slash Commands
QA Kit installs 37 slash commands into your AI agent's command directory (v0.4.0).
QA Strategy & Planning
| Command | Description |
|---|---|
/qakit.policy |
Create or update the project's test policy (governance, coverage thresholds, frameworks) |
/qakit.strategy |
Generate a QA strategy for a feature — risk areas, priorities, toolchain |
/qakit.testplan |
Produce a structured test plan: scope, entry/exit criteria, environments |
/qakit.coverage |
Analyze existing tests and report gaps against requirements |
/qakit.gaps |
Cross-reference requirements with the test plan and flag untested scenarios |
/qakit.clarify |
Resolve ambiguities in a QA strategy or test plan |
/qakit.pyramid |
Analyze test pyramid balance and recommend adjustments |
QA Lifecycle
| Command | Description |
|---|---|
/qakit.tasks |
Generate a prioritized QA implementation task list from strategy and test plan |
/qakit.tasks.issues |
Convert QA task list to GitHub Issues or Jira tickets with labels, milestones, and traceability updates |
/qakit.checklist |
Generate a QA readiness checklist for a feature or release |
/qakit.traceability |
Map requirements → test cases → test files → CI jobs in a traceability matrix |
/qakit.regression |
Build or update the regression suite with P0/P1/P2 tiers and quarantine tracking |
/qakit.defects |
Summarize defects, escaped bugs, root causes, and risk trends |
/qakit.release-gate |
Make a ship/no-ship decision from coverage, test results, and defects |
/qakit.env |
Define test environments, browser/device matrix, data rules, and service virtualization |
Test Writing
| Command | Description |
|---|---|
/qakit.write.playwright |
Write Playwright TypeScript tests with best-practice conventions |
/qakit.write.cypress |
Write Cypress TypeScript e2e/component tests |
/qakit.write.selenium |
Write Selenium WebDriver tests (Python or Java) |
/qakit.write.jest |
Write Jest unit/integration tests |
/qakit.write.vitest |
Write Vitest unit tests for Vite-based projects |
/qakit.write.pom |
Generate Page Object Model classes |
/qakit.write.fixtures |
Generate test fixtures, factories, and seed data |
/qakit.write.a11y |
Write automated accessibility tests (axe-core / Playwright) |
/qakit.write.visual |
Set up visual regression tests (Playwright screenshots / Percy) |
/qakit.write.api |
Write API contract tests (REST/GraphQL) |
CI/CD Pipeline
| Command | Description |
|---|---|
/qakit.ci.github-actions |
Generate GitHub Actions workflow with matrix strategy |
/qakit.ci.jenkins |
Generate a declarative Jenkinsfile for test execution |
/qakit.ci.matrix |
Design cross-browser/platform test matrix |
/qakit.ci.badges |
Add test coverage and quality badges to README |
/qakit.ci.report |
Configure Allure / JUnit XML / HTML reporting in CI |
Test Maintenance
| Command | Description |
|---|---|
/qakit.maintain.flaky |
Diagnose and fix flaky tests |
/qakit.maintain.refactor |
Refactor tests to current framework conventions |
/qakit.maintain.data |
Audit and clean up test data and fixtures |
/qakit.maintain.upgrade |
Upgrade tests to a new framework version |
QA Review
| Command | Description |
|---|---|
/qakit.review.pr |
Review a PR from a QA perspective |
/qakit.review.bugreport |
Generate a structured, Jira-ready bug report |
/qakit.review.accessibility |
Audit a page/component for WCAG 2.1 AA compliance |
Presets
Presets tailor commands to your framework stack. Three are bundled:
qakit preset add playwright # TypeScript + Playwright conventions
qakit preset add cypress # Cypress Component Testing + E2E
qakit preset add lean-qa # Minimal workflow for small teams
Suites
Suites scope QA artifacts per feature or sprint under .qakit/suites/<NNN>-<name>/:
qakit suite create login-flow # Create a suite directory
qakit suite list # List all suites
qakit suite switch 001-login-flow # Set active suite
qakit suite info # Show active suite details
You can also create a suite at init time:
qakit init --suite login-flow --here
Or set the active suite via environment variable:
QAKIT_SUITE=login-flow qakit init --here
Extensions
Extensions add integrations with external tools:
qakit extension add allure # Allure report generation
qakit extension add testrail # TestRail sync
qakit extension add jira # Jira defect tracking
qakit extension add browserstack # Cross-browser cloud testing
Supported AI Agents
QA Kit works with 32 AI coding agents including:
Claude Code · GitHub Copilot · Gemini CLI · Cursor · Windsurf · Amp · OpenCode · Forge · Roo · Kiro CLI · Junie · Devin · Tabnine · and more.
Bundled Workflows
| Workflow ID | Steps |
|---|---|
full-qa-cycle |
policy → strategy → testplan → tasks → write.playwright → ci.github-actions |
playwright-e2e |
strategy → write.playwright → write.pom → ci.github-actions |
release-gate |
coverage → traceability → regression → defects → release-gate |
regression-refresh |
regression → maintain.flaky → maintain.data → ci.github-actions |
CLI Reference
qakit init [PROJECT_NAME]
--here Initialize in current directory
--force Skip confirmation in non-empty directories
--integration, -i TEXT AI agent to configure
--integration-options TEXT Pass-through options (e.g. "--skills")
--ignore-agent-tools Skip CLI tool version checks
--script [sh|ps] Script type (default: platform-aware)
--no-git Skip git initialization
--branch-numbering [sequential|timestamp]
--preset TEXT Install preset at init (repeatable)
--suite TEXT Create a named suite at init (or set QAKIT_SUITE)
qakit integration install|add <key> Install an AI agent integration
qakit integration uninstall|remove <key> Uninstall an AI agent integration
qakit integration switch <key> Switch to a different integration
qakit integration use <key> Set active integration without reinstalling
qakit integration upgrade [key] Reinstall with updated templates
qakit integration list [--catalog] List integrations
qakit extension install|add <id> Install an extension
--priority N Set priority (default: 10)
--dev <path> Install from local path
--from <url> Install from URL
qakit extension uninstall|remove <id>
--keep-config Back up config files instead of deleting
--force Remove immediately
qakit extension update <id> Update to latest version
qakit extension list [--available] [--all]
qakit extension search [query] Search catalog
qakit extension info <id> Show extension details
qakit extension enable/disable <id>
qakit extension resolve <template> Show 4-layer resolution stack
qakit preset install <id> [--priority N]
qakit preset add <id> Alias for install (with deprecation tip)
qakit preset uninstall <id>
qakit preset remove <id> Alias for uninstall (with deprecation tip)
qakit preset list
qakit preset search [query]
qakit preset info <id>
qakit preset priority <id> <n>
qakit preset enable/disable <id>
qakit preset resolve <template> [--verbose]
qakit suite create <name>
qakit suite list
qakit suite switch <id>
qakit suite info [<id>]
qakit workflow run <id> [-i key=value]
qakit workflow list
qakit workflow resume
qakit workflow status
qakit version [--features] [--json]
qakit check
qakit self-check [--json]
qakit self update
qakit self check
License
MIT — see LICENSE.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file qa_kit_cli-0.4.0.tar.gz.
File metadata
- Download URL: qa_kit_cli-0.4.0.tar.gz
- Upload date:
- Size: 229.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
46eb5e2fbc7474349e10ad30b261ebe173069972fccf83c996359a3c32531058
|
|
| MD5 |
eeccee5e05bd608de403da4fcd51ab35
|
|
| BLAKE2b-256 |
1589e1ad4f839b3be96e2ebf0b4dda0a23b4d9e9928051416d8821532643b535
|
Provenance
The following attestation bundles were made for qa_kit_cli-0.4.0.tar.gz:
Publisher:
release.yml on qa-kit-cli/qa-kit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
qa_kit_cli-0.4.0.tar.gz -
Subject digest:
46eb5e2fbc7474349e10ad30b261ebe173069972fccf83c996359a3c32531058 - Sigstore transparency entry: 1672392876
- Sigstore integration time:
-
Permalink:
qa-kit-cli/qa-kit@83c40605147a2202d1a9bfe52a759283ee0d1b6a -
Branch / Tag:
refs/tags/v0.4.0 - Owner: https://github.com/qa-kit-cli
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@83c40605147a2202d1a9bfe52a759283ee0d1b6a -
Trigger Event:
push
-
Statement type:
File details
Details for the file qa_kit_cli-0.4.0-py3-none-any.whl.
File metadata
- Download URL: qa_kit_cli-0.4.0-py3-none-any.whl
- Upload date:
- Size: 193.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a91e06ce92b8066fe7f52e1328c36a68119f978893d81d88a76c050732a6116b
|
|
| MD5 |
99d2dc97285a704a8cf9b464fe3dc64e
|
|
| BLAKE2b-256 |
3eca7e5d71b2f1b0012b78dc9d988387927669d370595f3b34a98060044a8112
|
Provenance
The following attestation bundles were made for qa_kit_cli-0.4.0-py3-none-any.whl:
Publisher:
release.yml on qa-kit-cli/qa-kit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
qa_kit_cli-0.4.0-py3-none-any.whl -
Subject digest:
a91e06ce92b8066fe7f52e1328c36a68119f978893d81d88a76c050732a6116b - Sigstore transparency entry: 1672392905
- Sigstore integration time:
-
Permalink:
qa-kit-cli/qa-kit@83c40605147a2202d1a9bfe52a759283ee0d1b6a -
Branch / Tag:
refs/tags/v0.4.0 - Owner: https://github.com/qa-kit-cli
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@83c40605147a2202d1a9bfe52a759283ee0d1b6a -
Trigger Event:
push
-
Statement type: