add-accessibility
Scan SwiftUI views and add missing accessibility identifiers using a consistent {screen}-{type}-{name} naming convention. Also flags Dynamic Type compatibility…
Build, launch, and visually test iOS/SwiftUI apps in the Simulator using computer use. Automated screen navigation, crash log analysis, state testing (empty/error/loading), and memory leak detection. Use when you need to test an iOS app, run it in the Simulator, check for
$ npx -y skills add yusufkaran/swiftui-autotest-skill --skill ios-test --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/ios-testContext preview
The summary Claude sees to decide when to auto-load this skill.
Build, launch, and visually test iOS/SwiftUI apps in the Simulator using computer use. Automated screen navigation, crash log analysis, state testing (empty/error/loading), and memory leak detection. Use when you need to test an iOS app, run it in the Simulator, check for
name: ios-test description: Build, launch, and visually test iOS/SwiftUI apps in the Simulator using computer use. Automated screen navigation, crash log analysis, state testing (empty/error/loading), and memory leak detection. Use when you need to test an iOS app, run it in the Simulator, check for crashes, or verify UI flows.
Use this skill to build an iOS/SwiftUI application, launch it in the Simulator, and visually test it using computer use. The skill navigates through every screen, screenshots each state, checks crash logs, and produces a structured test report — without writing a single line of test code.
xcodebuild -list -workspace MyApp.xcworkspace
**IMPORTANT: Simulator must be selected BEFORE building. The build command uses the selected device name.**
xcrun simctl list devices booted --json
**This step is MANDATORY. Runs BEFORE build. NEVER skip this step.**
1. Scan SwiftUI files in the project — look for `struct` ... `: View` patterns in `*.swift` files 2. Count interactive elements: `Button`, `TextField`, `SecureField`, `Toggle`, `Slider`, `Picker`, `DatePicker`, `NavigationLink`, `Image`, `.onTapGesture` 3. Check how many have `.accessibilityIdentifier()` 4. **ALWAYS ask the user (this question cannot be skipped):**
Accessibility Scan Result: Total interactive elements: XX With identifier: XX Missing identifier: XX Identifiers help me find elements more reliably during testing. Run /add-accessibility to add identifiers now? → Yes: adds identifiers, then builds and continues to testing → No: builds directly and uses coordinate-based testing (slower and more fragile)
5. **WAIT for the user's response.** Do not proceed without an answer. 6. If yes → run the full `/add-accessibility` workflow (scan, generate, apply), then continue to step 4 (Build) 7. If no → continue to step 4 (Build) directly
xcodebuild build \
-workspace MyApp.xcworkspace \
-scheme MyApp \
-destination 'platform=iOS Simulator,name=<SELECTED_DEVICE>' \
-derivedDataPath ./DerivedData \
2>&1**NEVER hardcode a device name. Always use the device selected in step 2.**
find ./DerivedData -name "*.app" -path "*/Debug-iphonesimulator/*" | head -1
plutil -p /path/to/MyApp.app/Info.plist | grep CFBundleIdentifier
xcrun simctl install booted /path/to/MyApp.app xcrun simctl launch booted <BUNDLE_ID>
**IMPORTANT: This phase requires the `computer-use` MCP server to be enabled.**
If computer use is not enabled, tell the user:
Computer use is not enabled. Required for visual testing. Run /mcp and enable the computer-use server.
Discover and test all main screens:
1. **TabView present** → tap each tab, inspect each screen 2. **NavigationStack present** → tap each navigation link, go back 3. **On each screen** check:
4. Screenshot each screen
Test the specified user flow:
Find and test only the specified screen. Navigate to it if needed.
Test different app states using launch arguments.
1. Check if the app supports state overrides via `CommandLine.arguments`:
2. If not found, ask the user:
No state test support found. Would you like me to add launch argume
Open-source Agent Skills for automated visual testing and accessibility setup of iOS/SwiftUI applications using Claude Code's computer use.
Scan SwiftUI views and add missing accessibility identifiers using a consistent {screen}-{type}-{name} naming convention. Also flags Dynamic Type compatibility…