Release Testing
Design a manual test suite for your project, execute it against a release, and interpret the validation report — all with AI-assisted skills.
A complete walkthrough for validating releases with pair's manual testing skills. You'll go from zero test cases to a full release validation report in about 30 minutes.
Prerequisites
Before starting, make sure you have:
- pair-cli installed and a
.pair/Knowledge Base in your project - A published release (GitHub Release, npm package, or deployed website) to validate
- An AI coding assistant that supports Agent Skills
- Playwright (optional) for browser-based tests — or
curlas a fallback
This tutorial uses two skills: /pair-capability-design-manual-tests (generates test cases) and /pair-capability-execute-manual-tests (runs them). Both are included in the standard Knowledge Base.
What you'll build
By the end of this tutorial you'll have:
- A
qa/release-validation/directory with critical path test files - Test cases covering your project's website, CLI, dataset, and registry
- A release validation report with PASS/FAIL per test case
- Understanding of how to maintain and extend the suite across releases
Estimated time
~30 minutes (first run — subsequent releases reuse the existing suite).
Step-by-step instructions
1. Design the test suite
Invoke the design skill. It analyzes your project's artifacts, deployment targets, and user-facing surfaces to generate test cases automatically.
The skill will:
- Discover your project surfaces — reads your PRD, adoption files, CLI commands, website routes, and registry configuration.
- Present a summary — shows what it found and asks for confirmation.
- Generate critical paths — groups tests by category (website, CLI artifacts, CLI functional, dataset, registry).
- Write files — creates
CP*.mdfiles and aREADME.mdinqa/release-validation/.
If a test suite already exists, the skill offers three choices: regenerate (overwrite), extend (add new tests for new features), or abort.
What gets generated
Each test case follows this format:
Tests use variables ($VERSION, $BASE_URL, $WORKDIR) so they work across releases without modification.
2. Review and customize
Before executing, review the generated test cases:
- Add project-specific tests — your app may have unique flows not covered by the default heuristics.
- Adjust priorities — P0 tests block release sign-off. Make sure only true blockers are P0.
- Remove irrelevant CPs — if your project doesn't have a website, delete CP1/CP5/CP6.
3. Execute the test suite
Invoke the execution skill:
The skill will:
- Locate the suite — finds
qa/release-validation/automatically. - Resolve variables — derives
$VERSIONfrom the release,$BASE_URLfrom deployment config, creates an isolated$WORKDIR. - Present variables — asks for confirmation before executing.
- Run each test — iterates through all CPs in order, using Playwright for browser tests, Bash for CLI tests, and HTTP checks for status verification.
- Generate a report — writes a structured report to
.tmp/manual-test-reports/.
Scoping a run
You can limit execution to specific critical paths or priorities:
4. Interpret the report
The report is written to .tmp/manual-test-reports/release-validation-{VERSION}-{DATE}.md and includes:
Summary table — per-CP pass/fail counts:
Failure details — for each failed test:
- Actual result vs expected
- Evidence (command output, HTTP status, screenshots)
- Severity classification (Critical, Major, Minor)
Sign-off criteria — checklist for release approval:
- All P0 tests pass
- No Critical/Major failures unresolved
- Report reviewed
5. Act on failures
For each failure, decide:
| Severity | Action |
|---|---|
| Critical | Fix before release — blocks sign-off |
| Major | Fix or document workaround — tracked as issue |
| Minor | Create issue for next release — does not block |
The report includes suggested issue titles for each failure. Create them in your PM tool to track resolution.
6. Maintain the suite
Before each release, check if the suite needs updates:
- New feature added? → Run
/pair-capability-design-manual-testswith extend mode - Page or route changed? → Update the relevant CP file
- New CLI command? → Add tests to CP3 or create a new CP
- Test case drift? → Update expected results to match current behavior (after confirming the new behavior is correct)
How it fits in the release workflow
The /pair-process-review skill can optionally invoke /pair-capability-execute-manual-tests as Phase 6 (post-merge validation) with $scope=P0 for fast blocker-only checks.
Next steps
- Read the Skills Catalog for the full list of pair skills
- Check Release Process for how releases are automated
- Explore CLI Workflows for other CLI commands