pr-verify

Comprehensive PR verification skill. Analyzes PR body requirements, reviews comments, checks CI status, and performs E2E testing. Use when a PR is ready for final verification before merge.

465 stars

Best use case

pr-verify is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Comprehensive PR verification skill. Analyzes PR body requirements, reviews comments, checks CI status, and performs E2E testing. Use when a PR is ready for final verification before merge.

Teams using pr-verify should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/pr-verify/SKILL.md --create-dirs "https://raw.githubusercontent.com/phodal/routa/main/.claude/skills/pr-verify/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/pr-verify/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How pr-verify Compares

Feature / Agentpr-verifyStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Comprehensive PR verification skill. Analyzes PR body requirements, reviews comments, checks CI status, and performs E2E testing. Use when a PR is ready for final verification before merge.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

Related Guides

SKILL.md Source

## Verification Phases

### Phase 1: Requirements Analysis

Parse PR body to extract:
- **Acceptance Criteria**: Checkboxes, numbered lists, "should" statements
- **Linked Issues**: `#123`, `fixes #456`, `closes #789`
- **Screenshots/Videos**: Evidence of visual changes
- **Breaking Changes**: Migration notes, deprecation warnings

```bash
# Fetch PR details
gh pr view <PR_NUMBER> --json body,title,labels,linkedIssues
```

### Phase 2: Review Comments Analysis

Fetch and categorize comments:
```bash
# Get all review comments
gh api repos/{owner}/{repo}/pulls/{pr}/reviews
gh api repos/{owner}/{repo}/pulls/{pr}/comments
```

Classify by status:
- **Resolved**: Addressed in subsequent commits
- **Pending**: Still needs attention
- **Blocking**: Marked as REQUEST_CHANGES

### Phase 3: CI/Build Status Check

```bash
# Check all status checks
gh pr checks <PR_NUMBER> --json name,state,conclusion

# Get detailed check run logs if failed
gh api repos/{owner}/{repo}/check-runs/{check_run_id}
```

Required checks must pass:
- Build/compile
- Lint
- Type check
- Unit tests
- Integration tests (if applicable)

### Phase 4: E2E Verification

Start services and run E2E tests:

```bash
# 1. Install dependencies (if needed)
npm install

# 2. Start dev server in background
npm run dev &
DEV_PID=$!

# 3. Wait for server ready
npx wait-on http://localhost:3000 --timeout 60000

# 4. Run E2E tests
npm run test:e2e

# 5. Cleanup
kill $DEV_PID
```

For Tauri apps:
```bash
npm run tauri dev &
# Use Playwright to interact with desktop window
```

### Phase 5: Generate Report

Create verification summary:

```markdown
# PR Verification Report

## Requirements Checklist
- [x] Feature A implemented (evidence: screenshot in PR)
- [x] API endpoint returns correct response
- [ ] ⚠️ Missing: Mobile responsive test

## Review Comments Status
- ✅ 3 resolved
- ⚠️ 1 pending (non-blocking suggestion)
- 🚫 0 blocking

## CI Status
| Check | Status |
|-------|--------|
| build | ✅ Pass |
| lint  | ✅ Pass |
| test  | ✅ Pass |

## E2E Verification
- ✅ Home page loads correctly
- ✅ User flow: login → dashboard works
- ⚠️ Note: Slow response on /api/data (>2s)

## Verdict
🟢 **READY TO MERGE** — All requirements verified
```

## Decision Matrix

| Condition | Action |
|-----------|--------|
| All checks pass + requirements met | Approve and merge |
| Minor issues only | Approve with comments |
| Blocking comments unresolved | Request author action |
| CI failing | Do not proceed, report errors |
| E2E failures | Investigate and report |

## Tips

- **Parallelize**: Run E2E while waiting for CI
- **Cache evidence**: Save screenshots to PR comments
- **Early exit**: Stop on critical failures
- **Retry flaky tests**: Up to 2 retries for known flaky tests
- **Report promptly**: Post findings as PR comment for visibility

Related Skills

spreadsheets

465
from phodal/routa

Use this skill for spreadsheet creation, editing, analysis, formatting, formula modeling, charting, or workbook review. Triggers include requests to create or modify an .xlsx file, build a model or tracker, format a workbook, add formulas or charts, or prepare a shareable spreadsheet deliverable.

slide

465
from phodal/routa

Use this skill as reference material when creating or editing presentation slide decks.

pdf

465
from phodal/routa

Use this skill for PDF generation, conversion, inspection, extraction, editing, form filling, OCR, redaction, or render comparison. Triggers include requests to create a PDF, convert Markdown or HTML or LaTeX or DOCX or PPTX to PDF, extract text or tables or images, fill or inspect forms, OCR scans, compare revisions, or redact content.

docx

465
from phodal/routa

Use this skill for creating, editing, and reviewing DOCX files, including generation, formatting, content controls, tracked changes, comments, accessibility checks, redaction, rendering, and diff-based QA workflows.

playwright-cli

465
from phodal/routa

Automates browser interactions for web testing, form filling, screenshots, and data extraction. Use when the user needs to navigate websites, interact with web pages, fill forms, take screenshots, test web applications, or extract information from web pages.

issue-garbage-collector

465
from phodal/routa

Two-phase cleanup of duplicate and outdated issue files in docs/issues/. Phase 1 uses Python script for fast pattern matching. Phase 2 uses claude -p for semantic analysis on suspects only.

issue-enricher

465
from phodal/routa

Transforms rough requirements into well-structured GitHub issues. Use when the user provides a vague idea, feature request, or problem description and wants to create a GitHub issue. Analyzes codebase, explores solution approaches, researches relevant libraries, and generates actionable issues using `gh` CLI.

evolution-architecture-review

465
from phodal/routa

Multi-agent architecture evolvability review for this repository. Use when the user wants to analyze current architecture quality, evolvability, fitness functions, coupling, boundary clarity, delivery flow, or phased evolution strategy. Designed to be invoked from Claude Code with prompts like `/evolution-architecture-review analyze the current architecture evolvability`.

slack

465
from phodal/routa

Interact with Slack workspaces using browser automation. Use when the user needs to check unread channels, navigate Slack, send messages, extract data, find information, search conversations, or automate any Slack task. Triggers include "check my Slack", "what channels have unreads", "send a message to", "search Slack for", "extract from Slack", "find who said", or any task requiring programmatic Slack interaction.

electron

465
from phodal/routa

Automate Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify, etc.) using agent-browser via Chrome DevTools Protocol. Use when the user needs to interact with an Electron app, automate a desktop app, connect to a running app, control a native app, or test an Electron application. Triggers include "automate Slack app", "control VS Code", "interact with Discord app", "test this Electron app", "connect to desktop app", or any task requiring automation of a native Electron application.

dogfood

465
from phodal/routa

Systematically explore and test a web application to find bugs, UX issues, and other problems. Use when asked to "dogfood", "QA", "exploratory test", "find issues", "bug hunt", "test this app/site/platform", or review the quality of a web application. Produces a structured report with full reproduction evidence -- step-by-step screenshots, repro videos, and detailed repro steps for every issue -- so findings can be handed directly to the responsible teams.

agent-browser

465
from phodal/routa

Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction.