pshashanka

PR Review Agent — Design skill for Claude Code

Design community

LangGraph.js PR-review agent on Claude: per-file analysis via MCP, coverage and risk checks, structured review, human approval before posting, checkpointed and resumable, with a Next.js UI streaming s.

How to install PR Review Agent

This entry records only its repository, not the path inside it, so there is no exact command to give. Open pshashanka/pr-review-agent and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

What PR Review Agent does

LangGraph.js PR-review agent on Claude: per-file analysis via MCP, coverage and risk checks, structured review, human approval before posting, checkpointed and resumable, with a Next.js UI streaming steps over SSE.

Alternatives in Design

  • Kode Agent — Kode Agent — Design for post-human workflows 5k ★
  • Site — Crawl a whole site and synthesize ONE canonical design system across all pages — unified tokens, coverage map 3.6k ★
  • Clui Cc — A lightweight, transparent desktop overlay for Claude Code on macOS 956 ★

README

pr-review-agent

A LangGraph.js agent that reviews a pull request: it summarizes the change, analyzes each file, checks whether the tests cover it, flags risks, and writes a structured review. **Nothing is posted until a human approves it.** It comes with a CLI and a Next.js UI that streams the agent's steps live.

It's part two of a three-part series on production AI engineering for code review:

Repo Role
`mcp-repo-tools` MCP server: the agent's only, read-only view of the repository
pr-review-agent (this) The agent: orchestration, model calls, human approval, publishing
gameable-tests-bench Next: tasks with deliberately weak tests, and a grader that catches agents gaming them

How it works

flowchart TD
  start([base, head, PR?]) --> load[loadChange
list_changed_files → pinned SHAs] load --> plan[planReview
skip lockfiles/generated/binary/hidden · fetch patches] plan --> summarize[summarizeDiff] plan -->|Send × N files| analyze[analyzeFile
bounded read_file / search_code loop] plan --> coverage[checkCoverage
name pairing + optional run_tests + model] plan --> risks[flagRisks
rules + model] summarize & analyze & coverage & risks --> synth[synthesize
verdict + curated finding ids] synth --> validate[validateReview
real ids only · no approve with a blocker/major] validate --> approval{{humanApproval
interrupt}} approval -->|approve / edit| post[postReview
GitHub or file · idempotent] approval -->|rejec