vm-smoke-regression-packager
Skill detail with category, linked agents, and source metadata.
vm-smoke-regression-packager
Reads a structured test case catalog and emits two manifests: a smoke pack (critical-path tests for daily PR gate) and a regression pack (full suite for pre-merge and nightly runs). Produces JSON manifests that are consumed by vm-ci-test-workflow-generator to wire up GitHub Actions.
Source: .github/skills/testing/vm-smoke-regression-packager/SKILL.md
Used By Agents
Preview
View source preview (first 3000 chars)
# VM Smoke Regression Packager
## Overview
Given a test case catalog with smoke/regression boolean flags, this skill reads all generated test file paths and emits two structured manifests:
- **Smoke pack**: subset of tests covering critical business paths — runs on every PR in under 10 minutes
- **Regression pack**: full automated test suite — runs on merge to main and on nightly schedule
The manifests are the contract between test design and CI workflow generation. They tell `vm-ci-test-workflow-generator` exactly which test files to run in which context.
## Unitary Function
**ONE RESPONSIBILITY:** Map test case catalog entries to generated test file paths and emit smoke and regression pack manifests.
**NOT RESPONSIBLE FOR:**
- Deciding whether a test is smoke or regression (that is Test Design Agent, which sets the flags)
- Running tests
- Generating workflow YAML (vm-ci-test-workflow-generator)
- Generating test code (vm-test-suite-generator)
## When to Use
- Immediately after vm-test-suite-generator has written test files
- Whenever test cases are added or reclassified (re-run to refresh manifests)
- Before calling vm-ci-test-workflow-generator (it needs these manifests as input)
## Inputs
```json
{
"test_case_catalog": "docs/test-design/test-case-catalog.json",
"generated_files_report": "docs/test-design/generated-test-files.json",
"output_path": "docs/test-design/",
"smoke_gate_time_budget_minutes": 10
}
```
## Classification Rules
A test is included in the **smoke pack** if:
- `smoke: true` in the test case catalog entry, AND
- the generated test file exists on disk
A test is included in the **regression pack** if:
- `regression: true` in the test case catalog entry, AND
- the generated test file exists on disk
A test can appear in BOTH packs (e.g., a critical login test should be in smoke AND regression).
Validation:
- If any use case with `priority: critical` has ZERO smoke tests, flag as `critical_gap`
- If smoke pack estimated runtime exceeds `smoke_gate_time_budget_minutes`, flag slowest tests as `review_for_smoke`
## Output
### `smoke-pack.json`
```json
{
"generated_by": {
"skill": "vm-smoke-regression-packager",
"version": "1.0.0"
},
"pack_type": "smoke",
"purpose": "Runs on every pull request. Must complete under 10 minutes. Blocks merge on failure.",
"test_count": 0,
"estimated_runtime_minutes": 0,
"critical_gaps": [],
"review_for_smoke": [],
"tests": [
{
"test_case_id": "TC-001",
"use_case_id": "UC-001",
"use_case_name": "User Login",
"layer": "integration",
"file_path": "tests/integration/test_user_login_integration.py",
"run_with": "pytest tests/integration/test_user_login_integration.py",
"browser_approach": null,
"ci_compatible": true
},
{
"test_case_id": "TC-003",
"use_case_id": "UC-001",
"use_case_name": "User Login",
"layer": "e2e",
"file_path": "tests/e2e/test_login_form.spec.ts",