Review a pull request when requested by a peer. Use when reviewing PRs, providing code review feedback, or analyzing proposed changes. Supports GitHub and GitLab.
Assist me in reviewing this PR: $ARGUMENTS
Your own login as the reviewer (see tone.md for how to address each party). Whichever platform applies resolves. The other reads unavailable.
gh api graphql -f query='{viewer{login}}' --jq .data.viewer.login 2>/dev/null | grep . || echo "unavailable"glab api user 2>/dev/null | jq -r .username 2>/dev/null | grep . || echo "unavailable"--triage: assess the PR for sequencing instead of reviewing it (see Triage Mode). Default: off, which runs the full review workflow below.When --triage is set, stay read-only and assess the PR for sequencing. Gather just enough to judge scope: the PR body, the diff stat, and the files touched. Then report two things and stop.
review:code (low, medium, high, xhigh), with one-line reasoning.Research - Gather context and identify participants (see research.md)
Context - Determine review context using repository visibility. Private repositories use corporate defaults. Public repositories use open-source defaults. Check visibility via the platform API (gh api repos/OWNER/REPO --jq .visibility or glab api projects/ENCODED_PATH | jq .visibility). If ambiguous, ask me.
Review - Examine changed files and existing comments
Delegate - Run review:code for code-quality analysis. review:code reads the local diff, so run gh pr checkout first if not already on the PR branch. Summarize the diff (rough line count, files touched, sensitive areas) and signals from the PR body, propose an effort level with one-line reasoning, and confirm via AskUserQuestion before invoking. Skip the call for trivial PRs (docs-only, dep bumps). Effort heuristics:
Think - Evaluate along two axes. Requirement fulfillment: does the change deliver what was asked (see requirements.md)? Code quality: evaluate against priorities (see priorities.md) and smells (see smells.md), incorporating review:code findings. Keep the axes separate so a clean diff does not mask a missed requirement.
Map - Write the proposed comments to a JSON file (id, path, start_line, end_line, side, comment_type, content per comment), then map each to a platform position:
bun ${CLAUDE_SKILL_DIR}/scripts/mapping.ts map --platform <github|gitlab> \
--comments <path> --diff <path> --commit <head-sha>
GitLab also needs --base and --start from the MR diff_refs. The CLI runs the in-diff pre-check and returns { payloads, dropped }. An anchor outside a diff hunk lands in dropped (GitHub rejects it with 422 "Line could not be resolved"), so surface those to me and re-anchor rather than losing them. Skip this step when approving with no comments.
Post - Show me the mapped set, then on my go post as one batch and choose Approve / Comment / Request Changes based on severity. GitHub: a pending review submitted as a batch. GitLab: draft notes published together.
See tone.md for comment style guidelines.
This skill assumes GitHub. For GitLab merge requests, load gitlab:merge-request for the submission workflow; use draft-note.ts submit to publish draft notes with an optional summary and review decision.
Comments post through the programmatic path (mcp__github / gh / glab). On follow-up, resolve addressed threads natively on the platform: review-threads.ts for GitHub, the resolve flow in gitlab:merge-request for GitLab.
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer