qa-gate

Runs the project's configured lint, typecheck, and test commands and reports a bounded pass/fail summary.

Updated Aug 19, 2026
One-click install
npx skills add https://github.com/PVMalove/claude-agent-harness --skill qa-gate-pvmalove
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: qa-gate
Source: https://github.com/PVMalove/claude-agent-harness/tree/main/skills/first-party/pvmalove/qa-gate
Command: npx skills add https://github.com/PVMalove/claude-agent-harness --skill qa-gate-pvmalove

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) components.

What problem does it solve? Running a project's full local quality gate by hand means remembering the right lint, typecheck, and test commands and wading through long raw output. This Skill reads the ordered command list from .harness/project.json, executes each command through a summarizing wrapper, and returns a compact pass/fail result with pytest totals and failed test node IDs. ## Core Features & Use Cases - Config-driven gate execution: Reads qa_gate_commands from .harness/project.json and runs them in order, stopping at the first failure. - Bounded failure summaries: The test_summary.py wrapper sanitizes output, extracts pytest counts and failed node IDs (capped list), and writes full logs to .harness/test-logs only on failure. - Pass marker recording: On success it records a QA-gate pass marker via the harness hook script so downstream PR workflows can verify the gate ran. - Use Case: Before opening a pull request, ask the agent to run the full quality gate; it executes make check and make test (or whatever is configured) and reports a one-line PASS or a focused failure summary. ## Quick Start Run the full project quality gate and tell me whether it passes before I open my pull request.

Frequently Asked Questions about qa-gate

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I run the full project test suite before opening a PR?▼

Invoke the qa-gate skill, which reads the ordered command list from qa_gate_commands in .harness/project.json and runs each command in sequence. It stops at the first failure and returns a compact summary with pytest totals and failed test node IDs.

How do I configure which lint and test commands the quality gate runs?▼

Edit the qa_gate_commands field in .harness/project.json, which holds an ordered list of shell commands such as ["ruff check .", "mypy .", "pytest"]. You can also re-run harness init or update to regenerate the file.

What happens when a quality gate command fails?▼

Execution stops at the first failing command and the wrapper prints a bounded summary: status with exit code, pytest counts, up to 10 failed test node IDs, and a sanitized full log path under .harness/test-logs. Remaining commands are not run.

Why does qa-gate report missing configuration?▼

The skill stops and asks you to fill in the configuration when .harness/project.json or its qa_gate_commands field is absent. Run harness init or update again, or add the field manually, then re-run the gate.

Does the quality gate record that it passed for PR workflows?▼

Yes. When every command succeeds, the skill runs record-qa-gate-pass.sh from the project's .claude/hooks directory to store a pass marker. This is done explicitly because the skill runs forked and the PostToolUse hook may not fire.