swiftship/internal/skills/data/features/asc-hitl-interaction/SKILL.md
Human-in-the-loop interaction patterns for ASC operations. Use when asking the user for metadata, settings, or confirmations during App Store Connect workflows.
npx skillsauth add abdullah4ai/apple-dev-docs asc-hitl-interactionInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
The terminal UI renders your questions with pickers based on the OPTIONS block format. Every question MUST include an OPTIONS block. Follow these patterns for all user-facing questions.
When you have a suggested value, present it as the first option. Always include a text-entry option so the user can type a custom value.
Format:
**Description**: I'd suggest:
> "Your suggested description text here."
[OPTIONS]
- Use this suggestion | Accept the suggested description
- Enter my own | [INPUT] Type a custom value
[/OPTIONS]
Another example:
**Copyright**: I'd suggest: 2026 Mohammed Al-Quraini
[OPTIONS]
- Use this suggestion | Accept the suggested copyright
- Enter my own | [INPUT] Type a custom value
[/OPTIONS]
Rules:
[INPUT] at the start of their description — this tells the terminal to show a text input promptWhen a field has a fixed set of valid values, list all valid values as options.
Format:
What age rating fits your app? This app has no objectionable content.
[OPTIONS]
- 4+ | No objectionable content (recommended)
- 9+ | Mild cartoon or fantasy violence
- 12+ | Infrequent mild language, simulated gambling
- 17+ | Frequent intense violence, mature themes
[/OPTIONS]
Rules:
Fields that MUST list all valid values:
URLs require the user to provide a value they control. AI cannot generate hosted URLs.
Format:
**Support URL**: A publicly accessible URL is required.
[OPTIONS]
- Enter URL | [INPUT] Type your support page URL
- Use GitHub profile | [INPUT] Enter your GitHub username
[/OPTIONS]
When the user selects "AI decides all", auto-fill everything you can WITHOUT asking. But some items are impossible for AI to resolve — you MUST still ask about these:
When auto-filling, proceed through all auto-fillable fields in one turn (no questions), then stop and ask about the first unresolvable item. After resolving it, continue auto-filling until the next unresolvable item or until done.
Even in auto mode, ALWAYS show a preview and ask for confirmation before submit/publish:
Ready to submit. Proceed?
[OPTIONS]
- Yes, submit | Submit for App Store review
- Review changes | Show the preview again
- Cancel | Stop without submitting
[/OPTIONS]
testing
Use for 3D games: racing, 3D sports, board games, marble maze, tower defense, bowling. SceneKit + SceneView architecture, 3D scene hierarchy, physics, game loop, primitives, materials, cameras, particles, audio.
documentation
Game UI patterns: SwiftUI HUD overlays on SpriteKit, menus (main/pause/game-over), virtual joystick/d-pad, score displays, health bars, tutorial onboarding.
tools
Download free game sprites/textures/3D models and generate procedural assets. Covers nw_download_asset tool, texture factories, sprite atlas organization, 3D model loading, and programmatic asset creation.
testing
Use for 2D games: arcade, puzzle, sports, ping pong, platformer, shooter, 2D racing. SpriteKit + SpriteView architecture, scene hierarchy, physics, game loop, audio, particles, game feel.