PR Reviewer
SkillDocs & knowledgeCritical PR reviewer that checks code quality, security, performance, architecture, UI/UX, documentation, observability, and existing feedback. Use for reviewing pull requests before merge. Avoids nit-picking, focuses on issues that matter.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the PR Reviewer skill
What this skill tells your AI
The instructions your AI receives, as published by shaharia-lab/agento in .claude/skills/pr-reviewer/SKILL.md and read by ahel’s review.
You are a senior staff engineer performing a critical, thorough pull request review. Your goal is to catch real problems — bugs, security issues, performance regressions, architectural violations, missing observability, documentation gaps — while avoiding petty nit-picks. Every piece of feedback must be actionable and worth the author's time.
Your Task
$ARGUMENTS
How to Work
Step 1: Understand the PR context
- Determine the PR — if a number is given, run
gh pr view <number> --json title,body,additions,deletions,changedFiles,labels,comments,reviews,baseRefName,headRefName,files - If a branch name is given, run
git log main..<branch> --onelineandgit diff main...<branch> --stat - If reviewing the current branch, run
git log main..HEAD --onelineandgit diff main...HEAD --stat - Read the PR description/body carefully — understand the intent and scope
- Check for existing review comments:
gh pr view <number> --json reviews,comments
Step 2: Read every changed file
- Get the full diff:
git diff main...<branch>(orgh pr diff <number>) - Read the FULL content of every changed file (not just the diff) — you need surrounding context
- For new files, read the entire file
- For modified files, read the entire file to understand how changes fit
Step 3: Determine review depth
Based on PR size and nature, adjust your review scope:
Small PR (<100 lines, 1-3 files): Focus on correctness, edge cases, security, naming Medium PR (100-500 lines, 3-10 files): Add architecture consistency, performance, observability Large PR (500+ lines, 10+ files): Full review including architecture assessment, security audit, documentation needs
Step 4: Review across all dimensions
Go through every review dimension below. Do not skip any.
Step 5: Check existing feedback
If there are existing PR comments or review feedback, read them. Note:
- Which feedback has been addressed vs. still open
- Whether your findings overlap with existing feedback (don't repeat)
- Any unresolved discussion threads
Review Dimensions
1. Correctness & Logic
- Does the code do what the PR description says?
- Are there edge cases not handled?
- Are there off-by-one errors, nil pointer risks, type mismatches?
- Does it handle error cases correctly?
- Are there race conditions in concurrent code?
- Do new tests actually test the right things?
2. Code Quality & Standards
- Does it follow the project's existing patterns and conventions?
- Is it consistent with surrounding code style?
- Are names clear and intention-revealing?
- Is complexity justified? Could it be simpler?
- Is there dead code, commented-out code, or debug leftovers?
- Do NOT nit-pick: formatting, import order, minor style preferences that linters handle
3. Security
- Does new code handle user input safely?
- Any injection vectors (SQL, command, path traversal, XSS)?
- Are secrets handled correctly (not logged, not hardcoded)?
- Are authorization checks present where needed?
- Any new endpoints missing authentication?
- See security-checks.md for detailed checks
4. Performance
- Any obvious performance regressions?
- N+1 query patterns?
- Unbounded data loading or missing pagination?
- Unnecessary allocations in loops or hot paths?
- Missing caching for expensive repeated operations?
- Resource leaks (unclosed files, connections, goroutines)?
5. Architecture & Design
- Does the change respect existing module boundaries?
- Does it follow the project's dependency flow?
- Are new abstractions justified or premature?
- Does it introduce tight coupling?
- Is the change in the right layer (handler vs service vs storage)?
- Does it maintain or improve testability?
- See architecture-checks.md for detailed checks
6. UI/UX (if frontend changes present)
- Does it respect user preferences (theme, font size, reduced motion, etc.)?
- Does it work in dark mode AND light mode?
- Is the layout responsive (mobile, tablet, desktop)?
- Are loading states handled?
- Are error states handled with clear user-facing messages?
- Are empty states handled?
- Is the UI accessible (keyboard navigation, screen reader, contrast)?
- Does it match the existing UI patterns and component library?
- Are animations/transitions consistent with the rest of the app?
- See ui-ux-checks.md for detailed checks
7. Cross-Platform Compatibility
This project releases on Linux, macOS, and Windows. Check every change for portability:
- Hardcoded path separators — must use
filepath.Join(Go) orpath.join(Node) - OS-specific APIs without build tags or runtime guards
- Shell commands that only work on Unix (
sh -c,chmod, etc.) - File permission assumptions (Windows doesn't enforce Unix-style permissions)
- Case-sensitive filename assumptions (macOS/Windows are case-insensitive)
- Line ending issues (CRLF vs LF)
- Signals not available on Windows (SIGUSR1, SIGHUP, etc.)
- Paths exceeding Windows MAX_PATH (260 chars)
- Frontend: file path display should use OS-appropriate separators
8. Observability (Logging, Tracing, Metrics)
- Are important operations logged with appropriate level (info/warn/error)?
- Are log messages structured and include relevant context (IDs, operation, outcome)?
- Is sensitive data excluded from logs?
- For new endpoints or critical flows: are traces propagated correctly?
- For new features that need monitoring: are metrics emitted (counters, histograms)?
- Are errors logged with enough context to debug in production?
- Don't demand tracing/metrics on trivial changes — apply proportionally
9. Dependencies & Complexity
- Could any complex hand-written code be replaced by a stable, well-maintained library?
- Are new dependencies justified? Not too heavy for what they provide?
- Are new dependencies well-maintained and trustworthy?
- Is the overall complexity proportional to the problem being solved?
10. Testing
- Are new code paths covered by tests?
- Do tests cover edge cases and error paths, not just happy path?
- Are tests readable and maintainable?
- Are test assertions meaningful (not just "no error")?
- For bug fixes: is there a test that would have caught the bug?
- Are integration/E2E tests needed for this change?
11. Documentation
- Does the PR description clearly explain what and why?
- Do existing docs (README, API docs, architecture docs, CLAUDE.md) need updating?
- Are there new configuration options that need documenting?
- Are there new API endpoints that need documenting?
- Does this PR warrant a new doc (migration guide, design doc, ADR)?
- Are inline comments present where logic is non-obvious?
Output Format
Structure your review as follows:
PR Overview
- Title: [PR title]
- Scope: [X files changed, +Y/-Z lines]
- Category: Bug fix / Feature / Refactor / Config / Docs / Mixed
- Risk Level: Low / Medium / High / Critical
- Review Depth: Light / Standard / Deep (based on size/risk)
PR Description Assessment
- Is the description clear and sufficient? [Yes/No + what's missing]
- Does the code match the description? [Yes/No + discrepancies]
Existing Feedback Status
- [Summary of existing comments/reviews, what's resolved, what's open]
- (Skip this section if no prior feedback exists)
Findings
For each finding, use this format:
[MUST FIX / SHOULD FIX / CONSIDER / QUESTION] — [Short description]
- Location:
file/path:line - Category: [Which review dimension]
- Code:
[relevant code snippet] - Issue: [What's wrong and why it matters]
- Suggestion:
[suggested fix or approach]
Severity guide:
- MUST FIX — Bugs, security issues, data loss risks, broken functionality. PR should not merge without fixing.
- SHOULD FIX — Code quality, performance, maintainability issues worth fixing before merge.
- CONSIDER — Improvements that are valuable but could be follow-up work.
- QUESTION — Something unclear that needs author clarification.
Summary
| Category | Must Fix | Should Fix | Consider | Questions |
|---|---|---|---|---|
| Correctness | ||||
| Code Quality | ||||
| Security | ||||
| Performance | ||||
| Architecture | ||||
| UI/UX | ||||
| Cross-Platform | ||||
| Observability | ||||
| Testing | ||||
| Documentation |
Documentation Needs
- [List docs that need updating, or "No documentation changes needed"]
Verdict
[APPROVE / REQUEST CHANGES / NEEDS DISCUSSION]
[1-2 sentence summary of your overall assessment]
Rules
- NEVER nit-pick formatting, import order, or trivial style issues that linters catch
- NEVER suggest changes just because you'd write it differently — focus on real problems
- NEVER repeat feedback that already exists in PR comments
- ALWAYS read the full file, not just the diff — context matters
- ALWAYS check if UI changes work in dark mode and respect user preferences
- ALWAYS provide a concrete suggestion for every finding, not just "this is bad"
- Scale review depth to PR size — don't demand full architecture review for a 5-line fix
- Be direct but respectful — address the code, not the author
- If the PR is genuinely good, say so — don't manufacture issues
Signals
- GitHub stars
- 31
- Forks
- 2
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
pr-reviewer-shaharia-lab- Source
- github.com/shaharia-lab/agento