spezi-platform-selection について
計画内容に基づいて Spezi アプリのテンプレートを選び、プロジェクトを準備するスキルです。プラットフォーム選定や環境設定を案内し、計画書をコーディングエージェントに引き継ぎます。
主な機能
- 01React Native と Apple-native の選定
- 02開発環境のセットアップ案内
- 03Spezi テンプレートの生成またはクローン
- 04計画書の移行
- 05実装引き継ぎの案内
活用シーン
- 01計画済みアプリを Spezi テンプレートで開始
- 02クロスプラットフォームか Apple-native かを選択
- 03計画書を新しいプロジェクトに引き継ぐ
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ stanfordspezi/ spezivibe --skill spezi-platform-selectionインストール後、Claude Code で/spezi-platform-selectionを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/platform-decision.mdsetup-guide.mdscripts/clone-template.sh詳細
Spezi プラットフォームの選択
ユーザーが計画を終え、Spezi のテンプレートを使って始めたいと考え、開発を始める準備ができたときに、このスキルを使用します。計画概要に基づいて React Native と Apple-native のどちらを使うかを選び、適切な Spezi スターターテンプレートをセットアップします(React Native では公式 CLI でアプリを生成し、Apple-native ではクローンします)。さらに、既存の docs/planning/ と docs/implementation-plan.md を新しいプロジェクトに移し、コーディングエージェントがすべてのコンテキストを把握できるようにします。
このスキルは、ほかの計画スキルの後に実行してください。プラットフォームの選択には、計画で明らかになった要件(HealthKit のニーズ、クロスプラットフォームの要件など)が反映されるためです。
使用しない場合
ユーザーが Spezi テンプレートを採用しない場合は、このスキルを使わないでください。たとえば、既存のアプリを拡張する場合、別のフレームワーク(Flutter、Web など)を使う場合、またはスキャフォールディングを全面的に制御したい場合が該当します。計画概要と実装計画はどのコードベースでも同様に役立つため、ユーザーはそれらをコーディングエージェントに直接渡すことができます。build-an-app フローでここでの選択を見送ると、オーケストレーターのステップ 4 に戻り、選択したフレームワークでプロジェクトをセットアップし、まだ決まっていない実装計画を絞り込みます。
プラットフォームの選択肢
推奨する前に、setup-guide.md を読んでください。
- React Native — 1 つのコードベースからクロスプラットフォーム(iOS + Android)で開発できます。SpeziVibe React Native Template を基盤としています。
- Apple-native — iPhone、iPad、Vision Pro 向けの Swift / SwiftUI です。Apple プラットフォーム向けの Spezi Template Application を基盤としています。
まず質問する
アプリの主な用途が次のどれにあたるかを明らかにする、簡潔な質問をしてください。
- コンテンツ、フォーム、スケジュール管理、チャット、またはクロスプラットフォームのワークフロー支援
- HealthKit、SensorKit、Bluetooth 周辺機器、バックグラウンドでのデータ収集、またはその他の Apple-native SDK との緊密な連携
次の点を確認してください。
- ユーザーは誰か
- リリース時に Android 対応が重要か
- アプリは iPhone 専用か、Apple プラットフォームに重点を置くか
- Apple のネイティブ機能が、製品価値の中核をなすか
プラットフォームを決定する
決定する前に、platform-decision.md を読んでください。
次の場合は React Native を選択します。
- クロスプラットフォームでの提供(iOS + Android)が重要
- 主な機能がコンテンツ、アンケート、スケジュール管理、チャット、または軽量な連携
次の場合は Apple-native を選択します。
- HealthKit、SensorKit、またはその他の Apple-native SDK が製品に不可欠(Bluetooth 周辺機器だけでは選択を決める必要はありません。クロスプラットフォームの BLE ライブラリが存在します。要件が両方にまたがる場合は、platform-decision.md の「両方が重要な場合」のガイダンスに従ってください)
- アプリが明確に iPhone、iPad、または Vision Pro 向け
- クロスプラットフォーム対応よりも、プラットフォームとの緊密な連携が重要
マシンを準備する
プラットフォームを決定したら、テンプレートのセットアップと実装に進む前に、setup-guide.md にある該当するセットアップ手順をユーザーに案内してください。
- Apple-native の場合は、まず Xcode のインストールと動作確認を支援してください。
- React Native の場合は、対象とするプラットフォームに応じて、適切な Expo および React Native 開発環境のセットアップを支援してください。
ユーザーが次のどれを希望するか、明確にしてください。
- 実機ですぐに試す
- シミュレーターまたはエミュレーターを使った開発
- ネイティブ機能を利用する開発ビルド
選択したテンプレートをセットアップする
プロジェクトをどこに配置するかユーザーに尋ねてください。アプリ名を付けた、計画ディレクトリの隣のディレクトリが適切な既定値です。その後、場当たり的なコマンドではなく、同梱のヘルパーを使ってください。
- React Native:
scripts/clone-template.sh react-native <destination>— テンプレートの公式ジェネレーター(npx create-spezivibe-app)を実行します。バックエンドと任意の機能についてのプロンプトが表示され、単体で動作するアプリが生成されます。SpeziVibeReactNativeTemplate リポジトリを直接クローンしてはいけません。これは CLI、パッケージ、テンプレートのインフラストラクチャを含むモノレポであり、アプリではありません。 - Apple-native:
scripts/clone-template.sh apple-native <destination>— Spezi Template Application をクローンします。
React Native ジェネレーターが失敗した場合(スクリプトがアプリを作成できなかったと報告する場合)は、テンプレートのモノレポを独自にクローンしようとせず、テンプレートリポジトリの READMEで最新の生成手順を確認し、失敗したことをユーザーに伝えてください。
Apple-native のクローンでは、ヘルパーが origin リモートの名前を template に変更するため、ユーザーが誤ってプロジェクトや計画ブリーフを Stanford のテンプレートリポジトリにプッシュすることはありません。React Native ジェネレーターは、リモートのない新しいプロジェクトを生成します。いずれの場合も、ユーザーがプッシュする前に、独自のリポジトリを作成して origin として追加できるよう支援してください。
計画を引き継ぐ
現在の作業ディレクトリに、他の計画スキルが作成した docs/planning/ ディレクトリまたは docs/implementation-plan.md がある場合は、コーディングエージェントが適切な場所から計画全体を読み取れるよう、テンプレートプロジェクトに移動してください。
まず、プロジェクトに docs/planning/ または docs/implementation-plan.md がすでに含まれているか確認してください(テンプレートの更新または前回の実行で作成されたもの)。含まれている場合は、以下のブロックを実行せず、ファイルごとにマージしてください。既存のディレクトリに対して mv を実行してもマージされず、新しいブリーフがその中に黙ってネストされます(docs/planning/planning/)。
それ以外の場合:
mkdir -p <destination>/docs
mv docs/planning <destination>/docs/planning
mv docs/implementation-plan.md <destination>/docs/implementation-plan.md
rmdir docs 2>/dev/null || true
mkdir -p は重要です。テンプレートに docs/ ディレクトリが含まれているとは限らず、親ディレクトリがないと mv は失敗します。末尾の rmdir は、計画ディレクトリに残った空の docs/ を削除します。
移動する前に、ユーザーに確認してください。
移動後:
- プロジェクトの
README.mdとエージェント向けの指示ファイル(AGENTS.md、CLAUDE.md)を読み、実装がテンプレートの規約に沿うようにします docs/implementation-plan.mdのプラットフォームが「To be decided」となっている場合は、Platform フィールドを選択したプラットフォームに更新し、両プラットフォームにまたがる注記(例:「questionnaire / SpeziQuestionnaire」)を選択した側だけに絞ります。Feature List の Packages/Modules 列も対象です。また、解決済みのプラットフォームに関する質問を Open Questions から削除します- 元の計画ディレクトリではなく、テンプレートプロジェクト内で実装を続けます
出力
最後に、次の内容を含む短い要約を記載してください。
- 選択したプラットフォーム(React Native または Apple-native)
- 選択した理由(判断の根拠となった計画ブリーフを挙げる)
- 完了した、または今後必要なマシンのセットアップ手順
- プロジェクトの配置先
- 計画ブリーフをプロジェクトに移動したかどうか
- 次のステップ:コーディングエージェントに
docs/implementation-plan.mdのマイルストーン 1 を実装するよう依頼する