/review
Performs a comprehensive PR code review. Reads the linked GitHub issue for context, runs quality checks, and reviews code for bugs, architecture, conventions, and frontend best practices. Posts structured findings as a PR review.
$ npx -y skills add dcouple/Pane --skill review --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/review
Context preview
The summary Claude sees to decide when to auto-load this skill.
Performs a comprehensive PR code review. Reads the linked GitHub issue for context, runs quality checks, and reviews code for bugs, architecture, conventions, and frontend best practices. Posts structured findings as a PR review.
SKILL.md
review.SKILL.mdname: review
description: Performs a comprehensive PR code review. Reads the linked GitHub issue for context, runs quality checks, and reviews code for bugs, architecture, conventions, and frontend best practices. Posts structured findings as a PR review.
argument-hint: "[PR number or URL]"
disable-model-invocation: true
PR Review Agent
Review a pull request for correctness, architecture, conventions, and frontend best practices.
Step 1: Gather Context
Read the PR
1. Fetch PR metadata: `gh pr view $ARGUMENTS --json number,title,body,headRefName,baseRefName,files,url` 2. Fetch the full diff: `gh pr diff $ARGUMENTS` 3. List changed files: `gh pr view $ARGUMENTS --json files --jq '.files[].path'`
Read the linked issue
1. Extract issue references from the PR body (look for `Closes #N`, `Fixes #N`, `Resolves #N`, or `#N` references) 2. For each linked issue, read the full issue and comments:
gh issue view <number> --json title,body,comments
3. Look for:
- **Investigation reports** (between `<!-- BUG-INVESTIGATION -->` markers) — understand the root cause
- **Implementation plans** (between `<!-- IMPLEMENTATION-PLAN -->` markers) — understand the intended approach
- **Team feedback** in comments — requirements, constraints, or scope changes
4. If no issue is linked, note this in the review as an informational comment
Understand the intent
Before reviewing any code, write down (internally):
- **What problem does this PR solve?** (from the issue)
- **What approach was planned?** (from the plan, if any)
- **What constraints or conventions apply?** (from CLAUDE.md)
Step 2: Run Quality Gates
Run these checks and record results:
npm run typecheck
npm run lint
If either fails, include the specific errors in the review as **must-fix** items.
Step 3: Review the Diff
Read the shared review criteria at `.claude/skills/review/CRITERIA.md`. This is the single source of truth for what to check.
For each changed file, evaluate against **all 7 sections** of the criteria. Organize findings by severity:
- **Sections 1-2 (Must-Fix):** Bugs, correctness, security. The PR should not merge without addressing these.
- **Sections 3-5 (Should-Fix):** Architecture, React patterns, TypeScript. Strong recommendation to fix.
- **Sections 6-7 (Suggestion):** Tailwind/shadcn, conventions. Nice-to-have, not blocking.
Step 4: Check Completeness Against Issue
If an implementation plan exists in the issue:
- Verify every task in the plan has corresponding code changes
- Flag any planned work that appears missing or partially implemented
- Note any scope additions not in the original plan
Step 5: Post the Review
Post findings as a **GitHub PR review** using `gh api`, not as an issue comment.
Severity levels
- **Must-Fix** — Bugs, security issues, type/lint failures. The PR should not merge without addressing these.
- **Should-Fix** — Architecture violations, missing patterns, significant code quality issues. Strong recommendation to fix.
- **Suggestion** — Style, naming, minor improvements. Nice-to-have, not blocking.
Review format
Post **inline comments** on specific lines where possible using the PR review API. Then post a summary review.
# Submit review with inline comments
gh api repos/{owner}/{repo}/pulls/{pr_number}/reviews \
--method POST \
-f body="$(cat <<'EOF'
## PR Review
**Issue context:** #[issue number] — [one-line summary of what this PR should accomplish]
### Quality Gates
- Typecheck: PASS/FAIL
- Lint: PASS/FAIL
### Must-Fix ([count])
[Numbered list of blocking issues with file:line references]
### Should-Fix ([count])
[Numbered list of recommended fixes with file:line references]
### Suggestions ([count])
[Numbered list of non-blocking improvements]
### Completeness
[If linked to an issue with a plan: status of each planned task]
[If no plan: general assessment of whether the PR fully addresses the issue]
### Summary
[1-3 sentences: overall assessment and whether this is ready to merge after fixes]
EOF
)" \
-f event="COMMENT" \
--json urlUse `event: "REQUEST_CHANGES"` if there are must-fix items, `"APPROVE"` if clean, `"COMMENT"` otherwise.
Inline comment format
For each specific issue, post an inline comment on the relevant line:
gh api repos/{owner}/{repo}/pulls/{pr_number}/reviews \
--method POST \
-f event="COMMENT" \
-f body="Summary" \
--jq '.id'Then add comments to the review using the review comments API. Group related comments into a single review submission.
Rules
- **Read the issue first.** Never review code without understanding the intent.
- **Be specific.** Every finding must include a file path, line number, and concrete suggestion.
- **Prioritize correctly.** A real bug matters more than a style nit. Don't bury important findings in noise.
- **Don't nitpick what lint catches.** If ESLint or TypeScript will catch it, don't duplicate the feedback — just report the gate failure.
- **Acknowledge good work.** If the PR is well-structured or handles edge cases well, say so briefly.
- **Stay in scope.** Review the diff, not the entire codebase. Don't suggest refactoring unrelated code.
- Follow ALL conventions in CLAUDE.md
Read more
name: review description: Performs a comprehensive PR code review. Reads the linked GitHub issue for context, runs quality checks, and reviews code for bugs, architecture, conventions, and frontend best practices. Posts structured findings as a PR review. argument-hint: "[PR number or URL]" disable-model-invocation: true
PR Review Agent
Review a pull request for correctness, architecture, conventions, and frontend best practices.
Step 1: Gather Context
Read the PR
1. Fetch PR metadata: `gh pr view $ARGUMENTS --json number,title,body,headRefName,baseRefName,files,url` 2. Fetch the full diff: `gh pr diff $ARGUMENTS` 3. List changed files: `gh pr view $ARGUMENTS --json files --jq '.files[].path'`
Read the linked issue
1. Extract issue references from the PR body (look for `Closes #N`, `Fixes #N`, `Resolves #N`, or `#N` references) 2. For each linked issue, read the full issue and comments:
gh issue view <number> --json title,body,comments
3. Look for:
- **Investigation reports** (between `<!-- BUG-INVESTIGATION -->` markers) — understand the root cause
- **Implementation plans** (between `<!-- IMPLEMENTATION-PLAN -->` markers) — understand the intended approach
- **Team feedback** in comments — requirements, constraints, or scope changes
4. If no issue is linked, note this in the review as an informational comment
Understand the intent
Before reviewing any code, write down (internally):
- **What problem does this PR solve?** (from the issue)
- **What approach was planned?** (from the plan, if any)
- **What constraints or conventions apply?** (from CLAUDE.md)
Step 2: Run Quality Gates
Run these checks and record results:
npm run typecheck
npm run lint
If either fails, include the specific errors in the review as **must-fix** items.
Step 3: Review the Diff
Read the shared review criteria at `.claude/skills/review/CRITERIA.md`. This is the single source of truth for what to check.
For each changed file, evaluate against **all 7 sections** of the criteria. Organize findings by severity:
- **Sections 1-2 (Must-Fix):** Bugs, correctness, security. The PR should not merge without addressing these.
- **Sections 3-5 (Should-Fix):** Architecture, React patterns, TypeScript. Strong recommendation to fix.
- **Sections 6-7 (Suggestion):** Tailwind/shadcn, conventions. Nice-to-have, not blocking.
Step 4: Check Completeness Against Issue
If an implementation plan exists in the issue:
- Verify every task in the plan has corresponding code changes
- Flag any planned work that appears missing or partially implemented
- Note any scope additions not in the original plan
Step 5: Post the Review
Post findings as a **GitHub PR review** using `gh api`, not as an issue comment.
Severity levels
- **Must-Fix** — Bugs, security issues, type/lint failures. The PR should not merge without addressing these.
- **Should-Fix** — Architecture violations, missing patterns, significant code quality issues. Strong recommendation to fix.
- **Suggestion** — Style, naming, minor improvements. Nice-to-have, not blocking.
Review format
Post **inline comments** on specific lines where possible using the PR review API. Then post a summary review.
# Submit review with inline comments
gh api repos/{owner}/{repo}/pulls/{pr_number}/reviews \
--method POST \
-f body="$(cat <<'EOF'
## PR Review
**Issue context:** #[issue number] — [one-line summary of what this PR should accomplish]
### Quality Gates
- Typecheck: PASS/FAIL
- Lint: PASS/FAIL
### Must-Fix ([count])
[Numbered list of blocking issues with file:line references]
### Should-Fix ([count])
[Numbered list of recommended fixes with file:line references]
### Suggestions ([count])
[Numbered list of non-blocking improvements]
### Completeness
[If linked to an issue with a plan: status of each planned task]
[If no plan: general assessment of whether the PR fully addresses the issue]
### Summary
[1-3 sentences: overall assessment and whether this is ready to merge after fixes]
EOF
)" \
-f event="COMMENT" \
--json urlUse `event: "REQUEST_CHANGES"` if there are must-fix items, `"APPROVE"` if clean, `"COMMENT"` otherwise.
Inline comment format
For each specific issue, post an inline comment on the relevant line:
gh api repos/{owner}/{repo}/pulls/{pr_number}/reviews \
--method POST \
-f event="COMMENT" \
-f body="Summary" \
--jq '.id'Then add comments to the review using the review comments API. Group related comments into a single review submission.
Rules
- **Read the issue first.** Never review code without understanding the intent.
- **Be specific.** Every finding must include a file path, line number, and concrete suggestion.
- **Prioritize correctly.** A real bug matters more than a style nit. Don't bury important findings in noise.
- **Don't nitpick what lint catches.** If ESLint or TypeScript will catch it, don't duplicate the feedback — just report the gate failure.
- **Acknowledge good work.** If the PR is well-structured or handles edge cases well, say so briefly.
- **Stay in scope.** Review the diff, not the entire codebase. Don't suggest refactoring unrelated code.
- Follow ALL conventions in CLAUDE.md
Repo: dcouple/Pane
Other skills on pane.
- /commit
Selectively stages and commits only the changes related to the current session, skipping unrelated modifications.
Open skill - /create-plan
Creates a reconciled implementation plan by combining a structured plan draft with a normalized intent brief and a PRP-style research dossier, then auto-reviews the final plan. Use when planning a new feature or significant change.
Open skill - /discussion
Have an interactive discussion about a topic, approach, or feature. Researches the codebase as needed, talks through options, and updates ./tmp/context.md with decisions. Use when you want to think through an approach before planning.
Open skill - /implement
Executes an approved plan with one primary implementation stream by default, using bounded parallel sidecars only when the write scopes are truly disjoint. Supports default Claude execution or an explicit Codex executor option. Automatically reviews the result for completeness
Open skill - /investigate
Investigates bugs through hypothesis-driven root cause analysis. Automatically invoked when the user reports a bug, error, broken behavior, or something not working as expected. Use when something is broken, failing, or behaving unexpectedly.
Open skill - /prepare-pr
Commits changes grouped by done-plans, rebases main, builds API and webapp, then creates or updates a PR. Replaces the commit command. Use when you're ready to open or update a pull request.
Open skill

