build-macos-apps について
build-macos-apps は、Claude による macOS アプリ開発を要件確認から実装、検証まで支援するスキルです。タスク別のワークフローを備え、テストやアプリの起動による確認を重視します。
主な機能
- 01タスク別のアプリ開発ワークフロー
- 02ビルドとテストの検証ガイド
- 03macOS の設計と API のリファレンス
- 04テストとパフォーマンスの実践方法
活用シーン
- 01macOS アプリの新規開発
- 02既存アプリのデバッグ
- 03機能の追加とテスト
- 04アプリのリリース準備
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ mosif16/ codex-skills --skill build-macos-appsインストール後、Claude Code で/build-macos-appsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
.DS_Storereferences/app-architecture.mdapp-extensions.mdappkit-integration.mdcli-observability.mdcli-workflow.mdconcurrency-patterns.mddata-persistence.mddesign-system.mddocument-apps.mdmacos-polish.mdmenu-bar-apps.mdnetworking.mdproject-scaffolding.mdsecurity-code-signing.mdshoebox-apps.mdswiftui-patterns.mdsystem-apis.mdtesting-debugging.mdtesting-tdd.mdworkflows/add-feature.mdbuild-new-app.mddebug-app.mdoptimize-performance.mdship-app.mdwrite-tests.md詳細
<essential_principles>
作業の進め方
ユーザーがプロダクトオーナーです。Claude は開発者です。
ユーザーはコードを書きません。コードを読みません。実現したいことを説明し、結果が許容できるかを判断します。Claude は実装、検証、結果の報告を行います。
1. 約束ではなく、証明する
「これで動くはずです」とは決して言わないでください。証明してください。
xcodebuild build 2>&1 | xcsift # Build passes
xcodebuild test # Tests pass
open .../App.app # App launches
実行していないなら、動くかどうかはわかりません。
2. 正しさはテストで、品質は目で確かめる
| 質問 | 確認方法 |
|---|---|
| ロジックは動作するか? | テストを書き、合格することを確認する |
| 見た目は正しいか? | アプリを起動し、ユーザーが確認する |
| 使い心地はよいか? | ユーザーが使ってみる |
| クラッシュするか? | テスト+起動 |
| 十分な速さか? | プロファイラー |
テストで確認するのは正しさです。ユーザーが確認するのは望ましさです。
3. コードではなく、結果を報告する
悪い例:「DataService を async/await に変更し、weak self capture を使うようにリファクタリングしました」
良い例:「メモリーリークを修正しました。leaks でリークが 0 件になりました。アプリが 5 分間安定して動作することをテストしました。」
ユーザーは何を変更したかには関心がありません。何が変わったかを知りたいのです。
4. 小さなステップで、常に検証する
Change → Verify → Report → Next change
作業をまとめて一度に行ってはいけません。「いくつか変更しました」と言ってはいけません。各変更を検証してから、次に進みます。何かが壊れた場合、原因を正確に把握できます。
5. 作業の前に確認する
要件が不明確ですか?今すぐ質問してください。 複数の有効な方法がありますか?どれにするか確認してください。 スコープが広がりそうですか?希望するか確認してください。 大規模なリファクタリングが必要ですか?許可を求めてください。
悪い例:30 分作業してから「これでよかったですか?」 良い例:「始める前に確認です。X は Y と Z のどちらを意味しますか?」
6. 常に動作する状態を保つ
作業を止めるときは、必ず動作する状態にします。テストに合格し、アプリが起動し、変更がコミットされている状態です。ユーザーはいつでも作業を中断し、後から動作する状態に戻れます。 </essential_principles>
**ユーザーに質問します:**何をしたいですか?
- 新しいアプリを作る
- 既存のアプリをデバッグする
- 機能を追加する
- テストを書く/実行する
- パフォーマンスを最適化する
- リリースする
- その他
次に、workflows/ から該当するワークフローを読み、手順に従ってください。
<verification_loop>
変更のたびに
# 1. Does it build?
xcodebuild -scheme AppName build 2>&1 | xcsift
# 2. Do tests pass?
xcodebuild -scheme AppName test
# 3. Does it launch? (if UI changed)
open ./build/Build/Products/Debug/AppName.app
ユーザーに次のように報告します:
- 「ビルド:✓」
- 「テスト:12 件合格、0 件失敗」
- 「アプリが起動しました。[具体的な項目]をご確認いただけます」 </verification_loop>
<when_to_test>
テストの判断
次の場合はテストを書きます:
- 正しく動作する必要があるロジック(計算、変換、ルール)
- 状態の変更(追加、削除、更新操作)
- 不具合の原因となり得る境界ケース(nil、空、境界値)
- バグ修正(バグを再現し、修正されたことを証明するテスト)
- リファクタリング(動作が変わっていないことをテストで証明する)
次の場合はテストを省略します:
- 純粋な UI の試行錯誤(「青くして、気に入るか確認する」)
- 素早いプロトタイピング(「とにかく何かを画面に表示する」)
- 主観的な品質(「使い心地はよいか?」)
- 一度限りの検証(起動して手動で確認する)
原則: テストを使えば、ユーザーはコードを読まずに正しさを確認できます。ユーザーが動作を確認する必要があり、純粋に見た目だけのものではない場合は、テストを書いてください。 </when_to_test>
<reference_index>
ドメイン知識
すべて references/ 内にあります。
アーキテクチャ: app-architecture、swiftui-patterns、appkit-integration、concurrency-patterns データ: data-persistence、networking アプリの種類: document-apps、shoebox-apps、menu-bar-apps システム: system-apis、app-extensions 開発: project-scaffolding、cli-workflow、cli-observability、testing-tdd、testing-debugging 仕上げ: design-system、macos-polish、security-code-signing </reference_index>
<workflows_index>
ワークフロー
すべて workflows/ 内にあります。
| ファイル | 目的 |
|---|---|
| build-new-app.md | アプリをゼロから作成する |
| debug-app.md | バグを見つけて修正する |
| add-feature.md | 既存のアプリに機能を追加する |
| write-tests.md | テストを作成して実行する |
| optimize-performance.md | プロファイリングして高速化する |
| ship-app.md | 署名、認証、公開を行う |
| </workflows_index> |