init-xcode-app
/init-xcode-app
Scaffold a standalone SwiftUI app via XcodeGen — pick macOS, iOS, or iOS+watchOS; ships house conventions, a Swift Testing target, swiftformat/swiftlint, optional CloudKit/CI/Release/Push modules, and optional JTBD product context. Use to "init an xcode project", "scaffold a swiftui app", "new mac/ios app".
- Author
- glebis ↗
- Repository
- claude-skills ↗
- Licence
- MIT
- Last repository change
- 25.10.2026
Assessment and security
- Files in this package
- 43
- Scripts
- 17
- HTML comments
- 0
- URLs in SKILL.md
- 0
No signals detected. Repository changed on 25.10.2026, without references to retired models or APIs.
MIT, open: use and modify while retaining author attribution.
- 17 scripts in this package. Review them before installing, as Claude may execute them.
Scripts: assets/core/shapes/ios-watchos/Sources/Shared/Item.swift, assets/core/shapes/ios-watchos/Sources/Shared/SyncService.swift, assets/core/shapes/ios-watchos/Sources/Watch/<Name>WatchApp.swift, assets/core/shapes/ios-watchos/Sources/Watch/WatchContentView.swift, assets/core/shapes/ios-watchos/Sources/iPhone/<Name>App.swift, assets/core/shapes/ios-watchos/Sources/iPhone/ContentView.swift, assets/core/s
What it does and when to use it
Scaffold a standalone SwiftUI app via XcodeGen — pick macOS, iOS, or iOS+watchOS; ships house conventions, a Swift Testing target, swiftformat/swiftlint, optional CloudKit/CI/Release/Push modules, and optional JTBD product context. Use to "init an xcode project", "scaffold a swiftui app", "new mac/ios app".
Triggers from the description
Original author description
Scaffold a standalone SwiftUI app via XcodeGen — pick macOS, iOS, or iOS+watchOS; ships house conventions, a Swift Testing target, swiftformat/swiftlint, optional CloudKit/CI/Release/Push modules, and optional JTBD product context. Use to "init an xcode project", "scaffold a swiftui app", "new mac/ios app".
How it works
- When to use
- Prerequisites (verify before scaffolding)
- Procedure
SKILL.md preview
--- name: init-xcode-app description: Scaffold a standalone SwiftUI app via XcodeGen — pick macOS, iOS, or iOS+watchOS; ships house conventions, a Swift Testing target, swiftformat/swiftlint, optional CloudKit/CI/Release/Push modules, and optional JTBD product context. Use to "init an xcode project", "scaffold a swiftui app", "new mac/ios app". --- # init-xcode-app Scaffolds a native SwiftUI app with XcodeGen (`project.yml` → generated, committed `.xcodeproj`), pre-loaded with the conventions and loop-closer toolchain (xcsift, the Xcode MCP, swiftformat/lint). The lighter native sibling of `init-tauri-app`. ## When to use - "init an xcode project", "scaffold a swiftui app", "new macOS/iOS app". ## Prerequisites (verify before scaffolding) - `xcodegen` on PATH (`xcodegen --version`; `brew install xcodegen` if missing). - Xcode + CLT (`xcodebuild -version`). ## Procedure ### 1. Gather inputs (AskUserQuestion) - **App name** (PascalCase, e.g. `Tidepool`) → `<Name>`; lowercase → `<name>`. - **Bundle-id prefix** (default `com.glebkalinin`) → `<bundlePrefix>`. - **DEVELOPMENT_TEAM** (optional — blank allowed) → `<TEAM>`. - **Target shape:** `ios` | `macos` | `ios-watchos`. - **Modules** (multi-select): CloudKit · CI · Release · Push. - **JTBD artifact (optional):** path to a `jtbd.json` (else auto-discover `./jtbd.json`, `~/jtbd/<name>/jtbd.json`). See 1.5. - **Target directory** (default `~/ai_projects/<name>`). Abort if non-empty. ### 1.5 Ingest JTBD (optional, additive) Identical contract to init-tauri-app: resolve (explicit → `./jtbd.json` → `~/jtbd/<name>/jtbd.json`), confirm via `hook`, validate (`render-jtbd.sh` exits 3 → skip), pre-fill name. Artifacts written in Step 3. ### 2. Render core Copy `assets/core/common/*` into the project (renames: `gitignore`→`.gitignore`, `swiftformat`→`.swiftformat`, `CLAUDE.md`→`.claude/CLAUDE.md`). Copy `assets/core/shapes/<shape>/*` into the project root. For `macos`, also copy `assets/core/shapes/ios/Sources` + `Tests` (macos reuses the same SwiftUI sources). Substitute `<Name>`/`<name>`/`<bundlePrefix>`/`<TEAM>` in every copied file. Blank `<TEAM>` → leave the placeholder line `DEVELOPMENT_TEAM: ""`. **If a JTBD artifact was confirmed:** render `assets/jtbd/PRODUCT.md.template`→`docs/PRODUCT.md`, `guardrails-check.md.template`→`docs/internal/guardrails-check.md`, insert `agents-product-section.md.template` into `AGENTS.md` after the first heading, copy the artifact to project-root `jtbd.json`. See `assets/jtbd/jtbd-map.md`. ### 3. Compose selected modules For each selected module open `assets/modules/<m>/INSERT.md` and follow it: it lists source files to copy and a `project-fragment.yml` to merge into `project.yml` (merge into the existing `targets.<Name>` and `entitlements:` maps — never overwrite). CloudKit + Push both extend the same `entitlements:` map. ### 4. Generate + verify (the gate) ```bash xcodegen generate ``` Then the unsigned build gate by shape: - ios / ios-watchos: `xcodebuild build -scheme <Name> -destination 'generic/platform=iOS Simulator'` - macos: `xcodebuild build -scheme <Name> -destination 'platform=macOS' CODE_SIGNING_ALLOWED=NO` Then `xcodebuild test` against the same destination for the test target. Both must pass. ### 5. Handoff Offer `git init && git add -A && git commit`. Print summary: shape, modules, signing note (device/release signing is a human step), next command (`open <Name>.xcodeproj`).
Files in this package (43)
- SKILL.md 3 KB
- assets/core/common/AGENTS.md 3 KB
- assets/core/common/CLAUDE.md 1 KB
- assets/core/common/CONTRIBUTING.md 1 KB
- assets/core/common/README.md 1 KB
- assets/core/common/gitignore 1 KB
- assets/core/common/swiftformat 1 KB
- assets/core/common/swiftlint.yml 1 KB
- assets/core/shapes/ios/project.yml 1 KB
- assets/core/shapes/ios/Sources/App/<Name>App.swift 1 KB
- assets/core/shapes/ios/Sources/App/ContentView.swift 1 KB
- assets/core/shapes/ios/Sources/App/DetailView.swift 1 KB
- assets/core/shapes/ios/Sources/App/Item.swift 1 KB
- assets/core/shapes/ios/Tests/ItemTests.swift 1 KB
- assets/core/shapes/ios-watchos/project.yml 2 KB
- assets/core/shapes/ios-watchos/Sources/Shared/Item.swift 1 KB
- assets/core/shapes/ios-watchos/Sources/Shared/SyncService.swift 1 KB
- assets/core/shapes/ios-watchos/Sources/Watch/<Name>WatchApp.swift 1 KB
- assets/core/shapes/ios-watchos/Sources/Watch/WatchContentView.swift 1 KB
- assets/core/shapes/ios-watchos/Sources/iPhone/<Name>App.swift 1 KB
- assets/core/shapes/ios-watchos/Sources/iPhone/ContentView.swift 1 KB
- assets/core/shapes/ios-watchos/Tests/ItemTests.swift 1 KB
- assets/core/shapes/macos/project.yml 1 KB
- assets/jtbd/PRODUCT.md.template 1 KB
- assets/jtbd/agents-product-section.md.template 1 KB
- assets/jtbd/guardrails-check.md.template 1 KB
- assets/jtbd/jtbd-map.md 2 KB
- assets/jtbd/fixtures/malformed-jtbd.json 1 KB
- assets/jtbd/fixtures/sample-jtbd.json 1 KB
- assets/modules/ci/INSERT.md 1 KB
- assets/modules/ci/ci.yml 1 KB
- assets/modules/cloudkit/App.entitlements 1 KB
- assets/modules/cloudkit/CloudKitStore.swift 1 KB
- assets/modules/cloudkit/INSERT.md 1 KB
- assets/modules/cloudkit/project-fragment.yml 1 KB
- assets/modules/push/INSERT.md 1 KB
- assets/modules/push/project-fragment.yml 1 KB
- assets/modules/push/registration.swift 1 KB
- assets/modules/release/ExportOptions.plist 1 KB
- assets/modules/release/INSERT.md 1 KB
- assets/modules/release/archive.sh 1 KB
- scripts/render-jtbd.sh 1 KB
- scripts/smoke-xcode.sh 2 KB
Versions
The database has no other skills named init-xcode-app.
Identical content appears in 1 other GitHub folders. We show one copy with the highest score.
Database snapshot: 13.11.2026 · package version e0e790fbbcf5 (SHA-256 digest of the entire package)
Downloads in the last 30 days: 0 · ranking
Report a problem with this skill: harmful content, incorrect descriptions or an author’s removal request.
Similar skills
- 100format-swift-sources
Guide SwiftLint and SwiftFormat integration across CLI, Xcode build phases, Xcode source-editor workflows, Swift Package plugins, AppleScript, Git hooks, and GitHub Actions, including exporting SwiftFormat for Xcode settings into a checked-in project config file. Use this first… - 100swift-app-scaffold
Use when starting a new iOS or macOS app, bootstrapping Package.swift, or scaffolding a modern SwiftUI architecture with Observation, SwiftData, NavigationStack, and Swift Testing. - 100swift-dev
Native iOS and macOS apps in Swift 6 - SwiftUI, AppKit, SwiftData, concurrency, Swift Testing, XcodeGen, CallKit and audio, App Intents, devices, TestFlight, code signing, notarization. Use for any iPhone or Mac app, helper or CLI work. - 100new-mac-app
Create a native macOS SwiftUI app from a working template (Swift package, SwiftData, build script, icon script, snapshot mode, git), with no Xcode GUI. Use when the user wants to start a new Mac app or scaffold a macOS project. - 100new-mac-app
Create a native macOS SwiftUI app from a working template (Swift package, SwiftData, build script, icon script, snapshot mode, git), with no Xcode GUI. Use when the user wants to start a new Mac app or scaffold a macOS project. - 100apple
Develops Apple platform apps in Swift with SwiftUI and UIKit for iOS and macOS. Use when editing Swift or Xcode project files for iOS, macOS, watchOS or visionOS, when a build fails on Swift 6 concurrency or availability errors, when a view hangs or redraws too often, or when…