agentsclimarketplace

Ios validation

Skill krzemienski/deepest-plan-plugin/skills/ios-validation

iOS / macOS platform validation via xcrun simctl + idb. Builds, installs, launches, exercises via deep links or UI taps. Captures screenshots + logs. Cited as platform_skill on iOS gates in deepest-plan output.From its SKILL.md

Install
npx -y skills add krzemienski/deepest-plan-plugin --skill ios-validation

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its file declares

Copied from the file, not written here

The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

4.0 KB, as published. Nobody here has run it

iOS Validation

Scope

iOS and macOS app validation via real simulator execution. Does NOT handle web-view hybrid apps in depth (use web-validation for the web portion), and does NOT handle XCUITest-based tests (intentionally — they are tests and violate the Iron Rule when used for deepest-plan gates).

Preflight

  • xcode-select -p points to a valid Xcode.app
  • xcrun simctl list devices booted | grep -q Booted OR a device can be booted
  • xcodebuild -list -project {proj}.xcodeproj shows expected schemes
  • Signing identity available for target scheme

Execution Pattern

# Build for simulator
xcodebuild -project MyApp.xcodeproj -scheme MyApp \
  -destination 'platform=iOS Simulator,name=iPhone 15' \
  -derivedDataPath ./build \
  build 2>&1 | tee e2e-evidence/vgN-build.log

# Install + launch
APP=$(find ./build -name "MyApp.app" | head -1)
xcrun simctl install booted "$APP"
xcrun simctl launch booted com.example.MyApp

# Exercise via deep link OR idb tap
xcrun simctl openurl booted "myapp://preferences"
# or
idb ui tap 200 400

# Capture screenshot
xcrun simctl io booted screenshot e2e-evidence/vgN-screen.png

# Capture logs (last 30 seconds)
xcrun simctl spawn booted log collect \
  --output e2e-evidence/vgN-logs.logarchive --last 30s

PASS Criteria Patterns

Good:

  • "Screenshot shows dashboard with user email in nav bar (not login screen)"
  • "Logs contain 0 entries matching regex ERROR|FATAL|crashed"
  • "Deep-link navigation landed on /preferences route (visible heading text)"

Bad (reject):

  • "App launches" → does it crash, hang, show correct screen?
  • "UI is fine" → specific state?

Gate Template

<validation_gate id="VG-N" blocking="true" platform="ios"
                 protocol="functional-validation"
                 platform_skill="ios-validation"
                 verdict_by="gate-validation-discipline">
  <preflight skill="preflight">[simulator booted + build succeeds]</preflight>
  <execute>[build, install, launch, exercise via simctl/idb]</execute>
  <capture>[screenshots + log archives to e2e-evidence/vgN-*]</capture>
  <pass_criteria>[specific UI state + log assertions]</pass_criteria>
  <review>[Read tool on .png; log show | grep for error patterns]</review>
  <verdict>PASS → next | FAIL → error-recovery → re-run</verdict>
  <mock_guard skill="no-mocking-validation-gates">
    No XCTest, no UI-testing framework, no stubbed networking. Real simulator only.
  </mock_guard>
</validation_gate>

Required Coverage

  • Cold launch → target screen renders within N seconds
  • Deep-link variants (auth-required, non-auth) → correct routing
  • Background → foreground → state preserved
  • Error state (no network) → user-visible error, no crash

Common Failure Patterns

SymptomLikely causeFix
Build fails with signing errorNo provisioning profileUse CODE_SIGNING_ALLOWED=NO for simulator builds
Simulator doesn't open URLScheme not registeredCheck Info.plist URL Types
Blank screenshotApp launching or crashedWait + capture log; look for crash trace
Logs truncatedLog collection too lateStart log collection BEFORE launch

Rules

  1. Always use real simulator — never a UI test harness for gates
  2. Always wait for settle (launch + render) before screenshot
  3. Always capture logs in parallel with UI interaction
  4. Always read screenshot (describe UI state) — don't just check file exists
  5. Prefer deep links over screen-coordinate taps when available (stable across layouts)

Security Policy

Simulator screenshots may show authenticated user data. Store in e2e-evidence/ (gitignored). Never commit signed-in captures to public repos.

Keep looking

Skills are one crate of 627,559. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.