From pair-review
Runs AI-powered code review analysis via pair-review MCP server. Polls for completion, presents curated suggestions, and integrates results into pair-review web UI. Requires MCP connection.
npx claudepluginhub in-the-loop-labs/pair-review --plugin pair-reviewThis skill uses the workspace's default tool permissions.
Perform a three-level code review analysis using pair-review's built-in analysis engine. Unlike the `code-critic:analyze` skill (which spawns analysis agents directly within the coding agent's context), this skill delegates all analysis work to the pair-review server via MCP tool calls. Use this skill when the pair-review MCP server is connected; use `code-critic:analyze` when it is not.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Checks Next.js compilation errors using a running Turbopack dev server after code edits. Fixes actionable issues before reporting complete. Replaces `next build`.
Perform a three-level code review analysis using pair-review's built-in analysis engine. Unlike the code-critic:analyze skill (which spawns analysis agents directly within the coding agent's context), this skill delegates all analysis work to the pair-review server via MCP tool calls. Use this skill when the pair-review MCP server is connected; use code-critic:analyze when it is not.
Prerequisites: The pair-review MCP server must be connected with the start_analysis, get_ai_analysis_runs, and get_ai_suggestions tools available.
Determine what is being reviewed:
git rev-parse HEAD to get the HEAD SHA, and use the current working directory as the path.owner/repo) and PR number. If the user provides a PR URL, extract these from it. If available, run gh pr view --json number,headRepository or similar.Collect:
owner/repo string and PR numberCall the start_analysis MCP tool with the appropriate parameters:
For local mode:
{
"path": "/absolute/path/to/repo",
"headSha": "abc123...",
"tier": "balanced",
"skipLevel3": false,
"customInstructions": "optional instructions"
}
For PR mode:
{
"repo": "owner/repo",
"prNumber": 42,
"tier": "balanced",
"skipLevel3": false,
"customInstructions": "optional instructions"
}
Pass the tier, skipLevel3, and customInstructions arguments from the skill invocation.
The tool returns immediately with { analysisId, runId, reviewId, status: "started" }.
Analysis typically takes 1-5 minutes depending on the size of the changes and the tier.
Poll using get_ai_analysis_runs with limit: 1 and the review coordinates from step 1. Wait approximately 10 seconds between polls.
For local mode:
{
"path": "/absolute/path/to/repo",
"headSha": "abc123...",
"limit": 1
}
For PR mode:
{
"repo": "owner/repo",
"prNumber": 42,
"limit": 1
}
Verify that runs[0].id matches the runId returned from step 2 to ensure you are polling the correct analysis (another tab or user could have triggered a concurrent run).
Check the status field in runs[0]:
"running": Analysis is still in progress — keep polling"completed": Analysis finished — proceed to fetch results using the same runId"failed": Analysis failed — report the failure to the userKeep polling until status is completed or failed. Report progress to the user between polls.
start_analysis returns an error, report it to the user with the error message. Common causes: the PR has not been loaded in pair-review yet, the worktree is missing, or invalid parameters.status: "failed", report the failure to the user. The error field in the run object contains the failure reason.get_ai_suggestions returns an empty list after a completed analysis, this means no issues were found -- report a clean result.Once the analysis is complete, call get_ai_suggestions to retrieve the curated suggestions.
Pass the runId from step 2's start_analysis response (same value used for polling):
{
"runId": "the-runId-from-step-2"
}
If runId is unavailable, fall back to resolving by review coordinates:
For local mode:
{
"path": "/absolute/path/to/repo",
"headSha": "abc123..."
}
For PR mode:
{
"repo": "owner/repo",
"prNumber": 42
}
This returns the final orchestrated suggestions from the latest analysis run.
Present the curated suggestions to the user, organized by file. For each suggestion show:
Group suggestions by file for easy navigation. Highlight critical issues (bugs, security) prominently.
If no suggestions were found, report that the analysis completed cleanly.