Quality Gate Orchestrator
Agents often remember to run checks at the end, when it is easiest to miss a failed or skipped gate. Use this skill to track required validation throughout the task.
When to Invoke
- A task has multiple test, lint, build, review, or migration checks
- The user asks for tests-first, verification-first, or completion gates
- Work spans sessions and validation state must survive handoff
- The agent is about to declare completion
Gate Model
Each gate has:
name - stable identifier such as lint, unit-tests, or migration-dry-run
command - command to run, if applicable
required - required gates must pass or be waived before completion
last_status - pending, pass, fail, or waived
note - short reason, error summary, or waiver explanation
How to Use
python3 gate.py --status
python3 gate.py --add --name lint --command "npm run lint"
python3 gate.py --add --name smoke --command "npm test" --optional
python3 gate.py --record --name lint --status pass
python3 gate.py --record --name smoke --status waived --note "Not relevant for docs-only change"
python3 gate.py --ready --format json
Procedure
- At the start of risky work, add the expected gates.
- After each check, record
pass, fail, or waived.
- If a required gate fails, fix the issue and record a new result.
- Before completion, run
python3 gate.py --ready.
- Do not claim completion unless readiness is true or the user accepts the remaining risk.
State
Gate state is stored in ~/.openclaw/skill-state/quality-gate-orchestrator/state.yaml.
Fields: gates, last_ready_at, ready, and gate_history.
Guardrails
- Recording a gate result does not run the command for you.
- Waivers need a note.
- Required gates default to pending until recorded.
1---2name: quality-gate-orchestrator3description: Tracks required validation gates, records pass/fail/waived results, and reports readiness before task completion.4---56# Quality Gate Orchestrator78Agents often remember to run checks at the end, when it is easiest to miss a failed or skipped gate. Use this skill to track required validation throughout the task.910## When to Invoke1112- A task has multiple test, lint, build, review, or migration checks13- The user asks for tests-first, verification-first, or completion gates14- Work spans sessions and validation state must survive handoff15- The agent is about to declare completion1617## Gate Model1819Each gate has:2021- `name` - stable identifier such as `lint`, `unit-tests`, or `migration-dry-run`22- `command` - command to run, if applicable23- `required` - required gates must pass or be waived before completion24- `last_status` - `pending`, `pass`, `fail`, or `waived`25- `note` - short reason, error summary, or waiver explanation2627## How to Use2829```bash30python3 gate.py --status31python3 gate.py --add --name lint --command "npm run lint"32python3 gate.py --add --name smoke --command "npm test" --optional33python3 gate.py --record --name lint --status pass34python3 gate.py --record --name smoke --status waived --note "Not relevant for docs-only change"35python3 gate.py --ready --format json36```3738## Procedure39401. At the start of risky work, add the expected gates.412. After each check, record `pass`, `fail`, or `waived`.423. If a required gate fails, fix the issue and record a new result.434. Before completion, run `python3 gate.py --ready`.445. Do not claim completion unless readiness is true or the user accepts the remaining risk.4546## State4748Gate state is stored in `~/.openclaw/skill-state/quality-gate-orchestrator/state.yaml`.4950Fields: `gates`, `last_ready_at`, `ready`, and `gate_history`.5152## Guardrails5354- Recording a gate result does not run the command for you.55- Waivers need a note.56- Required gates default to pending until recorded.