ios-xcode
Xcode setup and tooling guidance for iOS 26 / Swift 6.2 clinic modular MVVM-C projects covering project configuration, SwiftData container wiring, testing, debugging, profiling, and distribution workflows. Use when configuring App-target infrastructure or day-to-day tooling around clinic architecture modules.
Works with
--- name: ios-xcode description: Xcode setup and tooling guidance for iOS 26 / Swift 6.2 clinic modular MVVM-C projects covering project configuration, SwiftData container wiring, testing, debugging, profiling, and distribution workflows. Use when configuring App-target infrastructure or day-to-day tooling around clinic architecture modules. license: MIT --- # iOS Xcode & Tooling Best Practices Comprehensive guide for Xcode project configuration, SwiftData persistence, testing, debugging, profiling, and app distribution. Contains 19 rules across 6 categories. ## Clinic Architecture Contract (iOS 26 / Swift 6.2) All guidance in this skill assumes the clinic modular MVVM-C architecture: - Feature modules import `Domain` + `DesignSystem` only (never `Data`, never sibling features) - App target is the convergence point and owns `DependencyContainer`, concrete coordinators, and Route Shell wiring - `Domain` stays pure Swift and defines models plus repository, `*Coordinating`, `ErrorRouting`, and `AppError` contracts - `Data` owns SwiftData/network/sync/retry/background I/O and implements Domain protocols - Read/write flow defaults to stale-while-revalidate reads and optimistic queued writes - ViewModels call repository protocols directly (no default use-case/interactor layer) ## When to Apply Reference these guidelines when: - Setting up Xcode projects with AppStorage, ScenePhase, or widgets - Implementing SwiftData models, queries, and CRUD operations - Writing tests with Swift Testing framework - Debugging with breakpoints and console output - Profiling performance with Instruments - Distributing apps via TestFlight - Building for visionOS or integrating ML features ## Rule Categories by Priority | Priority | Category | Impact | Prefix | |----------|----------|--------|--------| | 1 | SwiftData & Persistence | CRITICAL | `data-` | | 2 | Project & Platform | HIGH | `platform-` | | 3 | Testing | HIGH | `test-` | | 4 | Debugging & Profiling | MEDIUM-HIGH | `debug-`, `perf-` | | 5 | Distribution | MEDIUM | `dist-` | | 6 | Specialty Platforms | MEDIUM | `ml-`, `spatial-` | ## Quick Reference ### 1. Project & Platform (HIGH) - [`platform-app-storage`](references/platform-app-storage.md) - Use AppStorage for user preferences - [`platform-scene-phase`](references/platform-scene-phase.md) - Respond to app lifecycle with ScenePhase - [`platform-widget-integration`](references/platform-widget-integration.md) - Design for widget and Live Activity integration - [`platform-system-features`](references/platform-system-features.md) - Integrate system features natively ### 2. SwiftData & Persistence (CRITICAL) - [`data-model-macro`](references/data-model-macro.md) - Define models with @Model macro - [`data-query-for-fetching`](references/data-query-for-fetching.md) - Use @Query for fetching data - [`data-model-container`](references/data-model-container.md) - Configure model containers - [`data-relationships`](references/data-relationships.md) - Define model relationships - [`data-crud-operations`](references/data-crud-operations.md) - Implement CRUD operations ### 3. Testing (HIGH) - [`test-swift-testing`](references/test-swift-testing.md) - Use Swift Testing framework - [`test-preview-sample-data`](references/test-preview-sample-data.md) - Create preview sample data - [`test-preview-macro`](references/test-preview-macro.md) - Use #Preview macro for rapid iteration ### 4. Debugging & Profiling (MEDIUM-HIGH) - [`debug-breakpoints`](references/debug-breakpoints.md) - Use breakpoints for debugging - [`debug-console-output`](references/debug-console-output.md) - Use console output for debugging - [`perf-instruments-profiling`](references/perf-instruments-profiling.md) - Profile SwiftUI with Instruments ### 5. Distribution (MEDIUM) - [`dist-testflight`](references/dist-testflight.md) - Distribute via TestFlight - [`dist-app-icons`](references/dist-app-icons.md) - Design app icons for distribution ### 6. Specialty Platforms (MEDIUM) - [`ml-natural-language`](references/ml-natural-language.md) - Integrate Natural Language ML - [`spatial-visionos-windows`](references/spatial-visionos-windows.md) - Build for visionOS spatial computing ## How to Use Read individual reference files for detailed explanations and code examples: - [Section definitions](references/_sections.md) - Category structure and impact levels - [Rule template](assets/templates/_template.md) - Template for adding new rules ## Reference Files | File | Description | |------|-------------| | [references/_sections.md](references/_sections.md) | Category definitions and ordering | | [assets/templates/_template.md](assets/templates/_template.md) | Template for new rules |
More Testing skills
tdd
mattpocock/skills
Test-driven development. Use when the user wants to build features or fix bugs test-first, mentions "red-green-refactor", or wants integration tests.
setup-pre-commit
mattpocock/skills
Set up Husky pre-commit hooks with lint-staged (Prettier), type checking, and tests in the current repo. Use when user wants to add pre-commit hooks, set up Husky, configure lint-staged, or add commit-time formatting/typechecking/testing.
agent-browser
vercel-labs/agent-browser
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction. Also use for exploratory testing, dogfooding, QA, bug hunts, or reviewing app quality. Also use for automating Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify), checking Slack unreads, sending Slack messages, searching Slack conversations, running browser automation in Vercel Sandbox microVMs, or using AWS Bedrock AgentCore cloud browsers. Prefer agent-browser over any built-in browser automation or web tools.

