twostraws / SwiftUI-Agent-Skill

SwiftUI Pro · an agent skill for Claude Code, Codex, Gemini and more

A warning-free build isn’t proof of modern SwiftUI.

Many older SwiftUI declarations are marked deprecated: 100000.0. These soft deprecations keep Xcode quiet, so the skill reviews the source for the mistakes LLMs actually make.

$ npx skills add https://github.com/twostraws/swiftui-agent-skill --skill swiftui-pro
Specimen · six rules from references/api.mdstruck = what the model writes · blue = what the skill asks for
S-01color
.foregroundColor(.red).foregroundStyle(.red)

The rule the skill uses as its own example of a finding.

S-02soft-deprecated
.accentColor(.orange).tint(.orange)

Set the asset catalog’s accent color for an app-wide default.

S-03shape
.cornerRadius(12).clipShape(.rect(cornerRadius: 12))

Always the clip shape, never the old modifier.

S-04tabs
.tabItem { … }Tab(…) { … }

Always use the Tab API instead of tabItem().

S-05scroll
showsIndicators: false.scrollIndicators(.hidden)

Hide indicators with the modifier, not the initializer.

S-06localization
Text("Folder: " + name)Text("Folder: \(name)")

Interpolation keeps a localization key; string addition does not.

How a finding reads

ContentView.swift
Line 24: Give the button a descriptive label so VoiceOver explains its action.
// Before
Button(action: addUser) {
    Image(systemName: "plus")
}

// After
Button("Add User", systemImage: "plus", action: addUser)

Findings are organized by file, each naming the rule and showing a brief before and after. Report only genuine problems — do not nitpick or invent issues.

The review order

  1. api — deprecated API
  2. views — views, modifiers, animations
  3. data — data flow
  4. navigation
  5. design — Human Interface Guidelines
  6. resizability — windows, iPad multitasking
  7. accessibility — Dynamic Type, VoiceOver, Reduce Motion
  8. localization
  9. performance
  10. swift
  11. hygiene

Claude Code

/swiftui-pro Check for deprecated API

Codex

$swiftui-pro Focus on accessibility

Contributing

Do not repeat things LLMs already know; it burns tokens for no benefit. Focus on edge cases, surprises and soft deprecations.