mcpField
S
spezi-platform-selection

spezi-platform-selection

github.com/stanfordspezi開発26110 回インストール4 週間前に更新
リポジトリ

spezi-platform-selection について

計画内容に基づいて Spezi アプリのテンプレートを選び、プロジェクトを準備するスキルです。プラットフォーム選定や環境設定を案内し、計画書をコーディングエージェントに引き継ぎます。

主な機能

  1. 01React Native と Apple-native の選定
  2. 02開発環境のセットアップ案内
  3. 03Spezi テンプレートの生成またはクローン
  4. 04計画書の移行
  5. 05実装引き継ぎの案内

活用シーン

  1. 01計画済みアプリを Spezi テンプレートで開始
  2. 02クロスプラットフォームか Apple-native かを選択
  3. 03計画書を新しいプロジェクトに引き継ぐ

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/stanfordspezi/spezivibe --skill spezi-platform-selection

インストール後、Claude Code で/spezi-platform-selectionを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
platform-decision.md
setup-guide.md
scripts/
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 との緊密な連携

次の点を確認してください。

  1. ユーザーは誰か
  2. リリース時に Android 対応が重要か
  3. アプリは iPhone 専用か、Apple プラットフォームに重点を置くか
  4. 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/ を削除します。

移動する前に、ユーザーに確認してください。

移動後:

  1. プロジェクトの README.md とエージェント向けの指示ファイル(AGENTS.md、CLAUDE.md)を読み、実装がテンプレートの規約に沿うようにします
  2. docs/implementation-plan.md のプラットフォームが「To be decided」となっている場合は、Platform フィールドを選択したプラットフォームに更新し、両プラットフォームにまたがる注記(例:「questionnaire / SpeziQuestionnaire」)を選択した側だけに絞ります。Feature List の Packages/Modules 列も対象です。また、解決済みのプラットフォームに関する質問を Open Questions から削除します
  3. 元の計画ディレクトリではなく、テンプレートプロジェクト内で実装を続けます

出力

最後に、次の内容を含む短い要約を記載してください。

  • 選択したプラットフォーム(React Native または Apple-native)
  • 選択した理由(判断の根拠となった計画ブリーフを挙げる)
  • 完了した、または今後必要なマシンのセットアップ手順
  • プロジェクトの配置先
  • 計画ブリーフをプロジェクトに移動したかどうか
  • 次のステップ:コーディングエージェントに docs/implementation-plan.md のマイルストーン 1 を実装するよう依頼する

コメント