chore: doc sweep — bump script count to 29, add Device State + Simulator Discovery sections

Documents the new scripts that landed since the last doc pass: appearance.py,
location.py, model_inspector.py, container.py, localization_audit.py,
sim_list.py, simulator_selector.py.

- CLAUDE.md: script count 21/27 → 29; add Device State (2) and Simulator
  Discovery (2) categories; reorganise Testing & Analysis (6 → 9).
- SKILL.md: full 29-script listing with renumbered Lifecycle scripts (23-29).
- marketplace.json, plugin.json: description bumped to 29.
- validate-version.yml: fix SKILL.md path after directory restructure.
- .gitignore: fix local config.json path to match new directory layout.
This commit is contained in:
Conor Luddy
2026-05-23 10:31:46 +01:00
parent 00afc436d6
commit 63d8ef2312
6 changed files with 44 additions and 16 deletions
+1 -1
View File
@@ -8,7 +8,7 @@
{
"name": "ios-simulator-skill",
"source": "./ios-simulator-skill",
"description": "22 production-ready scripts for iOS app testing, building, and automation"
"description": "29 production-ready scripts for iOS app testing, building, and automation"
}
]
}
+1 -1
View File
@@ -51,7 +51,7 @@ jobs:
- name: Check SKILL.md for version reference
run: |
if ! grep -q "${{ steps.version.outputs.number }}" ios-simulator-skill/SKILL.md; then
if ! grep -q "${{ steps.version.outputs.number }}" ios-simulator-skill/skills/ios-simulator-skill/SKILL.md; then
echo "⚠️ WARNING: Version ${{ steps.version.outputs.number }} not mentioned in SKILL.md"
echo "Consider adding version info to the SKILL.md frontmatter or description"
else
+1 -1
View File
@@ -50,7 +50,7 @@ DerivedData/
*.zip
# Local skill config (user-specific)
skill/scripts/.claude/skills/ios-simulator-skill/config.json
ios-simulator-skill/skills/ios-simulator-skill/config.json
# Other
.claude
+16 -5
View File
@@ -4,11 +4,11 @@ This file provides guidance to Claude Code and developers working with this repo
## Project Overview
iOS Simulator Skill is a production-ready Agent Skill providing 21 scripts for iOS app building, testing, and automation. It wraps Apple's `xcrun simctl` and Facebook's `idb` tools with semantic interfaces designed for AI agents and developers.
iOS Simulator Skill is a production-ready Agent Skill providing 29 scripts for iOS app building, testing, and automation. It wraps Apple's `xcrun simctl` and Facebook's `idb` tools with semantic interfaces designed for AI agents and developers.
**Key Statistics:**
- 27 production scripts (~9,000 lines)
- 5 script categories (Build, Navigation, Testing, Permissions, Lifecycle)
- 29 production scripts
- 7 script categories (Build, Device State, Navigation, Testing, Permissions, Simulator Discovery, Lifecycle)
- 7 shared utility modules (~2,400 lines)
- 100% token-optimized default output
- 88 unit tests across pipeline / sessions / token-budget / diff (run `pytest tests/`)
@@ -23,7 +23,7 @@ ios-simulator-skill/ # Repository root
│ └── skills/
│ └── ios-simulator-skill/
│ ├── SKILL.md # Entry point (table of contents)
│ └── scripts/ # 27 production scripts
│ └── scripts/ # 29 production scripts
│ ├── build_and_test.py
│ ├── xcode/ # Xcode integration module
│ ├── log_monitor.py
@@ -122,6 +122,10 @@ python scripts/simctl_boot.py --type iPhone
- **build_and_test.py**: Build with progressive disclosure
- **log_monitor.py**: Real-time log monitoring
### Device State (2)
- **appearance.py**: Dark mode, Dynamic Type, locale/region
- **location.py**: GPS coordinates, city presets, GPX route playback
### Navigation & Interaction (5)
- **screen_mapper.py**: Analyze screen
- **navigator.py**: Semantic element finding
@@ -129,13 +133,16 @@ python scripts/simctl_boot.py --type iPhone
- **keyboard.py**: Text input and keys
- **app_launcher.py**: App lifecycle
### Testing & Analysis (6)
### Testing & Analysis (9)
- **accessibility_audit.py**: WCAG compliance
- **visual_diff.py**: Screenshot comparison
- **test_recorder.py**: Test documentation
- **app_state_capture.py**: Debugging snapshots
- **sim_health_check.sh**: Environment verification
- **model_inspector.py**: Core Data and SwiftData model inspection
- **container.py**: App sandbox files, UserDefaults, Core Data store paths
- **hang_watcher.py** (HangBuster): session-scoped hang recorder with progressive disclosure (`--start`/`--stop`/`--get-details`/`--diff`); legacy `--watch`/`--since` paths preserved
- **localization_audit.py**: String catalog gaps, missing keys, placeholder mismatches
### Advanced Testing & Permissions (4)
- **clipboard.py**: Clipboard management
@@ -143,6 +150,10 @@ python scripts/simctl_boot.py --type iPhone
- **push_notification.py**: Push notifications
- **privacy_manager.py**: Permission management
### Simulator Discovery (2)
- **sim_list.py**: List simulators with progressive disclosure (96% token reduction)
- **simulator_selector.py**: Suggest best simulator from recent use, latest iOS, boot status
### Device Lifecycle Management (5)
- **simctl_boot.py**: Boot device
- **simctl_shutdown.py**: Shutdown device
@@ -1,6 +1,6 @@
{
"name": "ios-simulator-skill",
"description": "22 production-ready scripts for iOS app testing, building, and automation. Provides semantic UI navigation, build automation, accessibility testing, and simulator lifecycle management.",
"description": "29 production-ready scripts for iOS app testing, building, and automation. Provides semantic UI navigation, build automation, accessibility testing, and simulator lifecycle management.",
"author": {
"name": "Conor Luddy"
},
@@ -1,7 +1,7 @@
---
name: ios-simulator-skill
version: 1.5.0
description: 27 production-ready scripts for iOS app testing, building, and automation. Provides semantic UI navigation, build automation, accessibility testing, and simulator lifecycle management. Optimized for AI agents with minimal token output.
description: 29 production-ready scripts for iOS app testing, building, and automation. Provides semantic UI navigation, build automation, accessibility testing, and simulator lifecycle management. Optimized for AI agents with minimal token output.
---
# iOS Simulator Skill
@@ -40,7 +40,7 @@ Use this priority:
Screenshots cost 1,6006,300 tokens depending on size. The accessibility tree costs 1050 tokens in default mode.
## 27 Production Scripts
## 29 Production Scripts
### Build & Development (2 scripts)
@@ -200,36 +200,53 @@ Screenshots cost 1,6006,300 tokens depending on size. The accessibility tree
- Audit trail with test scenario tracking
- Options: `--bundle-id`, `--grant`, `--revoke`, `--reset`, `--list`, `--json`
### Simulator Discovery (2 scripts)
23. **sim_list.py** - List simulators with progressive disclosure
- Concise summary by default (total / available / booted)
- Full details on demand via cache IDs
- Filter by device type
- Suggest recommended simulators with `--suggest`
- 96% token reduction vs raw `simctl list` (57k → 2k tokens)
- Options: `--get-details`, `--suggest`, `--device-type`, `--json`
24. **simulator_selector.py** - Suggest the best simulator for the job
- Ranks candidates by recent use (from `config.json`), latest iOS, common test models, and boot status
- List all available simulators with `--list`
- Boot a selected simulator directly with `--boot`
- JSON output for programmatic use
- Options: `--suggest`, `--list`, `--boot`, `--json`
### Device Lifecycle Management (5 scripts)
23. **simctl_boot.py** - Boot simulators with optional readiness verification
25. **simctl_boot.py** - Boot simulators with optional readiness verification
- Boot by UDID or device name
- Wait for device ready with timeout
- Batch boot operations (--all, --type)
- Performance timing
- Options: `--udid`, `--name`, `--wait-ready`, `--timeout`, `--all`, `--type`, `--json`
24. **simctl_shutdown.py** - Gracefully shutdown simulators
26. **simctl_shutdown.py** - Gracefully shutdown simulators
- Shutdown by UDID or device name
- Optional verification of shutdown completion
- Batch shutdown operations
- Options: `--udid`, `--name`, `--verify`, `--timeout`, `--all`, `--type`, `--json`
25. **simctl_create.py** - Create simulators dynamically
27. **simctl_create.py** - Create simulators dynamically
- Create by device type and iOS version
- List available device types and runtimes
- Custom device naming
- Returns UDID for CI/CD integration
- Options: `--device`, `--runtime`, `--name`, `--list-devices`, `--list-runtimes`, `--json`
26. **simctl_delete.py** - Permanently delete simulators
28. **simctl_delete.py** - Permanently delete simulators
- Delete by UDID or device name
- Safety confirmation by default (skip with --yes)
- Batch delete operations
- Smart deletion (--old N to keep N per device type)
- Options: `--udid`, `--name`, `--yes`, `--all`, `--type`, `--old`, `--json`
27. **simctl_erase.py** - Factory reset simulators without deletion
29. **simctl_erase.py** - Factory reset simulators without deletion
- Preserve device UUID (faster than delete+create)
- Erase all, by type, or booted simulators
- Optional verification