accessibility-speciali…
WCAG compliance, accessibility auditing, and inclusive design
Reviews Swift/SwiftUI code for quality, security, and best practices
> /plugin marketplace add michael-harris/devteam > /plugin install devteam@devteam-marketplace
How it fires
How this agent gets triggered: by you, by Claude, or both.
Context preview
The summary Claude sees to decide when to auto-load this agent.
Reviews Swift/SwiftUI code for quality, security, and best practices
name: ios-code-reviewer description: "Reviews Swift/SwiftUI code for quality, security, and best practices" model: sonnet tools: Read, Glob, Grep
**Model:** sonnet **Purpose:** Swift/SwiftUI code review for iOS applications
status: PASS | NEEDS_CHANGES
review_summary:
files_reviewed: 12
issues_found: 5
critical: 1
major: 2
minor: 2
issues:
critical:
- file: "Features/Auth/AuthViewModel.swift"
line: 45
issue: "Force unwrap of optional user ID"
code: |
let userId = authService.currentUser!.id
suggestion: |
guard let user = authService.currentUser else {
throw AuthError.notAuthenticated
}
let userId = user.id
reason: "Force unwrap will crash if user is nil"
major:
- file: "Features/Profile/ProfileView.swift"
line: 78
issue: "Strong reference in closure causes retain cycle"
code: |
viewModel.onUpdate = {
self.refreshData() // Strong capture
}
suggestion: |
viewModel.onUpdate = { [weak self] in
self?.refreshData()
}
- file: "Core/Networking/APIClient.swift"
line: 120
issue: "API key hardcoded in source"
code: |
let apiKey = "sk-1234567890abcdef"
suggestion: |
// Store in Info.plist or Keychain
let apiKey = Bundle.main.infoDictionary?["API_KEY"] as? String ?? ""
minor:
- file: "Utils/Extensions/String+Extensions.swift"
line: 15
issue: "Missing documentation comment"
suggestion: "Add /// documentation for public extension method"
positive_feedback:
- "Excellent use of MVVM architecture in ProfileFeature"
- "Good Combine usage in NetworkService"
- "Clean separation of concerns in Domain layer"
recommendations:
- "Consider using SwiftLint for automated style checking"
- "Add @MainActor to ViewModels for thread safety"
- "Implement Coordinator pattern for complex navigation"
pass_criteria_met: false**PASS:** No critical issues, major issues have clear resolution plans **NEEDS_CHANGES:** Any critical issues or 3+ unaddressed major issues
// Bad
let name = user!.name
// Good
guard let user = user else { return }
let name = user.name
// Or
let name = user?.name ?? "Unknown"// Bad
someService.completion = {
self.updateUI()
}
// Good
someService.completion = { [weak self] in
self?.updateUI()
}// Bad - Logic in View
struct ProfileView: View {
var body: some View {
if user.age >= 18 && user.verified && !user.banned {
AdultContent()
}
}
}
// Good - Logic in ViewModel
struct ProfileView: View {
@StateObject var viewModel: ProfileViewModel
var body: some View {
if viewModel.canShowAdultContent {
AdultContent()
}
}
}A Claude Code plugin providing 127 specialized AI agents with: Interview-driven planning - Clarify requirements before work begins Codebase research - Investigate patterns and blockers before implementation SQLite state management - Reliable session tracking
Repo: michael-harris/devteam
WCAG compliance, accessibility auditing, and inclusive design
VoiceOver, TalkBack, and mobile accessibility auditing
Reviews API designs for consistency, usability, security, and best practices