mcpField
I
init-xcode-app

init-xcode-app

github.com/glebis開発40149 回インストール1 日前に更新
リポジトリ

init-xcode-app について

XcodeGen を使ってネイティブ SwiftUI アプリのひな形を作成し、プロジェクト規約と開発ツールを設定するスキルです。iOS、macOS、iOS/watchOS のターゲットを構成し、ビルドとテストで生成物を検証します。

主な機能

  1. 01XcodeGen による SwiftUI プロジェクト作成
  2. 02iOS、macOS、iOS/watchOS のターゲット形態
  3. 03CloudKit、CI、Release、Push の任意モジュール
  4. 04JTBD 成果物の任意取り込み
  5. 05ビルドとテストによる検証

活用シーン

  1. 01ネイティブ SwiftUI アプリを開始
  2. 02選択したモジュールを含むプロジェクトを生成
  3. 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.md
CLAUDE.md
CONTRIBUTING.md
gitignore
README.md
swiftformat
swiftlint.yml
assets/core/shapes/ios-watchos/
project.yml
assets/core/shapes/ios-watchos/Sources/iPhone/
<Name>App.swift
ContentView.swift
assets/core/shapes/ios-watchos/Sources/Shared/
Item.swift
SyncService.swift
assets/core/shapes/ios-watchos/Sources/Watch/
<Name>WatchApp.swift
WatchContentView.swift
assets/core/shapes/ios-watchos/Tests/
ItemTests.swift
assets/core/shapes/ios/
project.yml
assets/core/shapes/ios/Sources/App/
<Name>App.swift
ContentView.swift
DetailView.swift
Item.swift
assets/core/shapes/ios/Tests/
ItemTests.swift
assets/core/shapes/macos/
project.yml
assets/jtbd/
agents-product-section.md.template
guardrails-check.md.template
jtbd-map.md
PRODUCT.md.template
assets/jtbd/fixtures/
malformed-jtbd.json
sample-jtbd.json
assets/modules/ci/
ci.yml
INSERT.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)を含む概要を出力します。

コメント