Check APIs, behavior, and performance evidence together
SwiftUI Pro
Review Code Against Real Project Constraints
Paul Hudson’s SwiftUI review Skill loads task-specific rules for APIs, data flow, navigation, layout, accessibility, and performance. Findings point to files and lines while preserving project targets and scope.

Agent Skills in Xcode
View example sourceHosts listed by the author
- Claude Code
- Codex
- Cursor
- GitHub stars
- 6,412
- Version
- 2.0.0
- Checked
- Categories
- Engineering
Start with code whose behavior you can define
Choose a binding, button, or list. Ask what is wrong, how it affects someone using the app, and whether the proposed fix preserves behavior. Recognizing when a rule should not be applied is more useful than producing a longer replacement list.
Pick a task and get started
Install and confirm that the Skill and references are readable, then try the first task with its supplied input. The other tasks use real project material and define what will be delivered and verified.
A supplied binding and icon-button exercise for first use. Distinguish supported findings from justified exceptions.
Install SwiftUI Pro in the target project
Run the author’s command from the target project, selecting your assistant and project scope. Confirm swiftui-pro and its references are readable afterward. Claude plugins are an alternative documented in the README; adding a marketplace and installing the plugin are separate steps.
Read the author’s setup guidenpx skills add https://github.com/twostraws/swiftui-agent-skill --skill swiftui-proConfirm the entry point, then try the static review
After installation, check that swiftui-pro is available in your configured assistant. The author documents /swiftui-pro in Claude Code, $swiftui-pro in Codex, and invocation by name in natural language. The first task’s iOS 17 / Xcode 27.1 context is hypothetical and needs no new app. For real code, use actual project settings and SDK declarations.
Read the author’s installation and invocation instructionsGive your AI this first task
Prompts, exercise excerpts, and report filenames are editorial conventions. We did not install the Skill, compile SwiftUI, or run measurements. The listed artifacts are task requirements.
Use swiftui-pro for a focused static review. Confirm that swiftui-pro’s SKILL.md and api.md, data.md, and accessibility.md in its references directory are readable. Do not load performance-plus.md. This ProfileView.swift excerpt is an editorial exercise, not a live project. Assume Xcode 27.1 / Swift 6.4 with an iOS 17 deployment target. ProfileModel is a bindable @MainActor @Observable class with a String username and save() and addContact() methods. addContact creates a contact. The requirement is to call save for every write through the text-field binding, including an equal-value write, but not for a direct programmatic assignment to username. struct ProfileView: View { @Bindable var model: ProfileModel var body: some View { VStack { Text("Profile").foregroundColor(.blue) TextField("Username", text: Binding( get: { model.username }, set: { model.username = $0; model.save() } )) Button(action: model.addContact) { Image(systemName: "plus") } } } } Write swiftui-review.md, grouping findings by excerpt line, rule, actual consequence, and a short before/after change, followed by impact priority. Report supported problems only. Inspect the text color API, the icon button’s action name, and the binding setter’s side effect. A preference for projected bindings is not a reason to move save into onChange mechanically. Also provide binding-checks.md comparing a new value written through the binding, the same value written through it, and a new value assigned directly by code. Explain that onChange observes value changes rather than every binding write. Retain the custom binding if a replacement would change the requirement. Check Apple’s API declarations against the iOS 17 target. If the SDK cannot be inspected, state that limitation; do not raise the target. Produce review documents only. Label conclusions as static reasoning and compilation, VoiceOver, and event-count tests as not run.
Check what you receive
- swiftui-review.md identifies excerpt lines, consequences, and candidate code. The icon button needs a name conveying “Add Contact,” not merely the shape of its symbol.
- binding-checks.md compares three write paths. Preserve the specified saving behavior rather than treating a projected binding with onChange as an equivalent replacement in every case.
- Findings remain static reasoning. A real project still needs compilation, actual VoiceOver output, and side-effect counts checked.
More about this skill
The actual Skill name is swiftui-pro. It supports SwiftUI authoring and full or focused review. Its main file defines the review process, while 12 reference files cover APIs, views, data, navigation, design, resizing, accessibility, localization, performance, and Swift code. Focused work loads only relevant references; deeper performance guidance has a separate entry condition.
Findings are grouped by file with line numbers, a named rule, and brief before/after code, followed by impact priority. Files with no issues are skipped. The author also says to avoid invented findings and unrelated nitpicks. During feature or bug work, complete the requested behavior and list unrelated modernization separately. The format is an instruction to the assistant, whose claims still need checking against the code.
Several rules address details that mechanical rewrites can miss: a Binding setter and onChange fire for different reasons; row identity should not depend on changing positions or editable content; computed getters do not automatically narrow Observation dependencies. Accessibility and adaptation also concern action names, larger text, translations, changing windows, and preserved state.
Version advice belongs in the project’s context. The README still carries an iOS 26+ badge, while the pinned SKILL defaults new apps to iOS 27, targets Swift 6.4, and discusses Xcode 27.1. It explicitly preserves existing deployment targets. Whether an SDK recognizes a declaration and whether the runtime supports it are separate questions. Author defaults do not replace compatibility requirements.
Sources and verification
Sources checked
Reviewed the main Skill and all 12 references at commit f2920b63, plus five Apple documents. The displayed plugin/Skill version is 2.0.0. No app was compiled or profiled.