Installs: 0
Used in: 1 repos
Updated: 1h ago
$
npx ai-builder add skill anyproto/code-review-developerInstalls to .claude/skills/code-review-developer/
# Code Review Developer (Smart Router)
## Purpose
Context-aware routing to code review guidelines. Helps you conduct thorough, actionable code reviews following project standards.
## When Auto-Activated
- Reviewing pull requests or code changes
- Keywords: code review, PR review, review code, pull request, approve, issues
- Discussing review comments or feedback
## šØ CRITICAL RULES (NEVER VIOLATE)
1. **Be LEAN and ACTIONABLE** - Only report actual issues, no noise
2. **NO praise sections** - No "Strengths", no "no concerns" statements
3. **NO design suggestions** - You cannot see visual design (padding, margins, colors)
4. **Reference file:line** - Always include specific locations for issues
5. **If clean, just approve** - "ā
**Approved** - No issues found" (nothing else!)
6. **Check CLAUDE.md** - Review against project conventions
## š Quick Review Workflow
### 1. Read the Changes
- Understand what the PR is trying to do
- Check file diffs thoroughly
### 2. Check Against CLAUDE.md
- Localization: Using `Loc` constants?
- Generated files: Not editing generated code?
- Code style: Following Swift best practices?
- Tests: Updated when refactoring?
### 3. Look for Real Issues
**ONLY include sections if issues exist:**
- **Bugs/Issues** - Logic errors, potential bugs
- **Best Practices** - Violations of CLAUDE.md guidelines
- **Performance** - Actual performance problems
- **Security** - Real security vulnerabilities
### 4. Format Your Review
**If clean**:
```
ā
**Approved** - No issues found
```
**CRITICAL**: When approving, output ONLY the line above. NO additional explanation, NO listing what the PR does, NO praise. Just the approval line.
**If issues found**:
```
## Bugs/Issues
**ChatView.swift:45**
Potential race condition when...
---
ā ļø **Minor Issues** - Fix race condition
```
## ā ļø Common Mistakes to Avoid
### Assuming Code is Unused After UI Removal
**Scenario**: PR removes a menu button but leaves the `menu` parameter
**ā WRONG**:
```
"The menu parameter is now unused and should be removed"
```
**ā
CORRECT**:
```
Check if menu is used elsewhere:
- Long-press context menu?
- Dual UX pattern (button + long-press)?
- Multiple consumers?
```
**Example**:
```swift
// menu() is used in BOTH places
.toolbar { Menu { menu() } } // Visible button (removed)
.contextMenu { menu() } // Long-press (still there!)
```
**Before suggesting removal**:
- [ ] Searched ALL usages in the file
- [ ] Checked for dual UX patterns
- [ ] Understood purpose of each flag
- [ ] Asked about design intent if unsure
### Not Understanding Conditional Flags
**Scenario**: Component has `allowMenuContent` and `allowContextMenuItems`
**ā WRONG**:
```
"These flags serve the same purpose, consolidate them"
```
**ā
CORRECT**:
```
They control DIFFERENT UI elements:
- allowMenuContent: Visible button
- allowContextMenuItems: Long-press menu
- Can be independently enabled/disabled
```
## šÆ Review Sections (Include ONLY If Issues Exist)
### Bugs/Issues
Logic errors, potential bugs that need fixing
**Format**:
```
**FileName.swift:123**
Description of the bug and why it's a problem.
```
### Best Practices
Violations of Swift/SwiftUI conventions or CLAUDE.md guidelines (code quality only, not design)
**Format**:
```
**FileName.swift:45**
Using hardcoded strings instead of Loc constants.
```
### Performance
Actual performance problems (not theoretical)
**Format**:
```
**ViewModel.swift:89**
N+1 query in loop - will cause performance issues with large datasets.
```
### Security
Real security vulnerabilities
**Format**:
```
**AuthService.swift:34**
Storing credentials in UserDefaults - should use Keychain.
```
## š Summary Format
**End with ONE sentence with status emoji**:
```
ā
**Approved** - Clean implementation following guidelines
ā ļø **Minor Issues** - Fix hardcoded strings and race condition
šØ **Major Issues** - Critical security vulnerability in auth flow
```
## š Analysis Checklist
Before finalizing your review:
- [ ] Checked against CLAUDE.md conventions
- [ ] Verified localization (no hardcoded strings)
- [ ] Checked for generated file edits
- [ ] Looked for race conditions
- [ ] Verified tests/mocks updated if refactoring
- [ ] Searched for ALL usages before suggesting removal
- [ ] Only included sections with actual issues
- [ ] No design/UI suggestions (padding, margins, colors)
- [ ] Referenced specific file:line for each issue
- [ ] Ended with status emoji summary
## š Complete Documentation
**Full Guide**: `.claude/CODE_REVIEW_GUIDE.md`
For comprehensive coverage of:
- Core review rules
- Common analysis mistakes (with examples)
- Review sections and formats
- Complete checklist
**CI/Automation**: `.github/workflows/pr-review-automation.md`
For GitHub Actions integration:
- Context variables (REPO, PR_NUMBER, COMMIT_SHA)
- Valid runners and Xcode versions
- Review comment strategies
- How to post reviews via `gh` CLI
## š” Quick Reference
### What to Check
**From CLAUDE.md**:
- [ ] No hardcoded strings (use `Loc` constants)
- [ ] No generated file edits (`// Generated using...`)
- [ ] Tests/mocks updated when refactoring
- [ ] Feature flags for new features
- [ ] No whitespace trimming
- [ ] Async/await over completion handlers
**Code Quality**:
- [ ] Swift best practices (guard, @MainActor)
- [ ] Proper error handling
- [ ] No force unwraps in production code
- [ ] Memory leaks (weak/unowned where needed)
### What NOT to Comment On
- ā Design/UI spacing (padding, margins)
- ā Colors or visual appearance
- ā Praise or "Strengths" sections
- ā "No concerns" statements
- ā Theoretical performance issues
- ā Style preferences not in CLAUDE.md
## š Example Reviews
### Example 1: Clean PR
```
ā
**Approved** - No issues found
```
**That's it! Absolutely nothing else. Not even in comments posted to GitHub.**
**ā WRONG** (too verbose):
```
ā
**Approved** - No issues found
The PR correctly implements per-chat notification overrides:
- Added force list properties with proper subscription keys
- effectiveNotificationMode(for:) method correctly prioritizes...
```
**ā
CORRECT**:
```
ā
**Approved** - No issues found
```
### Example 2: Minor Issues
```
## Best Practices
**ChatView.swift:34**
Using hardcoded string "Send Message" instead of localization constant.
Should be: `Text(Loc.sendMessage)`
**ChatViewModel.swift:89**
Tests not updated after renaming `sendMessage()` to `send()`.
Update `ChatViewModelTests.swift` to use new method name.
---
ā ļø **Minor Issues** - Fix hardcoded string and update tests
```
### Example 3: Critical Issue
```
## Bugs/Issues
**AuthService.swift:45**
Storing password in UserDefaults (line 45). This is a security vulnerability.
Should use Keychain instead: `KeychainService.store(password, for: key)`
---
šØ **Major Issues** - Fix password storage security vulnerability
```
## š Related Skills & Docs
- **ios-dev-guidelines** ā `IOS_DEVELOPMENT_GUIDE.md` - Swift/iOS patterns to check against
- **localization-developer** ā `LOCALIZATION_GUIDE.md` - Verify no hardcoded strings
- **code-generation-developer** ā `CODE_GENERATION_GUIDE.md` - Verify no generated file edits
---
**Navigation**: This is a smart router. For detailed review standards and common mistakes, always refer to `.claude/CODE_REVIEW_GUIDE.md`.
**For CI/automation**: See `.github/workflows/pr-review-automation.md` for GitHub Actions integration.
Quick Install
$
npx ai-builder add skill anyproto/code-review-developerDetails
- Type
- skill
- Author
- anyproto
- Slug
- anyproto/code-review-developer
- Created
- 2d ago