.claude/skills/code-review-developer/SKILL.md
Context-aware routing to code review guidelines. Use when reviewing pull requests, providing code feedback, or discussing review standards.
npx skillsauth add anyproto/anytype-swift code-review-developerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Context-aware routing to code review guidelines. Helps you conduct thorough, actionable code reviews following project standards.
Loc constants?ONLY include sections if issues exist:
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
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:
// menu() is used in BOTH places
.toolbar { Menu { menu() } } // Visible button (removed)
.contextMenu { menu() } // Long-press (still there!)
Before suggesting removal:
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
Scenario: A PR includes changes to a generated file (e.g., Generated/FeatureFlags.swift).
❌ WRONG:
"Edited generated file instead of running code generation"
(Assuming any change to a generated file is a violation)
✅ CORRECT: Check if the corresponding SOURCE file is also in the PR diff:
| Generated File | Source File |
|----------------|-------------|
| Generated/FeatureFlags.swift | FeatureDescription+Flags.swift |
| Generated/Strings.swift | .xcstrings files |
| Generated/ImageAssets.swift | Assets.xcassets folders |
| Modules/*/Generated/ | Templates or annotated source files |
Proper Workflow Pattern:
PR contains:
├── FeatureDescription+Flags.swift (source - CHANGED)
└── Generated/FeatureFlags.swift (generated - ALSO CHANGED)
→ This is CORRECT! Developer edited source and ran `make generate`
Actual Violation Pattern:
PR contains:
└── Generated/FeatureFlags.swift (generated - CHANGED)
(No corresponding source file changes)
→ This is WRONG! Developer manually edited generated file
Before flagging generated file edits:
Logic errors, potential bugs that need fixing
Format:
**FileName.swift:123**
Description of the bug and why it's a problem.
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.
Actual performance problems (not theoretical)
Format:
**ViewModel.swift:89**
N+1 query in loop - will cause performance issues with large datasets.
Real security vulnerabilities
Format:
**AuthService.swift:34**
Storing credentials in UserDefaults - should use Keychain.
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
Before finalizing your review:
Full Guide: .claude/CODE_REVIEW_GUIDE.md
For comprehensive coverage of:
CI/Automation: .github/workflows/pr-review-automation.md
For GitHub Actions integration:
gh CLIFrom CLAUDE.md:
Loc constants)// Generated using...)Code Quality:
✅ **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
## 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
## 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
IOS_DEVELOPMENT_GUIDE.md - Swift/iOS patterns to check againstLOCALIZATION_GUIDE.md - Verify no hardcoded stringsCODE_GENERATION_GUIDE.md - Verify no generated file editsNavigation: 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.
development
Smart router to testing patterns and practices. Use when writing unit tests, creating mocks, testing edge cases, or working with Swift Testing and XCTest frameworks.
development
Audit and improve SwiftUI runtime performance through code review and Instruments guidance. Use for diagnosing slow rendering, janky scrolling, excessive view updates, or layout thrash in SwiftUI apps.
development
SwiftUI view structure, composition, and best practices. Use when refactoring SwiftUI views, organizing view files, or extracting subviews.
development
Write, review, or improve SwiftUI code following best practices for state management, view composition, performance, macOS-specific APIs, and iOS 26+ Liquid Glass adoption. Use when building new SwiftUI features, refactoring existing views, reviewing code quality, or adopting modern SwiftUI patterns.