Reviews Swift and SwiftUI pull requests, diffs, and changed code for evidence-backed correctness, concurrency, ownership, errors, Observation state, and lifecycle risks. Use when the requested deliverable is a code review, then route deep fixes to specialist skills.
91%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Low
Low-risk findings worth noting
License: Apache-2.0. See NOTICE.md for scope.
Review code as an evidence-backed diff review, not as a style sweep. Report only issues that can change correctness, safety, user-visible behavior, or maintenance cost. Keep the review self-contained and use the references below only when their topics appear in the code.
.swift files and the directly related callers, parents, and
tests. If no diff is supplied, ask for or identify an explicit file list before
reporting issues.Package.swift, the project, or the target. Do not give
version-specific advice from memory.swift-concurrency, swiftui-patterns, swiftui-responsive-layout,
swiftui-performance, ios-accessibility, swift-security,
ios-networking, swiftdata, storekit, push-notifications, or another
matching specialist when that framework or symptom is the primary concern.Follow this order so that a plausible-looking hunch does not become a false positive:
swiftlint lint --quiet on the scoped paths and record the
result before reporting style-related issues.Use this compact, actionable format:
## Review Summary
Scope: <files or no Swift files>
Baseline: <Swift/language mode/deployment target, or unknown>
Checks: <references and specialist boundaries applied>
## Issues
### Critical (Blocking)
1. [Sources/File.swift:42] ISSUE_TITLE
- Issue: <what the code does>
- Why: <observable impact>
- Fix: <smallest safe correction>
### Major (Should Fix)
### Minor (Consider Fixing)
### Informational (For Awareness)
## Good Patterns
- [Sources/File.swift:18] <specific behavior worth preserving>
## Verdict
Ready: Yes | No | With fixes 1-N
Rationale: <one or two sentences>Every issue needs an exact [FILE:LINE] proof and a severity. If there are no
issues, say Protocol applied; no issues and explain the scope checked. Do not
invent findings to fill a section.
[weak self] mechanically on closures that do not introduce a retain cycle.try!/force unwraps have a proven
invariant or an explicit failure path.[weak self] mechanically.Sendable and @unchecked Sendable claims match the actual synchronization
and value semantics.@State owns view-local observable
identity, @Bindable supplies two-way bindings, and non-observed dependencies
are excluded deliberately.Sendable: references/concurrency.md@State, @Bindable, and environment ownership: references/observation.mdthrows, Result, try?, typed throws, and error boundaries: references/error-handling.mdthienqo/ios-skills
6bf8b62
Also appears in
last in sync Nov 2, 2026
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.