Refactor high-complexity React components in Dify frontend. Use when `pnpm analyze-component...
npx skills add existential-birds/beagle --skill "swift-code-review"
Install specific skill from multi-skill repository
# Description
Reviews Swift code for concurrency safety, error handling, memory management, and common mistakes. Use when reviewing .swift files for async/await patterns, actor isolation, Sendable conformance, or general Swift best practices.
# SKILL.md
name: swift-code-review
description: Reviews Swift code for concurrency safety, error handling, memory management, and common mistakes. Use when reviewing .swift files for async/await patterns, actor isolation, Sendable conformance, or general Swift best practices.
Swift Code Review
Quick Reference
| Issue Type | Reference |
|---|---|
| async/await, actors, Sendable, Task | references/concurrency.md |
| @Observable, @ObservationIgnored, @Bindable | references/observable.md |
| throws, Result, try?, typed throws | references/error-handling.md |
| Force unwraps, retain cycles, naming | references/common-mistakes.md |
Review Checklist
- [ ] No force unwraps (
!) on runtime data (network, user input, files) - [ ] Closures stored as properties use
[weak self] - [ ] Delegate properties are
weak - [ ] Independent async operations use
async letorTaskGroup - [ ] Long-running Tasks check
Task.isCancelled - [ ] Actors have mutable state to protect (no stateless actors)
- [ ] Sendable types are truly thread-safe (beware
@unchecked) - [ ] Errors handled explicitly (no empty catch blocks)
- [ ] Custom errors conform to
LocalizedErrorwith descriptive messages - [ ] Nested @Observable objects are also marked @Observable
- [ ] @Bindable used for two-way bindings to Observable objects
When to Load References
- Reviewing async/await, actors, or TaskGroups β concurrency.md
- Reviewing @Observable or SwiftUI state β observable.md
- Reviewing error handling or throws β error-handling.md
- General Swift review β common-mistakes.md
Review Questions
- Are async operations that could run concurrently using
async let? - Could actor state change across suspension points (reentrancy bug)?
- Is
@unchecked Sendablebacked by actual synchronization? - Are errors logged and presented with helpful context?
- Could any closure or delegate create a retain cycle?
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.