VIRIM Infotech
Your AI Assisted Product Developers

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.

Category: testing Used by 1 agents

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",