init-xcode-app について
XcodeGen を使ってネイティブ SwiftUI アプリのひな形を作成し、プロジェクト規約と開発ツールを設定するスキルです。iOS、macOS、iOS/watchOS のターゲットを構成し、ビルドとテストで生成物を検証します。
主な機能
- 01XcodeGen による SwiftUI プロジェクト作成
- 02iOS、macOS、iOS/watchOS のターゲット形態
- 03CloudKit、CI、Release、Push の任意モジュール
- 04JTBD 成果物の任意取り込み
- 05ビルドとテストによる検証
活用シーン
- 01ネイティブ SwiftUI アプリを開始
- 02選択したモジュールを含むプロジェクトを生成
- 03引き継ぎ前にひな形アプリを検証
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ glebis/ claude-skills --skill init-xcode-appインストール後、Claude Code で/init-xcode-appを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
assets/core/common/AGENTS.mdCLAUDE.mdCONTRIBUTING.mdgitignoreREADME.mdswiftformatswiftlint.ymlassets/core/shapes/ios-watchos/project.ymlassets/core/shapes/ios-watchos/Sources/iPhone/<Name>App.swiftContentView.swiftassets/core/shapes/ios-watchos/Sources/Shared/Item.swiftSyncService.swiftassets/core/shapes/ios-watchos/Sources/Watch/<Name>WatchApp.swiftWatchContentView.swiftassets/core/shapes/ios-watchos/Tests/ItemTests.swiftassets/core/shapes/ios/project.ymlassets/core/shapes/ios/Sources/App/<Name>App.swiftContentView.swiftDetailView.swiftItem.swiftassets/core/shapes/ios/Tests/ItemTests.swiftassets/core/shapes/macos/project.ymlassets/jtbd/agents-product-section.md.templateguardrails-check.md.templatejtbd-map.mdPRODUCT.md.templateassets/jtbd/fixtures/malformed-jtbd.jsonsample-jtbd.jsonassets/modules/ci/ci.ymlINSERT.md詳細
init-xcode-app
XcodeGen(project.yml → 生成され、コミットされる .xcodeproj)を使ってネイティブの SwiftUI アプリをスキャフォールドします。
規約と、ループを完結させるツールチェーン(xcsift、Xcode MCP、swiftformat/lint)があらかじめ設定されています。
init-tauri-app の、より軽量なネイティブ版です。
使用する場面
- 「Xcode プロジェクトを初期化する」「SwiftUI アプリをスキャフォールドする」「新しい macOS/iOS アプリ」。
前提条件(スキャフォールド前に確認)
- PATH 上に
xcodegenがあること(xcodegen --version。見つからない場合はbrew install xcodegen)。 - Xcode と CLT があること(
xcodebuild -version)。
手順
1. 入力を収集する(AskUserQuestion)
- アプリ名(PascalCase、例:
Tidepool)→<Name>。小文字表記 →<name>。 - Bundle ID のプレフィックス(デフォルト:
com.glebkalinin)→<bundlePrefix>。 - DEVELOPMENT_TEAM(任意 — 空欄可)→
<TEAM>。 - ターゲットの形状:
ios|macos|ios-watchos。 - モジュール(複数選択):CloudKit · CI · Release · Push。
- JTBD 成果物(任意):
jtbd.jsonのパス(指定がなければ./jtbd.json、~/jtbd/<name>/jtbd.jsonを自動検出)。1.5 を参照してください。 - ターゲットディレクトリ(デフォルト:
~/ai_projects/<name>)。空でない場合は中止します。
1.5 JTBD を取り込む(任意、追加のみ)
init-tauri-app と同一の契約です。解決順序は(明示的な指定 → ./jtbd.json → ~/jtbd/<name>/jtbd.json)です。
hook で確認し、検証します(render-jtbd.sh が 3 を終了コードとして返した場合はスキップ)。名前を事前入力します。成果物はステップ 3 で書き出します。
2. コアをレンダリングする
assets/core/common/* をプロジェクトにコピーします(名前を変更:gitignore→.gitignore、swiftformat→.swiftformat、
CLAUDE.md→.claude/CLAUDE.md)。assets/core/shapes/<shape>/* をプロジェクトのルートにコピーします。macos の場合は、
assets/core/shapes/ios/Sources と Tests もコピーします(macos では同じ SwiftUI ソースを再利用します)。コピーしたすべてのファイル内の
<Name>/<name>/<bundlePrefix>/<TEAM> を置換します。<TEAM> が空の場合は、プレースホルダー行
DEVELOPMENT_TEAM: "" をそのまま残します。
JTBD 成果物が確認済みの場合: assets/jtbd/PRODUCT.md.template を docs/PRODUCT.md に、
guardrails-check.md.template を docs/internal/guardrails-check.md にレンダリングし、
agents-product-section.md.template を最初の見出しの後に AGENTS.md へ挿入し、成果物を
プロジェクトルートの jtbd.json にコピーします。assets/jtbd/jtbd-map.md を参照してください。
3. 選択したモジュールを組み込む
選択した各モジュールについて assets/modules/<m>/INSERT.md を開き、その手順に従います。そこにはコピーするソースファイルと、
project.yml にマージする project-fragment.yml が記載されています(既存の targets.<Name> マップと entitlements: マップにマージし、上書きはしないでください)。CloudKit と Push はどちらも同じ entitlements: マップを拡張します。
4. 生成して検証する(ゲート)
xcodegen generate
続いて、形状ごとに未署名ビルドのゲートを実行します。
- ios / ios-watchos:
xcodebuild build -scheme <Name> -destination 'generic/platform=iOS Simulator' - macos:
xcodebuild build -scheme <Name> -destination 'platform=macOS' CODE_SIGNING_ALLOWED=NO
その後、同じ destination を指定してテストターゲットに対し xcodebuild test を実行します。どちらも成功する必要があります。
5. 引き渡し
git init && git add -A && git commit を提案します。形状、モジュール、署名に関する注意(デバイス/リリース用の署名は人手で行う手順です)、次のコマンド(open <Name>.xcodeproj)を含む概要を出力します。