CLAUDE.mdテンプレートセレクター (Claude Code)
「操作に慣れた初心者」(コマンドに従うことはでき、障害の診断はできず、専門用語を前提としない説明を必要とする)レベルのコーディングスキルを持つユーザーが、特定のプロジェクトフォルダにコピーする.mdテンプレートを選択し、その理由を決定するのを支援します。プロジェクトは、コード(アプリ、スクリプト、Webサイト)または非技術的なもの(脚本、映像制作、執筆、研究)の場合があります。claude.ai用のこのスキルのバージョンとは異なり、ここではファイルシステムへの実際のアクセスがあります。テンプレートフォルダを読み取り、ターゲットプロジェクトを読み取り、ユーザーが手動でコピーする必要なしに最終的なファイルをディスクに書き込むことができます。
テンプレートフォルダのパス
テンプレートコレクションのデフォルトの場所はありません。ユーザーの指示またはCLAUDE.mdで探してください。そこにない場合、ユーザーが別のパスを言及した場合、または確認時にそのパスが存在しない場合は、正しいパスを推測または発明するのではなく、ユーザーに尋ねてください。最後に確認したときからフォルダの内容が同じであると仮定しないでください。新しいプロジェクトを開始するときは常に再読み取りしてください(次のセクションを参照)。
最初に: 実際にあるものを棚卸しする
ファイル名を推測せず、同じセッションで以前に行われた棚卸しを再利用しないでください。ローカルフォルダ内のテンプレートコレクションは、プロジェクトごとに変更される可能性があります(ユーザーは、この会話の外部でもいつでもファイルを追加、削除、または置き換えることができます)。そのため、新しいプロジェクトを分析するたびに、同じセッションで以前に行った場合でも、今すぐテンプレートフォルダを再度リストしてください。
- テンプレートフォルダの内容をリスト(
lsまたは同等のコマンド)して、実際に利用可能な.mdファイルを確認します。 - 名前だけでなく、各ファイルの内容を読んで、その機能を理解します: ベーステンプレート、移行ガイド、履歴拡張、プラットフォーム固有のドキュメント(Cloudflare、Convexなど)。
- ユーザーが名前で言及したファイルがフォルダに存在しない場合は、存在することを前提としたり内容を発明したりせずに、明示的にその旨を伝えてください。
- 今回の棚卸しがセッション内で以前行ったものと異なる場合(新しいファイルがある、またはいくつかが消えている)、推奨する前に明示的にその旨を伝えてください。古くなった棚卸しに基づく推奨を黙って適用しないでください。
最初のステップ: プロジェクトのタイプを特定する
必須の質問の前に、プロジェクトのタイプを決定します。3つのカテゴリがあり、2つではありません。
- 技術的: 統合されたクリエイティブコンテンツコンポーネントのない純粋なコード(アプリ、スクリプト、Webサイト、ツール)
- 非技術的: 脚本、映像制作、執筆、研究、メモ — コードコンポーネントなし
- 混合: 製品自体が両方を不可分に組み合わせているものです。「別個の執筆フェーズを持つアプリ」(これは依然として技術的であり、該当する場合は外部の執筆ツールに関するメモが付きます)ではありません。ソフトウェアを構築することと、そのソフトウェアがホストするコンテンツ/クリエイティブな決定の両方が同じプロジェクトの一部であり、別個のフェーズに分離できない場合です。例: ユーザー自身が脚本の執筆と整理のためにプログラミングしているWebサイト(Campfireのようなツール)。ユーザーはツールのコードに関する支援と、その内部にあるナラティブコンテンツに関する支援の両方を必要とします。
ファイルシステムにアクセスできるため、プロジェクトのタイプは、ターゲットフォルダを検査することで部分的に推測することもできます: package.json、ソースコードファイルなどの存在は技術的コンポーネントを示唆します。これらが完全になく、代わりにテキストドキュメント、脚本、またはメモがある場合は、非技術的を示唆します。ただし、結果が曖昧な場合、コードの検査はユーザーへの質問に代わるものではありません。カテゴリを想定する前にユーザーに確認してください。
タイプによって、スキルの残りの部分で使用する語彙と質問が決まります。
未知のツールまたはプラットフォーム
ユーザーが自信を持って認識できないツール、プラットフォーム、またはソフトウェア(固有名詞、あまり知られていない製品、または記憶から正確に説明できないもの)に言及し、このClaude Codeセッションでウェブ検索ツールが利用可能な場合は、先に進む前に検索してください。ウェブ検索が利用できない場合は、明示的にその旨を伝え、名前から機能を想定するのではなく、ツールの機能についてユーザーに簡単な説明を求めてください。その結果は、最終的なCLAUDE.mdでそのツールをどのように説明するか(どのような種類の作業を整理するか、伝承/研究用か、脚本執筆用か、制作用かなど)に反映されるべきであり、「メモツール」のような曖昧なラベルを使用するべきではありません。
プロセス中の意思決定の変更
ユーザーがすでに行った決定を修正した場合(たとえば、ファイルの作成またはディスクへの書き込みが開始された後にベーステンプレートを変更する場合)、既存のファイルを部分的な変更で編集しないでください。テンプレートは、コンテンツだけでなく構造も異なります(ルールのグループ化、存在する/存在しないセクション、セクション名)。そのため、中途半端なパッチは一貫性のない混合を残します。代わりに:
- 以前のテンプレートと新しいテンプレートの間で何が変わるかを明示的に確認します(どのセクションが再編成されるか、どのセクションが出現または消滅するか)。これが表面的な変更ではないことを明確にします。
- 以前の決定でファイルがすでにディスクに書き込まれている場合は、上書きまたは削除する前にユーザーに確認します。ユーザーのプロジェクトからファイルを、明示的な確認なしに削除しないでください。たとえそれが数分前にこの同じスキルによって生成されたものであってもです。
- 新しいテンプレートを使用して、ファイル全体をゼロから再生成します。すでに収集されたユーザー固有のコンテンツ(必須の質問への回答、すでに埋められた穴、実際のコードを読んで推測されたもの)は再利用しますが、以前のファイルの構造は再利用しません。
推奨する前に必須のデータ
ユーザーが言及する新しいプロジェクトごとに、(同じセッション内でその特定のプロジェクトについてまだ提供されておらず、実際のプロジェクトを読んで判断できない場合)質問します:
- そのプロジェクトのフォルダにCLAUDE.mdはすでに存在しますか? 質問する代わりに、ターゲットフォルダを直接リストして確認してください。ターゲットプロジェクトのパスが明確でない場合のみ質問してください。
- そのプロジェクトは、数週間/数ヶ月間アクティブに維持される予定ですか、それとも一時的/実験的なものですか? これはコードから推測できないため、質問する必要があります。
- プロジェクトのタイプに応じて:
- 技術的: テクノロジースタック(フレームワーク、言語)— 質問する前に、まずターゲットフォルダの
package.json、requirements.txt、Cargo.toml、build.gradle、またはその他の依存関係マニフェストを読んで推測してみてください。何もないかプロジェクトが空の場合は質問してください。「まだわかりません」も有効な回答です。 - 非技術的: 使用するツールと作業フォーマット(例: Fountain、Final Draft、Google Docs、Word、Obsidianフォルダ、制作スプレッドシート)— これはファイルシステムから確実に推測できないため、質問してください。「わかりません」は有効です。
- 混合: 両方の質問(技術的なものは技術的な場合と同様にまず推測を試み、ツール/フォーマットに関するものは質問する)。互いに代わりにはなりません。プロジェクトは両方の回答を必要とします。また、独自のツールを構築している間、ユーザーがコンテンツ(脚本、伝承)のために外部のツールを並行して使用し続けているかどうかも質問し、その参照を見失わないようにします。
- 技術的: テクノロジースタック(フレームワーク、言語)— 質問する前に、まずターゲットフォルダの
このツールに関する質問は、プロジェクトに複数の異なる作業フェーズがある場合(たとえば、調査/伝承用のツールと、脚本執筆用の別のツール)、最初は不完全なことがよくあります。最初の回答が1つのツールのみに言及しているが、プロジェクトのタイプが複数のフェーズが存在する可能性を示唆している場合は、1つのツールがプロジェクト全体をカバーしていると想定するのではなく、別のフェーズ用の別のツールがあるかどうかを明示的に質問してください。
反復禁止ルール: 回答は、現在のセッション内で、名前またはパスで識別された同じプロジェクトに対して明示的に提供された場合にのみ再利用されます。別のプロジェクトに対して提供された回答は、たとえ一般的に見えても決して外挿されません。
CLAUDE.mdを埋めるために特定のデータが欠けており、質問したり実際のコードを読んだりしても判断できない場合は、保留としてマークしてください。発明しないでください。タイプに応じて何を質問または検査するかの例:
- 技術的: エントリポイント(質問する前に依存関係マニフェストまたはビルド設定ファイルで探す)、テスト/lintコマンド(マニフェストのスクリプトを読む)、スタイル規則(すでに存在する場合は実際のコードを検査する)、フォルダ構造(直接リストする)
- 非技術的: プロジェクトのフォルダ/ドキュメント構造(直接リストする)、フォーマット規則(シーン番号付け、バージョン命名規則 — 質問する)、作業のレビューまたは検証方法(質問する)
決定ルール
- 以前のCLAUDE.mdが存在する → 進め方を決定する前に、2つのケースを区別する:
- 実際のコードに対して検証されていない: ユーザーが手動で作成した、別の場所から継承した、または埋められていない穴(
[保留]マーク、未完成のプレースホルダー)がある場合。この場合、テンプレートフォルダで利用可能な移行ガイド(ある場合)を使用して、選択したテンプレートに移行し、ユーザー固有のコンテンツを保持するのが適切です。 - 実際のリポジトリに対してすでに検証済み(以前のClaude Codeセッションによる、または含まれている詳細がコードを読まずに書かれるには特異すぎる場合): ファイルには、コードから直接抽出された技術的な詳細が含まれています(実際のファイルで観察された規則、具体的なgitフック、どのジェネリックテンプレートにも文書化されていないプロジェクトのシステムやツール、推測ではなく確認されたテスト/lintコマンド)。ファイルシステムにアクセスできるため、これを実際に確認できます: CLAUDE.mdの内容を実際のコードと比較します(言及されているファイルやコマンドは存在しますか?記述されている規則はコードにあるものと一致しますか?)。実際の例: プロジェクト固有の「ナレッジグラフ」システムがCLAUDE.mdに文書化されており、それを再構築するための正確なコマンドと、グラフが壊れるため使用してはいけないコマンドに関する警告が含まれているプロジェクト。この種の詳細は、マージで失われると回復不可能です。なぜなら、どのジェネリックテンプレートもそれを考慮していないからです。この場合、新しいテンプレートの構造を強制しないでください。 そのコンテンツはテンプレートよりも価値があります。なぜなら、それはプロジェクトの現実に対して検証されており、テンプレートはそうではないからです。何かに触れる前にユーザーに質問してください: 選択したテンプレートにマージすると何を失い、何を得るかを示し、ユーザーが選択的マージを望むか、そのままにしておくかを決定させてください。
- 以前のCLAUDE.mdが2つのケースのどちらに該当するか疑問がある場合は、想定せずにユーザーに質問してください。
- 実際のコードに対して検証されていない: ユーザーが手動で作成した、別の場所から継承した、または埋められていない穴(
- 以前のCLAUDE.mdが存在しない → 選択したベーステンプレートを使用してゼロから作成します。
- 新しく小さなプロジェクトで、以前のCLAUDE.mdがなく、かつ一時的/実験的なメンテナンス → 利用可能な最もコンパクトなテンプレートを優先し、追加で質問する必要はありません。
- 新しく小さなプロジェクトだが、数週間/数ヶ月のメンテナンスが予定されている → これは相反するシグナルのケースです(「新しい」はコンパクトを促し、「長期メンテナンス」はより完全なテンプレートを促します)。どちらか一方に黙って解決しないでください。推奨する前に、この特定のプロジェクトでどちらがより重要かをユーザーに明示的に質問してください。
- 数週間/数ヶ月のメンテナンス → テンプレートフォルダに開発履歴テンプレートが存在する場合は、それを追加します(履歴は非技術的プロジェクトにも同様に適用されます)。
- 一時的/実験的なメンテナンス → 開発履歴を提案しないでください。
- プラットフォーム/インフラストラクチャ固有のドキュメント(Cloudflare、Convex、データベース、認証など) → 技術的プロジェクトにのみ適用されます。これは全か無かの二択の決定ではありません。これらのドキュメントは通常、同じプラットフォームの複数の異なるサービスをカバーしています。決定する前に、プロジェクトが実際に使用している具体的なサービスを特定してください。ファイルシステムにアクセスできるため、これは質問するだけでなく、依存関係マニフェストまたは実際の設定ファイル(例:
wrangler.toml、コードで使用されている環境変数)を読むことで確認できます。- プロジェクトがドキュメントでカバーされているものを何も使用していない場合 → ドキュメントから何もコピーせず、CLAUDE.md内に該当するものを3〜6行の手動サマリーとして記述します。
- プロジェクトがドキュメントの1つまたは複数の実際のサービスを使用しているが、ドキュメントがプロジェクトで使用されているよりも多くのサービスをカバーしている場合 → ファイル全体をコピーしないでください。プロジェクトが実際に使用しているサービスに対応するセクションのみを抽出してコピーし、使用されていないサービスのセクションは除外します。ユーザーに明示的に伝えてください: どのセクションが含まれ、どのセクションが除外されたか、およびその理由。
- プロジェクトがドキュメントでカバーされているすべてまたはほぼすべてのサービスを実際に使用している場合にのみ、ドキュメント全体をトリミングせずにコピーします。
- ユーザーが2つのベーステンプレートの間で迷っている場合は、推奨する前に、まずプロジェクトのサイズと長期的なメンテナンスについて質問します(上記の必須質問ですでにカバーされています)。
非技術的プロジェクトへのベーステンプレートの適応
プロジェクトがコードでない場合、ソフトウェア開発向けに設計されたセクションを文字通りコピーしないでください。語彙ではなくロジックを維持して適応させてください:
| 元の技術的セクション | 非技術的への適応 |
|---|---|
| テクノロジースタック | 使用するツールと作業フォーマット |
| ビルド、テスト、検証 | 何かが正しいことを確認する方法(連続性のレビュー、音読、共同編集者によるチェック、制作チェックリスト) |
| コードスタイルと規則 | ドキュメントの規則(特定の構造、明確な言語、特定のツールで使用する特定のフォーマット) |
| デプロイメント | 公開または配布の方法(出版、アップロード、共有) |
必須の質問: 何をするか
特定のプロジェクトに対してCLAUDE.mdを作成または更新する場合、右上の領域に次の内容を含めます(以前の会話やコードの検査ですでに収集されていない場合):
プロジェクトの識別とタイプ
- プロジェクト名
- タイプ(技術的 / 非技術的 / 混合)
- このプロジェクトは何をしますか?(このプロジェクトをまだ知らない人への1〜2文の説明。コードの場合は、READMEまたはpackage.jsonのdescriptionフィールドから取得できます。非技術的または混合の場合は、ユーザーに説明を求めます)
環境
- 技術的: OS、シェル、パッケージマネージャー(これらは
uname、$SHELLなど、実際のコマンドから確認できます。推測しないでください) - 非技術的: 使用するコンピュータとオペレーティングシステム(ドキュメントが単一のデバイス用か、複数のマシン間で共有するか、共同作業用かを決定するのに重要)
- 混合: 両方。OS/シェルは技術的コンポーネントにとって重要であり、使用するコンピュータは非技術的コンポーネントにとって重要です。
プロジェクトのガバナンスとメンテナンス
- メンテナンスの見通し(数週間/数ヶ月 / 一時的/実験的)
- 共同作業者 = いいえ(単独プロジェクト)/ はい(チーム — 共同作業者がCLAUDE.mdも使用するかどうか、また、それらがコードの読み書きをするかどうかを指定するようユーザーに依頼)
- 外部のソース/参考文献(これはコードまたは従属するテキストの出典を意味します)
プロジェクト固有(タイプによって異なる)
- 技術的: テクノロジースタック(すでに推測または確認されている場合を除く、フレームワーク/言語)
- 非技術的: ツールとフォーマット(ドキュメント作成ツール、フォーマット規則、バージョン管理システム)
- 混合: テクノロジースタック + ツールとフォーマット + テクノロジーとコンテンツの間の具体的な相互作用(ツールがどのようにコンテンツを整理するか、コードの変更がどのようにドキュメントの構造やワークフローに影響を与えるか) — これらはコードの検査から部分的に推測できますが、コンテンツ整理の部分は常にユーザーに確認する必要があります
ファイルの書き込み
CLAUDE.mdファイルを書き込むときは、特定の命名構造を使用します: ファイルプロジェクトのルートにあるCLAUDE.mdに加えて、タイプ固有の拡張機能の場合はCLAUDE-{EXT}.mdを使用します。以下は例です:
CLAUDE.md(メインテンプレート)CLAUDE-HISTORY.md(開発/制作履歴)CLAUDE-CLOUDFLARE.md(Cloudflare固有)CLAUDE-CONVEX.md(Convex固有)CLAUDE-{PLATFORM}.md(その他のプラットフォーム固有のドキュメント)
技術的プロジェクトの場合、移行ガイドを使用する場合、出力構造は次のようになります:
CLAUDE.md: 移行されたベーステンプレートCLAUDE-HISTORY.md(該当する場合): 履歴拡張CLAUDE-{PLATFORM}.md(該当する場合): プラットフォーム固有のファイル
非技術的プロジェクトの場合、移行ガイドを使用する場合も同様ですが、タイトルと説明はプロジェクトの性質に合わせて調整されます。
エラーハンドリングと制限事項
- テンプレートフォルダにアクセスできない、読み取り専用、または空の場合: ユーザーに別のパスを尋ねるか、テンプレートなしで続行してもよいかどうかを尋ねてください。空のフォルダやアクセスできないフォルダの処理を試みないでください。
- ターゲットプロジェクトフォルダが存在しないかアクセスできない場合: ユーザーに別のパスを尋ねるか、最初にフォルダを作成する必要があるかどうかを尋ねてください。
- 必須データが欠落しており、質問やコードの検査で取得できない場合: 発明しないでください。CLAUDE.md内に
[保留]マークを残して、足りないものをユーザーに知らせてください。 - スキルは、テンプレートで明示的にカバーされていないプロジェクトのタイプを推測または発明してはなりません。
- 指定されていない場合、デフォルトのテンプレートフォルダパスを想定しないでください。