Automated summary
Builds, installs and launches the iOS app in the Simulator, then visually verifies the change using screenshots and the accessibility tree.
Strengths
- Runs the full loop: Tuist generation, xcodebuild, .app discovery, install and launch before screenshotting.
- Uses the accessibility tree to locate elements and their frame coordinates when they are unknown.
- Reports observed problems clearly without attempting to fix the code on its own.
Limitations
- Workspace, scheme, bundle id and .app name are hardcoded for the Ruckus project.
- Requires an already-booted simulator and a configured ios-simulator MCP server.
- Purely visual validation, with no automated assertions or baseline image comparison.
Use it after an iOS UI change to quickly confirm how it renders and behaves in the Simulator.
Avoid it for automated CI testing, non-visual code changes, or when no simulator or MCP server is available.
Security analysis
SafeThe skill is a straightforward local visual-QA workflow: regenerate the project, build with xcodebuild, locate the .app in DerivedData, install/launch it in the simulator, and inspect screenshots and the accessibility tree. There is no obfuscation, no curl|sh, no rm -rf, no reading of credentials or environment secrets, no network exfiltration, and it explicitly tells the agent not to auto-fix issues. The only execution risk is the ordinary one of running a project's own build tooling and an MCP simulator server, both local and non-destructive.
- •Instructs running local build tooling (tuist generate, xcodebuild) which executes repo-local project definitions and build scripts — inherent to any build skill but worth noting
- •Uses `find` over ~/Library/Developer/Xcode/DerivedData to locate build artifacts (read-only, no data leaves the machine)
- •Depends on an external `ios-simulator` MCP server for install/launch/screenshot/UI automation; trust depends on that server's implementation
- •Hardcoded workspace/scheme/destination/bundle id means the commands are fixed rather than user-supplied, limiting injection surface
Examples
I just changed the toggle colors on the settings screen — build and run the app in the simulator and show me a screenshot so I can confirm it looks right.Validate the new onboarding flow on iPhone 17 Pro: launch the app, navigate to the onboarding, and describe what the accessibility tree and screenshots show.I refactored the profile header layout. Do a visual QA pass in the iOS Simulator and tell me if the labels, colors and spacing look correct.name: qa description: | Use after making changes to visually validate the app in the iOS Simulator. Builds, installs, launches the app, then uses screenshots and accessibility descriptions to verify the change looks and behaves correctly. user-invocable: true
QA — Visual Validation via iOS Simulator
Validate changes by building, installing, and inspecting the app in the
iOS Simulator using the ios-simulator MCP server.
Prerequisites
The iOS Simulator must be booted before starting. Use
mcp__ios-simulator__get_booted_sim_id to confirm. If no simulator is
booted, use mcp__ios-simulator__open_simulator first.
Workflow
-
Regenerate the Tuist project so the workspace reflects any file changes:
tuist generate --no-open -
Build for simulator using the workspace (required for dependency resolution):
xcodebuild build -workspace Ruckus.xcworkspace -scheme Ruckus \ -destination 'platform=iOS Simulator,name=iPhone 17 Pro'This uses Xcode's default DerivedData location. If the build fails, fix the errors before continuing.
-
Find the built
.appbundle. After a successful build, locate it in Xcode's DerivedData:find ~/Library/Developer/Xcode/DerivedData \ -name "Ruckus.app" \ -path "*/Debug-iphonesimulator/*" \ -maxdepth 5 \ -newer Ruckus.xcworkspace \ 2>/dev/null | head -1Use the most recently modified match.
-
Install the app.
Use
mcp__ios-simulator__install_appwith the.apppath found in the previous step. -
Launch the app.
Use
mcp__ios-simulator__launch_appwithbundle_id: io.defn.Ruckusandterminate_running: trueto ensure a fresh start. -
Take a screenshot and describe the UI.
- Use
mcp__ios-simulator__screenshotto capture the current state. - Use
mcp__ios-simulator__ui_describe_allto get the accessibility tree for the visible screen. - Read the screenshot to visually inspect the result.
- Use
-
Navigate to the relevant screen. If the change is not on the initial screen, use taps, swipes, and text input to navigate there:
mcp__ios-simulator__ui_tap— tap coordinatesmcp__ios-simulator__ui_swipe— scroll or swipemcp__ios-simulator__ui_type— enter text
After each navigation action, take another screenshot and describe the UI to confirm you reached the right screen.
-
Validate the change. Compare what you see against the expected behavior:
- Does the UI reflect the change?
- Are labels, colors, and layout correct?
- Is the accessibility tree reasonable?
Report your findings — what looks correct and what (if anything) looks wrong.
-
If something is wrong, describe the issue clearly. Do NOT attempt to fix it automatically unless the caller asks you to.
Tips
- When you don't know the coordinates of a UI element, use
mcp__ios-simulator__ui_describe_allto find it in the accessibility tree — elements include their frame coordinates. - Take screenshots liberally. They are the ground truth for visual QA.
- If the app crashes on launch, check the build logs and simulator system log for clues.
From the file to a first result
The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.
View the source and supporting filesThis download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.
1. Download the file
Download SKILL.mdFrom the root of a test project, save the file as .skill-downloads/qa-visual-validation-via-ios-simulator-ms71b2wj/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.
Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.
mkdir -p '.skill-downloads/qa-visual-validation-via-ios-simulator-ms71b2wj' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/qa-visual-validation-via-ios-simulator-ms71b2wj/download' --output '.skill-downloads/qa-visual-validation-via-ios-simulator-ms71b2wj/SKILL.md.part' && mv '.skill-downloads/qa-visual-validation-via-ios-simulator-ms71b2wj/SKILL.md.part' '.skill-downloads/qa-visual-validation-via-ios-simulator-ms71b2wj/SKILL.md'2. Check prerequisites
Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.
Original excerpt: Prerequisites
The iOS Simulator must be booted before starting. Use
mcp__ios-simulator__get_booted_sim_id to confirm. If no simulator is
booted, use mcp__ios-simulator__open_simulator first.
The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.
3. Load the skill
After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.
Claude Code
test -f '.skill-downloads/qa-visual-validation-via-ios-simulator-ms71b2wj/SKILL.md' && test -s '.skill-downloads/qa-visual-validation-via-ios-simulator-ms71b2wj/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/qa' && cp -R '.skill-downloads/qa-visual-validation-via-ios-simulator-ms71b2wj' '.claude/skills/qa'OpenSkills
OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.
Official OpenSkills installationopenskills install './.skill-downloads/qa-visual-validation-via-ios-simulator-ms71b2wj'openskills read 'qa-visual-validation-via-ios-simulator-ms71b2wj'Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.
For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.
openskills syncManual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.
4. Try a first task
Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:
Read .skill-downloads/qa-visual-validation-via-ios-simulator-ms71b2wj/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.
ClickHouse Performance Comparison
Testing
Evaluate ClickHouse performance test results, check PR performance changes, compare with history, and assess whether a result is actionable.
Analyze CI Performance Reports
Testing
Analyze CI performance comparison reports for a ClickHouse PR. Cross-references master history to distinguish real regressions from flaky tests.
Santa Method
Testing
Multi-agent adversarial verification with two independent reviewers. Output is checked twice and iteratively fixed until both pass before shipping.