Skip to content

feat(skills): add ios-simulator-test-recording skill for UI test walkthroughs#16005

Open
ryanwilson wants to merge 5 commits intomainfrom
rw-simulator-recording
Open

feat(skills): add ios-simulator-test-recording skill for UI test walkthroughs#16005
ryanwilson wants to merge 5 commits intomainfrom
rw-simulator-recording

Conversation

@ryanwilson
Copy link
Copy Markdown
Member

@ryanwilson ryanwilson commented Mar 30, 2026

Add a generalized skill to run xcodebuild tests on the iOS Simulator while automatically recording a video walkthrough. It uses native TTY streams and AWK to detect the exact moment a test suite begins execution, triggering the screen cap at start-time and eliminating "dead-air" from the simulator's boot and installation sequences.

  • TTY-based stream monitoring via AWK for pinpoint synchronization.
  • Automated build-for-testing validation to avoid blank recordings for failed builds.
  • Dynamic UDID placeholder injection for xcodebuild endpoints.
  • Avoids simulator cloning to ensure camera focus remains on a single target.

To run a test with recording, invoke the script using your test command after the -- separator:

./.agents/skills/ios-simulator-test-recording/scripts/run_test_and_record.sh \
  --show-ui \
  -- xcodebuild test -project YourApp.xcodeproj -scheme YourApp -destination "platform=iOS Simulator,id={UDID}" -quiet

This is best if manually invoked in an agent with
/ios-simulator-test-recording.

This will eventually be called out in AGENTS/GEMINI.md as a way to test newly written XCUITests for verification

…throughs

Add a generalized skill to run xcodebuild tests on the iOS Simulator while
automatically recording a video walkthrough. It uses native TTY streams and AWK
to detect the exact moment a test suite begins execution, triggering the screen
cap at start-time and eliminating "dead-air" from the simulator's boot and
installation sequences.

- TTY-based stream monitoring via AWK for pinpoint synchronization.
- Automated `build-for-testing` validation to avoid blank recordings for failed builds.
- Dynamic `UDID` placeholder injection for `xcodebuild` endpoints.
- Avoids simulator cloning to ensure camera focus remains on a single target.

To run a test with recording, invoke the script using your test command after the `--` separator:

```bash
./.agents/skills/ios-simulator-test-recording/run_test_and_record.sh \
  --show-ui \
  -- xcodebuild test -project YourApp.xcodeproj -scheme YourApp -destination "platform=iOS Simulator,id={UDID}" -quiet
```

This is best if manually invoked in an agent with
`/ios-simulator-test-recording`.
@ryanwilson ryanwilson requested a review from a team as a code owner March 30, 2026 14:24
@gemini-code-assist
Copy link
Copy Markdown
Contributor

Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

@ryanwilson
Copy link
Copy Markdown
Member Author

/gemini review

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a new skill for running and recording iOS Simulator tests, consisting of a bash script and accompanying documentation. The feedback identifies several issues: the simulator auto-selection logic incorrectly uses alphabetical sorting (prioritizing 'iPhone SE' over 'iPhone 14'), the documentation contains incorrect file paths and a mismatched default filename, and the script relies on fixed sleep durations for process synchronization. Suggestions were provided to implement more robust polling for video finalization and to clarify or parameterize the post-test recording delay.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant