Passed 22 of 22 test cases with the skill, and 19 of 22 without it.
Without skill86%
With skill100%
Checks it passed that the model alone missed
Recommends setting accelerometerUpdateInterval to 10 Hz (0.1 seconds).
Recommends starting updates without a handler and polling accelerometerData directly in the loop.
States that deviceMotionDataFrequency on CMBatchedSensorManager is read-only and should be read rather than assigned.
3 fixed19 passed either way0 still failing0 broke
Pass-rate lift
+14 pp
Tokens
+124%
Agent turns
0%
Response time
-38%
Model gemini-3.6-flashMeasured 8/14/2026v122 of 22 cases passed with skill
Tokens, turns and time describe resource use, not a dollar price.
See it in action
One of 3 test cases the skill fixed. Same model, same prompt, with and without the skill.
1 of 3
Prompt
I am updating a standard UI component orientation indicator based on accelerometer motion. What update interval frequency should I configure on CMMotionManager to conserve battery?
What was checked, without and with the skill
Checked
Without skill
With skill
Recommends setting accelerometerUpdateInterval to 10 Hz (0.1 seconds).
Missed
Passed
case-14 · gemini-3.6-flash · 8/14/2026 · answers are capped and redacted
What's inside
The instructions your model reads when the skill loads.
SKILL.md376 lines2 files
CoreMotion
Read device motion, pedometer/activity, altitude, headphone, batched-workout,
and submersion sensors with Core Motion. Scope: Swift 6.3, iOS 26+.
Add NSMotionUsageDescription to Info.plist with a user-facing string explaining
why your app needs motion data. Without this key, the app crashes on first access.
<key>NSMotionUsageDescription</key>
<string>This app uses motion data to track your activity.</string>
Authorization
Use the matching manager's authorizationStatus() or authorizationStatus
property when an API exposes one (CMPedometer, CMMotionActivityManager,
CMAltimeter, headphone motion, batched sensors, and submersion). Raw
CMMotionManager accelerometer/gyro/device-motion streams have no explicit
authorization request API; still ship the usage string and handle errors from
start/update callbacks.