ai/ios-skills/ios-axiom-ios-games/SKILL.md
Use when building ANY 2D or 3D game, game prototype, or interactive simulation with SpriteKit, SceneKit, or RealityKit. Covers scene graphs, ECS architecture, physics, actions, game loops, rendering, SwiftUI integration, SceneKit migration.
npx skillsauth add kurko/dotfiles axiom-ios-gamesInstall 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.
You MUST use this skill for ANY game development, SpriteKit, SceneKit, RealityKit, or interactive simulation work.
Use this router when:
Architecture, patterns, and best practices → /skill axiom-spritekit
API reference and lookup → /skill axiom-spritekit-ref
Troubleshooting and diagnostics → /skill axiom-spritekit-diag
Automated scanning → Launch spritekit-auditor agent or /axiom:audit spritekit (physics bitmasks, draw call waste, node accumulation, action memory leaks, coordinate confusion, touch handling, missing object pooling, missing debug overlays)
SceneKit is soft-deprecated as of iOS 26. Use for maintenance of existing code only. New 3D projects should use RealityKit.
Maintenance and migration planning → /skill axiom-scenekit
API reference and migration mapping → /skill axiom-scenekit-ref
For non-game 3D content display (product viewers, AR try-on, spatial computing), the ios-graphics router also routes to these RealityKit skills.
Architecture, ECS, and best practices → /skill axiom-realitykit
API reference and lookup → /skill axiom-realitykit-ref
Troubleshooting and diagnostics → /skill axiom-realitykit-diag
| Thought | Reality | |---------|---------| | "SpriteKit is simple, I don't need a skill" | Physics bitmasks default to 0xFFFFFFFF and cause phantom collisions. The bitmask checklist catches this in 2 min. | | "I'll just use SKShapeNode, it's quick" | Each SKShapeNode is a separate draw call. 50 of them = 50 draw calls. axiom-spritekit has the pre-render-to-texture pattern. | | "I can figure out the coordinate system" | SpriteKit uses bottom-left origin (opposite of UIKit). Anchor points add another layer. axiom-spritekit-diag Symptom 6 resolves in 5 min. | | "Physics is straightforward" | Three different bitmask properties, modification rules inside callbacks, and tunneling edge cases. axiom-spritekit Section 3 covers all gotchas. | | "The performance is fine on my device" | Performance varies dramatically across devices. axiom-spritekit Section 6 has the debug overlay checklist. | | "SceneKit is fine for our new project" | SceneKit is soft-deprecated iOS 26. No new features, only security patches. axiom-scenekit has the migration decision tree. | | "I'll learn RealityKit later" | Every line of SceneKit is migration debt. axiom-scenekit-ref has the concept mapping table so the transition is concrete, not abstract. | | "ECS is overkill for a simple 3D app" | You're already using ECS — Entity + ModelComponent. axiom-realitykit shows how to scale from simple to complex. | | "I don't need collision shapes for taps" | RealityKit gestures require CollisionComponent. axiom-realitykit-diag diagnoses this in 2 min vs 30 min guessing. | | "I'll just use a Timer for game updates" | Timer-based updates miss frames and aren't synchronized with rendering. axiom-realitykit has the System pattern. |
axiom-spritekit:
0xFFFFFFFF causes phantom collisions)[weak self] in all SKAction.run closuresaxiom-spritekit-ref:
axiom-spritekit-diag:
showsNodeCount trendingaxiom-scenekit:
xcrun scntool)axiom-scenekit-ref:
axiom-realitykit:
registerComponent())axiom-realitykit-ref:
axiom-realitykit-diag:
User: "I'm building a SpriteKit game"
→ Invoke: /skill axiom-spritekit
User: "My physics contacts aren't firing"
→ Invoke: /skill axiom-spritekit-diag
User: "How do I create a physics body from a texture?"
→ Invoke: /skill axiom-spritekit-ref
User: "Frame rate is dropping in my game"
→ Invoke: /skill axiom-spritekit-diag
User: "How do I set up SpriteKit with SwiftUI?"
→ Invoke: /skill axiom-spritekit
User: "What action types are available?"
→ Invoke: /skill axiom-spritekit-ref
User: "Objects pass through walls"
→ Invoke: /skill axiom-spritekit-diag
User: "I need to build a 3D game"
→ Invoke: /skill axiom-realitykit
User: "How do I add a 3D model to my SwiftUI app?"
→ Invoke: /skill axiom-realitykit
User: "My RealityKit entity isn't showing up"
→ Invoke: /skill axiom-realitykit-diag
User: "How do I set up physics in RealityKit?"
→ Invoke: /skill axiom-realitykit-ref
User: "I'm migrating from SceneKit to RealityKit"
→ Invoke: /skill axiom-scenekit + /skill axiom-scenekit-ref
User: "What's the RealityKit equivalent of SCNNode?"
→ Invoke: /skill axiom-scenekit-ref
User: "Should I use SceneKit for my new 3D project?"
→ Invoke: /skill axiom-scenekit
User: "Tap gestures don't work on my RealityKit entity"
→ Invoke: /skill axiom-realitykit-diag
User: "How do I set up ECS in RealityKit?"
→ Invoke: /skill axiom-realitykit
User: "My AR content isn't tracking"
→ Invoke: /skill axiom-realitykit-diag
User: "What materials are available in RealityKit?"
→ Invoke: /skill axiom-realitykit-ref
User: "How do I animate entities in RealityKit?"
→ Invoke: /skill axiom-realitykit-ref
User: "Memory keeps growing during gameplay"
→ Invoke: /skill axiom-spritekit-diag
User: "What particle emitter settings should I use for fire?"
→ Invoke: /skill axiom-spritekit-ref
User: "Can you scan my SpriteKit code for common issues?"
→ Invoke: spritekit-auditor agent
tools
Create a GitHub pull request from the current branch. Use when user asks to create a PR, open a PR, submit a PR, push and create PR, or similar pull request workflows. Activates for phrases like "create a PR", "open a pull request", "submit PR", "push and PR", "make a PR for this", "open a draft PR".
data-ai
Merge the current worktree branch into main and sync main back. Use when the user says "merge to main", "ship it", "merge and continue", or after completing a task in a worktree and wanting to continue with the next one.
tools
Synchronize AI agent skills, commands, configs, permissions, hooks, and instructions across Claude Code, Codex CLI, and other Agent Skills-compatible tools. Use when the user asks to pull skills from Claude into Codex, sync Codex work back to Claude, migrate agent commands, reconcile frontmatter, update permissions, or keep agent setup files in parity.
testing
Write or update UI-independent use cases for QA. Use when the user says "write use cases", "add use cases", "QA use cases", "update use cases", "compose use cases", or when starting implementation of a new feature (after plan approval). Also activates for "what should we test", "regression cases", or "use cases for QA".