Pull Request QA Validation

VerifiedCaution

Runs QA validation on a pull request: boots the local environment, tests acceptance criteria, and optionally posts the report as a GitHub PR comment.

Sby Skills Guide Bot
TestingIntermediate
1010/18/2026
Claude Code
#qa#pull-request#acceptance-testing#github-cli#test-report

Recommended for

Our review

Runs QA validation on a pull request by booting the local environment, testing every acceptance criterion and producing a test report, with optional posting as a PR comment.

Strengths

  • Standalone entry point that resolves the PR from a number, a URL, or the current branch.
  • Delegates the actual validation to the qa-engineer agent, which boots the local environment and tests acceptance criteria.
  • Asks for confirmation before posting to GitHub and patches the existing comment instead of creating a duplicate.
  • Outputs a full Markdown report plus a short human-readable summary of results and blockers.

Limitations

  • Hardcoded to the wp-media/wp-rocket repository and to specs stored under .TemporaryItems/Issues/wp-rocket/issues/.
  • Requires the qa-engineer agent, an authenticated gh CLI, and a local environment that can actually be booted.
  • Standalone mode skips the structured JSON output used by the full pipeline.
When to use it

Use it when a reviewer wants a PR in the wp-rocket repo checked against its acceptance criteria without running the full pipeline.

When not to use it

Avoid it for other repositories, when no spec file exists, or when the local environment cannot be started.

Security analysis

Caution
Quality score82/100

No destructive, exfiltrating, or obfuscated commands are present. The skill uses GitHub CLI for legitimate QA automation and only posts to the PR after user confirmation. Caution is warranted because it runs network commands and triggers an external agent that may boot or modify the local environment.

Findings
  • •Executes GitHub CLI commands to fetch PR data and post/update PR comments after explicit user confirmation.
  • •Invokes the qa-engineer sub-agent, which boots the local environment—side effects on the local machine are not specified in this skill.

Examples

QA on a PR number
/qa 1234
QA on a PR URL
Run QA on https://github.com/wp-media/wp-rocket/pull/1234 and show me the report before posting anything.
QA on the current branch
Run the qa skill with no arguments to validate the PR for my current branch, then post the report to the PR.

name: qa description: Run QA validation on a pull request — boots the local environment, tests acceptance criteria, and optionally posts the report as a PR comment. Standalone entry point for the qa-engineer agent. argument-hint: <PR-number-or-URL>

QA

Standalone QA run for any PR. Boots the local environment, validates every acceptance criterion, and produces a test report. Posting to GitHub is your choice — you are prompted at the end.

Step 1 — Config

This skill targets wp-media/wp-rocket. Specs live at .TemporaryItems/Issues/wp-rocket/issues/<N>-spec.md.

Step 2 — Resolve the PR

Use $ARGUMENTS as the PR number or URL. If empty, resolve from the current branch:

gh pr list --head "$(git branch --show-current)" --json number,url -q '.[0] | "\(.number) \(.url)"'

If no PR is found, tell the user and stop.

Get the base branch:

gh pr view <PR_NUMBER> --json baseRefName -q .baseRefName

Step 3 — Invoke the qa-engineer agent

Invoke the qa-engineer sub-agent with:

  • PR number and PR URL
  • Base branch from Step 2
  • Repo: wp-media/wp-rocket

STANDALONE MODE — two differences from the normal pipeline run:

  1. Skip the PR-comment posting step. Instead, output the full QA report as formatted Markdown in your response, in a section titled ## QA Report. Use the same format the pipeline would post (including the <!-- ai-pipeline:qa-report --> marker).
  2. Skip the StructuredOutput JSON return. Output a short human-readable summary instead: overall result, pass/fail per criterion, and any blockers.

All other steps run normally — the local environment is booted, acceptance criteria are tested, and the full validation is performed.

Step 4 — Offer to post

After the agent responds, display its ## QA Report and ask:

Post this QA report to PR #<PR_NUMBER>? Reply yes to post, no to finish here.

If yes — post with dedup: check for an existing <!-- ai-pipeline:qa-report --> comment, update it with gh api --method PATCH repos/wp-media/wp-rocket/issues/comments/$EXISTING_ID if found, otherwise create a new comment.

If no — confirm the QA run is complete and finish.

Related skills