pr-desc-review
Use when the user asks to review a PR description, check if a PR description matches the implementation, verify PR accuracy, or says things like "review PR description", "does my PR description match the code", "check PR accuracy", "is my PR description correct", or "description review".
What this skill does
# PR Description Review Review the current branch's pull request description against its actual diff to find discrepancies, missing mentions, and inaccuracies. > **Your first action is Phase 1 below. Do NOT skip to analysis without > gathering context first.** ## When NOT to Use - The PR has no description yet and the user wants to *write* one (not review accuracy of an existing one) - No PR exists for the current branch (Phase 1 will detect this and stop) ## Rules 1. **Always use `gh` CLI.** Do not make raw API calls or use `curl` against the GitHub API. All GitHub interactions go through `gh`. 2. **Never auto-update the PR description.** Only suggest improvements. The user decides whether to apply changes. 3. **If no PR exists for the current branch, inform the user and stop.** Do not attempt to create a PR or guess at a PR number. --- ## Phase 1: Gather Context **Step 1: Detect the PR.** If the user specified a PR number or URL, use it directly: ```bash gh pr view <NUMBER_OR_URL> --json number,title,body,url ``` Otherwise, auto-detect from the current branch: ```bash gh pr view --json number,title,body,url ``` If this command fails (exit code non-zero), print: ```text No open PR found for the current branch. Please push your branch and open a PR first, then re-run this skill. ``` Then **STOP** — do not proceed to Phase 2. **Step 2: Fetch the diff.** ```bash gh pr diff ``` If this command fails (exit code non-zero or empty output), print: ```text Failed to fetch the PR diff. The PR may have no changes, or there may be a network issue. Please verify the PR has commits and try again. ``` Then **STOP** — do not proceed to Phase 2. **Step 3: Print progress.** ```text Analyzing PR #<NUMBER>: <TITLE> URL: <URL> ``` Proceed to Phase 2. --- ## Phase 2: Analyze Systematically compare the PR description against the diff. ### Step 1: Parse Description Claims If the PR body is empty, null, or contains only template boilerplate with no actual content, skip to Phase 3 and report all diff changes as **Missing** with the note: "PR description is empty — all changes are undocumented." Otherwise, read the PR body and extract every concrete claim about what was changed. A claim is any statement that asserts something was added, removed, modified, fixed, refactored, or configured. Ignore boilerplate (e.g., template headings with no content, checkbox lists that are structural). Number each claim for reference in the report. ### Step 2: Analyze the Diff From the diff output, catalog: - Which files were added, removed, or modified - What functions, classes, or exports were changed - What behavior was added or altered - What dependencies or configurations changed ### Step 3: Cross-Reference Compare each claim against the diff evidence. Classify every finding into one of these categories: | Category | Meaning | | --------------- | ---------------------------------------------------------- | | **Verified** | Claim is accurate and supported by the diff | | **Missing** | Significant change in the diff with no mention in the description | | **Inaccurate** | Description says X but the code does Y | | **Incomplete** | Claim is vague or understates the actual scope of a change | | **Scope mismatch** | Description implies small change but diff is large, or vice versa | Guidelines for classification: - **Claimed changes not in diff** — the description mentions something that does not appear in the code changes. Mark as **Inaccurate**. - **Changes not mentioned** — a file was substantially changed or a new feature was added with no corresponding description. Mark as **Missing**. - **Accuracy of stated behavior** — description says "fixes bug X" but the code change does something different. Mark as **Inaccurate**. - **Scope mismatch** — description says "minor refactor" but the diff touches 20 files across 3 packages. Mark as **Scope mismatch**. - Minor changes (whitespace, formatting, import reordering) do not need to be mentioned in the description. Do not flag these as **Missing**. --- ## Phase 3: Report Print the structured report using this exact format. <!-- Keep report format in sync with agents/desc-reviewer.md --> ### When discrepancies are found ```text PR Description Review - PR #<NUMBER> ════════════════════════════════════════ Reviewing: <TITLE> [✓] <N> claims verified [✗] <N> discrepancies found <For each discrepancy, one line in this format:> [Missing] <description of unmentioned change> [Inaccurate] <description of incorrect claim> [Incomplete] <description of vague claim> [Scope mismatch] <description of scope issue> Suggested PR Description: ───────────────────────── ## Summary - <bullet points reflecting actual implementation> ``` Rules for the suggested description: - Reflect the **actual diff**, not the original claims - Use concise bullet points - Group related changes logically - Do not include changes that are not in the diff ### When no discrepancies are found ```text PR Description Review - PR #<NUMBER> ════════════════════════════════════════ Reviewing: <TITLE> [✓] <N> claims verified [✗] 0 discrepancies found The PR description accurately reflects the implementation. No changes needed. ```
Related in Code Review
gstack
IncludedFast headless browser for QA testing and site dogfooding. Navigate pages, interact with elements, verify state, diff before/after, take annotated screenshots, test responsive layouts, forms, uploads, dialogs, and capture bug evidence. Use when asked to open or test a site, verify a deployment, dogfood a user flow, or file a bug with screenshots. (gstack)
startup-due-diligence
IncludedLegal due diligence review for seed-stage and Series A startups (US, Delaware C-Corp focus). Supports both investor and founder perspectives. Capabilities include: (1) Interactive document review and issue spotting; (2) Document request list generation; (3) Cap table and SAFE/convertible note analysis; (4) Red flag identification with severity ratings; (5) Diligence report generation. TRIGGERS: due diligence, DD, startup investment, cap table review, Series A, seed round, investor diligence, legal review startup, SAFE analysis, convertible note, 409A, founder vesting.
interview-master
IncludedThis skill should be used when the user asks to "generate interview questions", "prepare for interview", "optimize resume", "conduct mock interview", "analyze git commits for resume", "generate resume from code", "review my resume", or mentions interview preparation, career assistance, or extracting project experience from git history. Provides comprehensive interview and career development guidance for both job seekers and interviewers.
fix-issue
IncludedFixes GitHub issues using parallel analysis agents for root cause investigation, code exploration, and regression detection. Reads issue context from gh CLI, searches codebase and memory for related patterns, generates a fix with tests, and links the resolution back to the issue via PR. Includes prevention analysis to avoid recurrence. Use when debugging errors, resolving regressions, fixing bugs, or triaging issues.
sf-apex
IncludedGenerates and reviews Salesforce Apex code with 150-point scoring. TRIGGER when: user writes, reviews, or fixes Apex classes, triggers, test classes, batch/queueable/schedulable jobs, or touches .cls/.trigger files. DO NOT TRIGGER when: LWC JavaScript (use sf-lwc), Flow XML (use sf-flow), SOQL-only queries (use sf-soql), or non-Salesforce code.
swift-development
IncludedComprehensive Swift development for building, testing, and deploying iOS/macOS applications. Use when Claude needs to: (1) Build Swift packages or Xcode projects from command line, (2) Run tests with XCTest or Swift Testing framework, (3) Manage iOS simulators with simctl, (4) Handle code signing, provisioning profiles, and app distribution, (5) Format or lint Swift code with SwiftFormat/SwiftLint, (6) Work with Swift Package Manager (SPM), (7) Implement Swift 6 concurrency patterns (async/await, actors, Sendable), (8) Create SwiftUI views with MVVM architecture, (9) Set up Core Data or SwiftData persistence, or any other Swift/iOS/macOS development tasks.