mcpbeat Sign in

Init Xcode App Skill for Claude

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".

7k tokens
context cost
the whole folder, loaded on every use
43
files
ships runnable scripts
0
copies elsewhere
how many repositories repackaged it
337
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/glebis/claude-skills --skill init-xcode-app

What comes with it

21 234 bytes besides the instruction
assets/core/common/AGENTS.md
assets/core/common/CLAUDE.md
assets/core/common/CONTRIBUTING.md
assets/core/common/README.md
assets/core/common/gitignore
assets/core/common/swiftformat
assets/core/common/swiftlint.yml
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/shapes/ios-watchos/Tests/ItemTests.swift
assets/core/shapes/ios-watchos/project.yml
assets/core/shapes/ios/Sources/App/<Name>App.swift
assets/core/shapes/ios/Sources/App/ContentView.swift
assets/core/shapes/ios/Sources/App/DetailView.swift
assets/core/shapes/ios/Sources/App/Item.swift
assets/core/shapes/ios/Tests/ItemTests.swift
assets/core/shapes/ios/project.yml
assets/core/shapes/macos/project.yml
assets/jtbd/PRODUCT.md.template
assets/jtbd/agents-product-section.md.template
assets/jtbd/fixtures/malformed-jtbd.json
assets/jtbd/fixtures/sample-jtbd.json
assets/jtbd/guardrails-check.md.template
assets/jtbd/jtbd-map.md
assets/modules/ci/INSERT.md
assets/modules/ci/ci.yml
assets/modules/cloudkit/App.entitlements
assets/modules/cloudkit/CloudKitStore.swift
assets/modules/cloudkit/INSERT.md
assets/modules/cloudkit/project-fragment.yml
assets/modules/push/INSERT.md
assets/modules/push/project-fragment.yml
assets/modules/push/registration.swift
assets/modules/release/ExportOptions.plist
assets/modules/release/INSERT.md
assets/modules/release/archive.sh

The instruction itself

10 sections, as written by the author

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.templatedocs/PRODUCT.md,

guardrails-check.md.templatedocs/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)

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).

Other skills for the same job

different authors, same section of the catalogue
Finishing A Development Branch
by ZhanlinCui
×7

Use when implementation is complete, all tests pass, and you need to decide how to integrate the work - guides completion of development work by presenting structured options for merge, PR, or cleanup

1k tokens
Github Release Management
by ComeOnOliver
×3

Comprehensive GitHub release orchestration with AI swarm coordination for automated versioning, testing, deployment, and rollback management

10k tokens
Migrate To Shoehorn
by mxyhi
×2

Migrate test files from `as` type assertions to @total-typescript/shoehorn. Use when user mentions shoehorn, wants to replace `as` in tests, or needs partial test data.

965 tokens
Bun Development
by ComeOnOliver
×2

Modern JavaScript/TypeScript development with Bun runtime. Covers package management, bundling, testing, and migration from Node.js. Use when working with Bun, optimizing JS/TS development speed, or migrating from Node.js to Bun.

8k tokens
Framework Migration Deps Upgrade
by ComeOnOliver
×2

You are a dependency management expert specializing in safe, incremental upgrades of project dependencies. Plan and execute dependency updates with minimal risk, proper testing, and clear migration pa

8k tokens
Debugging Strategies
by ComeOnOliver
×2

Master systematic debugging techniques, profiling tools, and root cause analysis to efficiently track down bugs across any codebase or technology stack. Use when investigating bugs, performance issues, or unexpected behavior.

6k tokens
Backend Dev Guidelines
by ComeOnOliver
×2

Opinionated backend development standards for Node.js + Express + TypeScript microservices. Covers layered architecture, BaseController pattern, dependency injection, Prisma repositories, Zod validation, unifiedConfig, Sentry error tracking, async safety, and testing discipline.

36k tokens
Javascript Typescript Jest
by github
vendor ×1

Best practices for writing JavaScript/TypeScript tests using Jest, including mocking strategies, test structure, and common patterns.

558 tokens

How to use it

Copy the folder

Take glebis/init-xcode-app from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.

Install what it needs

The instructions reference brew. Without those the skill loads but fails at the first command.