Project Bootstrap
薄いオーケストレーターです。このスキルは他のスキルを含みません。適切なタイミングで適切なスキルをロードし、ファイル作成のための決定論的なスクリプトを実行し、ユーザーの回答からテンプレートを埋めます。以下の手順がコピーされたスキルと競合する場合、このスキルが優先されます。
優先順位ルール — セットアップセッションのみ
この優先順位はセットアップセッション中、このスキルがアクティブな間のみ適用されます。セットアップ中に指示が競合する場合は、次の順序で適用します。
- このスキル (
project-bootstrap) — セットアップスコープ、安全ルール、停止ルール。 - プロジェクト自身の
CLAUDE.md— 作成中のもの。 - スタックスキル — 例:このプロジェクトタイプのSwiftUIスキルやデザインスキル。
- ワークフローチェックリスト —
references/workflow.md、デフォルトのプロセス。
セットアップが終了すると、このスキルは非アクティブになり、優先順位は失効します。プロジェクトの CLAUDE.md(およびそのドキュメント)は、将来のセッションのための唯一の常設指示セットとなります。
競合する2つのワークフローフレームワークをインストールしないでください(例えば、重い仕様駆動フレームワークとこのスキルのワークフローチェックリストの両方をインストールしないでください)。ユーザーが明示的にワークフローフレームワークを指定した場合は、デフォルトのチェックリストの代わりにそれを使用し、選択内容を docs/SETUP.md に記録します。
安全ルール(決してオーバーライドされません)
- 生成されたファイルにシークレット、APIキー、またはトークンを決して書き込まず、サーバーサイドのシークレット(例:銀行APIのシークレット)をクライアントアプリ内に配置しないでください。
- ユーザーの事前許可なしに既存のファイルを決して上書きしないでください(
scripts/bootstrap.pyはデフォルトで拒否します。--forceはオプトインのみで、--forceを使用する場合、スクリプトは最初に各ファイルを<filename>.pre-bootstrap.bakにバックアップします)。 - セットアップのみ:このセッションで製品機能の構築を開始しないでください。
ワークフロー
これらの手順を順番に実行してください。先に進まないでください。
1. インタビュー
references/interview.md をロードします。その質問を一度に1つずつ尋ね、各回答が到着した時点で関連するドキュメントに書き込みます。すべてを会話メモリに保持しないでください。ユーザーが複数の質問に一度に回答した場合は、すべての回答を記録し、回答済みの質問にマークを付け、最初の未回答の質問から続行します。回答済みの質問を再度尋ねないでください。すべての質問に回答があるか、ユーザーが明示的に先送りした場合(先送りされた項目は docs/STATE.md に記録します)、インタビューを停止します。
2. スクリプトの実行
このスキルのディレクトリから、次のコマンドを実行します。
python3 scripts/bootstrap.py \
--project-name "<インタビューで得たプロジェクト名>" \
--type <ios|web|python|generic> \
--purpose "<インタビューで得た目的(1行)>" \
--target <新しいプロジェクトリポジトリへのパス> \
--allow-placeholders
--allow-placeholders はここでは必須です。この段階ではテンプレートにまだ意図的に {{...}} の入力トークンが含まれているため(手順3で埋められます)、スクリプトはファイルごとのトークン警告付きで検証を通過し、失敗しません。ターゲットディレクトリは既に存在している必要があります(新しいプロジェクトリポジトリ)。スクリプトは存在しないターゲットに対してエラーを返し、タイプミスのあるパスを作成しません。ユーザーが明示的にスクリプトにそのディレクトリを作成させたい場合にのみ --create-target を渡します。
これにより、ディレクトリが作成され、テンプレートが決定論的にレンダリングされます。作成、スキップ、または上書きしたものを正確に報告してください。スクリプトが報告しなかったファイルが存在すると主張しないでください。
3. インタビューの回答からテンプレートを埋める
生成されたファイル内の残りの入力トークンを実際の回答に置き換えます。CLAUDE.md / AGENTS.md のスタックとビルド/テストコマンド、docs/PRD.md のスコープ、docs/ROADMAP.md のフェーズ、docs/CONTEXT.md の用語集です。CLAUDE.md は短く保ちます。約80行を超える場合は、詳細を docs/ に移動し、ポインタを残します。
4. スタックスキルのインストール — ピン留め、インストール前に読む
プロジェクトタイプのリファレンスをロードし、そこにリストされているスキルのみをインストールします。
- iOS →
references/ios.md - Web →
references/web.md - Python / 汎用 → デフォルトではスタックスキルなし。その選択を SETUP に記録します。
リストされているすべてのスキルは、リファレンスのピン留めスキルテーブルで正確なコミットSHAにピン留めされています。インストールとは、リポジトリをプロジェクトの .claude/skills/ にクローンし、その後 git checkout でピン留めされたSHAにチェックアウトすることを意味します。移動するブランチからインストールしないでください。また、新しいSHAを記録せずにピンをバンプしないでください。
インストール前の読み取りは必須です。 クローン後、インストールが完了と見なされる前に、各スキルについて次の手順を実行します。
- その
SKILL.mdを完全に読みます(そして、それがデフォルトでロードする他のものにも注意してください)。 - 2~3行の要約を書きます。このスキルが将来のセッションにどのような指示をロードするか。
- ネットワークアクセス、認証情報の使用、または破壊的なコマンドを要求するものをフラグします。フラグをユーザーに提示します。ユーザーの事前承認なしに、それらのいずれかを要求するスキルを黙ってインストールしないでください。
docs/SETUP.md に、スキルごとに次の情報を記録します。名前、正確なソースURL、ピン留めされたSHA、インストール日、および読み取り要約。スキルの内容を CLAUDE.md にコピーしないでください。スキルは別個のロード可能なユニットのままです。
5. ワークフロールールの設定
references/workflow.md のデフォルトループを CLAUDE.md に書き込みます(まだない場合)。仕様 → 計画 → 構築 → 個別レビュー、1フェーズにつき新しいセッション、各セッションの終了時に docs/STATE.md を更新します。
6. 検証 — 手順2の出力ではなく、新たにチェック
検証を今、新たに --verify モードで実行します(ターゲットを現在の状態のまま読み取り、何も変更しません)。
python3 scripts/bootstrap.py --verify --target <プロジェクトリポジトリへのパス>
手順2の実行の出力を再利用しないでください。その実行は手順3の入力埋めと手順4のインストールよりも前に行われます。検証コマンドに --allow-placeholders を追加しないでください。スクリプトはその組み合わせを即座に拒否します。なぜなら、検証は入力済みのファイルに対して実行する必要があるからです。--verify は、生成されたファイルに残っている入力トークンがあると失敗します。トークンが原因で失敗した場合、手順3は完了していません。戻って残りのトークンを埋め、--verify が成功するまで再実行します。--verify はトークンだけでなく内容もチェックします。PRDのスコープ外リストは空であってはならず、docs/SETUP.md にはインストールされた各スキルのピン留めされたSHAが記録されている(またはスタックスキルがインストールされていないことを明記している)必要があります。また:
.gitignoreがこのスタックのシークレットをカバーしていることを確認します。- プロジェクトの空/テンプレートアプリが
CLAUDE.mdに記録されたビルドコマンドでまだビルドできることを確認します(ビルドコマンドが既に存在する場合)。 docs/SETUP.mdを再読します。インストールされたすべてのスキルが、ソースURL、ピン留めされたSHA、インストール日、読み取り要約とともにリストされている必要があります。
7. コミット
1つのコミット、それ以上はありません。
chore: initial project setup
セットアップファイルのみを含めます。gitユーザーIDまたはリモートが設定されていない場合は、その旨を伝え、コミットはユーザーに委ねます。どちらも発明しないでください。
8. 停止
ユーザーに作成されたファイルツリーと docs/ROADMAP.md のフェーズ1を表示します。その後、停止します。フェーズ1を開始しないでください。機能を構築しないでください。「スケルトンを始めるだけ」を申し出ないでください。次のフェーズは新しいセッションで行う必要があります(references/workflow.md を参照)。
エスケープハッチ: ユーザーが明示的に続行するよう指示した場合を除き、停止します。続行するよう指示された場合、フェーズ1は新しいセッションで行うべきであることを一度だけ推奨し、その後ユーザーの指示に従って続行します。
リファレンスファイル — オンデマンドでロード
| ファイル | ロードするタイミング |
|---|---|
references/interview.md | 常に — 手順1。 |
references/ios.md | プロジェクトタイプが ios の場合。 |
references/web.md | プロジェクトタイプが web の場合。 |
references/workflow.md | 手順5、およびブートストラップされたリポジトリで作業する将来のセッション。 |