mirror of
https://github.com/conorluddy/ios-simulator-skill.git
synced 2026-09-14 20:07:12 +08:00
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:
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -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
@@ -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
|
||||
@@ -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,600–6,300 tokens depending on size. The accessibility tree costs 10–50 tokens in default mode.
|
||||
|
||||
## 27 Production Scripts
|
||||
## 29 Production Scripts
|
||||
|
||||
### Build & Development (2 scripts)
|
||||
|
||||
@@ -200,36 +200,53 @@ Screenshots cost 1,600–6,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
|
||||
|
||||
Reference in New Issue
Block a user