verify
Skill0 starsChanged 3 months agoMITView on GitHub
Build, launch and drive a React Native app on the iOS simulator to observe a change end-to-end. Use when verifying a code change actually works at runtime and not just in tests, when the user asks to run the app, take a screenshot, or check something on device, or when a bug can only be confirmed by driving the UI. Covers idb-based tapping, why synthetic clicks fail, where console output actually goes, and simulator gotchas.
- Installs packages
188 other projects use a version of this.
Adopted by
Most recently taken up by
- Doist/todoist-aitheir own version, first seen Nov 9, 2026
- udecode/better-convextheir own version, first seen Nov 9, 2026
- pytorch/heliontheir own version, first seen Nov 8, 2026
- amir20/dozzletheir own version, first seen Nov 8, 2026
- Doist/todoist-clitheir own version, first seen Nov 8, 2026
- codewithmukesh/dotnet-claude-kittheir own version, first seen Nov 8, 2026
Used with
Projects with it also use instinct-export, instinct-import and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
TheKREATORSSkillinstinct-export
Export instincts from project/global scope to a file
Also in 3 projects that use this
TheKREATORSSkillinstinct-import
Import instincts from file or URL into project/global scope
Also in 3 projects that use this
AviadPSkillrisk-assess
Assess the risk and blast radius of a proposed code change before implementing it. Evaluates CI impact, framework-wide vs localized scope, rollback path, and identifies blindspots. Use when user says "what's the risk", "is this safe", "assess the impact", "risk assess", "blast radius", or before applying framework-wide or CI-affecting changes. Do NOT use for code quality review (use code-quality) or plan validation (use design-validator).
Also in 3 projects that use this
diego-tobalinaSkillbuild-fix
Fix build and compilation errors systematically. Run when build fails.
Also in 6 projects that use this
AaravChadhaSkillsecure
Security review with a confidence gate - a finding exists only with a concrete exploit scenario and a high/medium/low confidence rating; everything else goes to a worth-hardening list, never inflated. Sweeps five surfaces: auth gates, secrets hygiene, injection and unsafe sinks, unsafe deserialization/crypto/transport, and LLM tool-use trust boundaries. Reports only, never fixes. Use when the user asks for a security review or to check vulnerabilities, secrets, or auth.
Also in 3 projects that use this
ArvorCoSkillspecify
Create feature specification from natural language description. Use when starting a new feature or creating a spec. Triggers on: create spec, specify feature, new feature spec.
Also in 10 projects that use this
- +1 more from TheKREATORS
Other versions188 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 188
- react/react★ 252ksame name
- facebook/react★ 252ksame name
- garrytan/gstack★ 141ksame name
- oven-sh/bun★ 97ksame name
- anthropics/financial-services★ 41ksame name
- anthropics/financial-services-plugins★ 41ksame name
- Yeachan-Heo/oh-my-claude-sisyphus★ 41ksame name
- Yeachan-Heo/oh-my-claudecode★ 41ksame name
- anthropics/claude-quickstarts★ 19ksame name
- NVIDIA-NeMo/Speech★ 19ksame name
178 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository19 other files it gives its agents.
- add-featureSkill
- bootsplashSkill
- build-uiSkill
- commit-changesSkill
- domain-modelSkill
- gitmojiSkill
- grill-planSkill
- implement-ticketSkill
- ios-widgetSkill
- iphone-duoSkill
- maintain-skillsSkill
- side-insetsSkill
- ticket-shapingSkill
- truesheet-usageSkill
- unistylesSkill
- upgrade-react-nativeSkill
- validate-changeSkill
- write-testsSkill
- xcode-cloudSkill
The file
We split this skill into the rules it gives an agent
2 rules. 0 are common, 0 are distinctive, and 2 are very specific to this project.
0
Common
Most of the 167 edited versions we read keep these.
0
Distinctive
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 23
If two simulators have the same name (for example one per iOS runtime), the name is ambiguous, and xcodebuild -destination 'name=…' fails …
- Very specific: line 52
Use idb, which taps the device directly in device points:
“Common” is measured: kept by at least 6 in 10 of the 167 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Verifying on the iOS simulator
Static checks and unit tests do not prove a UI change works. This skill is the procedure for actually driving the app and observing it.
Build and launch
npx react-native run-ios --simulator='iPhone 17 Pro Max'If two simulators have the same name (for example one per iOS runtime), the
name is ambiguous, and xcodebuild -destination 'name=…' fails with
Unable to find a device matching the provided destination specifier. Use the
id instead:
xcrun simctl list devices available | grep 'iPhone 17 Pro Max'
npx react-native run-ios --udid=<UDID>Cold builds take a few minutes (longer on a fresh pod install). After a JS-only change no rebuild is needed — Metro serves a fresh bundle on relaunch:
xcrun simctl terminate booted <bundle-id>
xcrun simctl launch booted <bundle-id>Get the bundle id from the Xcode project or app.json rather than guessing.
Driving the UI — use idb, not synthetic clicks
Do not drive the simulator with AppleScript click at or cliclick. Both
post mouse events that the Simulator delivers unreliably: they land at the wrong
coordinates, get swallowed by the window's pointer capture ("Press esc to stop
capture" in the title bar), and succeed only intermittently. This costs a lot of
time and produces confusing evidence — you cannot tell a failed tap from a bug.
Use idb, which taps the device directly in device points:
brew install facebook/fb/idb-companion
/usr/bin/python3 -m venv idbenv && ./idbenv/bin/pip install fb-idb # needs py3.9; fb-idb breaks on 3.14
idb_companion --udid <UDID> & # note the grpc port it prints
./idbenv/bin/idb connect localhost <port>
./idbenv/bin/idb ui tap <x> <y>Coordinates. A screenshot from xcrun simctl io booted screenshot is in
pixels, not device points. On a 3x device (e.g. iPhone 17 Pro Max, 1320×2868 px
↔ 440×956 pt) divide screenshot pixels by 3 to get the tap target. Confirm the
device's scale factor before converting.
A Switch needs a real press, not an instantaneous tap:
./idbenv/bin/idb ui tap --duration 0.12 <x> <y>Observing what the app did
console.log and the app's logger do not go to the system log, so
xcrun simctl spawn booted log stream does not show them. On older React Native
versions they go to the Metro terminal. From about React Native 0.77, Metro
does not show them; they go to React Native DevTools only.
A probe that always works: render the value as a Text with a bright
background, take a screenshot, then remove it. Put the probe in the view on
top. A full-screen modal, such as onboarding, hides a probe in the screen
under it.
To capture runtime state in a screenshot, temporarily Alert.alert(...) the
value from the code path under test, drive the flow, screenshot, then remove
the instrumentation. Alerts queue, so N calls means N dismissals.
For state-shaped questions, a Redux devtools bridge (Reactotron or similar, if the repo wires one in dev) is usually faster than adding log lines.
Gotchas
- The simulator's clock follows the host, so anything scheduled days out cannot
be waited for. Read back the OS's own pending state instead (e.g.
notifee.getTriggerNotifications()) — that is the real store of record. - Apps that gate startup on a migration or backfill show a loading screen on the first launch after a schema bump, before anything renders. Do not mistake that for a hang.
- A stale Metro bundler serves the old bundle. If a JS change does not appear, restart Metro before doubting the code.
Definition of done
- The change was observed running, not inferred from tests.
- Evidence captured (screenshot, or the specific observed behavior described).
- All temporary instrumentation (
Alert.alert, log lines, debug flags) removed from the diff. - Static checks still pass afterwards — see
validate-change.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

