skills-vault/skills/regression-validation-gate-.../SKILL.md

99 lines
3.2 KiB
Markdown

---
name: regression-validation-gate-runner
description: Use when Codex needs to dry-run or execute project-declared regression, validation, test, lint, build, schema, export, or review gates from a JSON, YAML, or Markdown manifest and capture logs before review, release, handoff, CCRA/local review, or lifecycle-sensitive work.
---
# Regression Validation Gate Runner
## Purpose
Run or verify explicitly declared validation gates and write a durable evidence package. Use the bundled script instead of ad hoc terminal copying when a reviewer needs command declarations, exit codes, logs, durations, skipped gates, and changed-file notes.
Passing gates are engineering evidence only. They do not imply product acceptance, lifecycle approval, Owner approval, or CCRA approval.
## Command
```powershell
conda run -n skills-vault python .\scripts\regression_validation_gate_runner.py `
--project-root C:\path\project `
--gate-manifest C:\path\gate-manifest.yaml `
--output-dir C:\path\helper-outputs `
--mode dry_run
```
Use `--mode run` only when the user has asked to execute the manifest commands. Add `--include-optional` only when optional gates should run.
When installed under `C:\Users\wangq\.agents\skills\regression-validation-gate-runner`, run from that Skill directory or use the installed script path.
## Manifest
The manifest may be JSON, YAML, YML, or Markdown containing one fenced `yaml`, `yml`, or `json` block.
```yaml
gates:
- gate_id: unit-tests
command:
- conda
- run
- -n
- skills-vault
- python
- -B
- -m
- unittest
- discover
- -s
- skills/example/tests
- -v
working_directory: .
expected_exit_code: 0
log_file: logs/unit-tests.log
timeout_seconds: 120
required_before_review: true
```
`command` may be a string or an argv list. Lists avoid shell quoting surprises on Windows.
## Modes
- `dry_run`: parse and validate the manifest, then report declared and skipped gates without executing commands.
- `run`: execute required gates. Optional gates are skipped unless `--include-optional` is passed.
## Outputs
The script writes under `output_dir`:
```text
gate-run-report.md
gate-run-report.json
logs/<gate-id>.log
```
Reports include:
- commands declared, run, and skipped
- exit codes and pass/fail/timeout status
- duration and log paths
- environment notes
- project files changed during each gate
- machine-readable summary
Exit code is `0` for `PASS` or `DRY_RUN`, `1` for failed or timed-out required gates, and `2` for manifest/input errors.
## Safety
- Run only commands explicitly listed in the manifest.
- Keep `working_directory` under `project_root`.
- Write logs and reports only under `output_dir`.
- Do not install dependencies, invent commands, edit project files directly, or repair failures.
- Record changed project files if a command creates, modifies, or deletes files; do not hide side effects.
## Validation
After changing runner behavior, run:
```powershell
conda run -n skills-vault python -B -m unittest discover -s skills/regression-validation-gate-runner/tests -v
conda run -n skills-vault python -B C:\Users\wangq\.codex\skills\.system\skill-creator\scripts\quick_validate.py skills/regression-validation-gate-runner
```