こんにちは。ひさふるです。
みなさんClaude Codeは使っていますか?(最近はGemini CLIが出たので、そちらを使っている方も多いかもしれませんね)
私は専ら個人開発でClaude Codeに頼りきりになってしまっており、毎日のようにお世話になっています。
そんなClaude Codeですが、自分のプロジェクト内で上手く使えるかどうかはCLAUDE.md
にかかっていると言っても過言ではありません。
ですが、このCLAUDE.md
、自由に何でも書ける反面、何を書いたら良いかいつも迷ってしまうんですよね。
そんなとき思いついたのが、アジャイル開発ではよく使われる、プロジェクトの認識を揃える手法であるインセプションデッキを使ってCLAUDE.mdを生成するという方法でした!
今回はインセプションデッキを使ってCLAUDE.mdを効率的に記述していきます!
はじめに
まずはじめに、今回の話題の中心となる、CLAUDE.mdとインセプションデッキについてご説明します!
CLAUDE.mdとは?
コーディングエージェントであるClaude Codeにおいて、異なるセッション間でも共有されるメモリであると説明されています。
誤解を恐れずに言えばシステムプロンプト
と呼ばれるものに近く、毎回自動的に読み込まれ、プロジェクト全体の背景やコーディングの方針、守ってほしいルールなどをClaude Codeに伝えてくれる、Markdown形式のファイルです。
このファイルをどう記述するかによりClaude Codeの動作が大幅に変わります。
上手く使えれば特定のソフトウェア設計手法に則るなどして秩序だった開発をさせることができる一方で、全く設定をしなかったりテキトーな設定のままだとClaude Codeが真価を発揮できなくなってしまいます。
参考:
インセプションデッキとは?
アジャイルサムライという本で紹介された、アジャイル開発でよく使われるプロジェクトの初期にチームメンバーが認識を合わせるためのフレームワークです。
以下10個の項目について考えることで、自然とプロジェクトに関する重要な認識が定まり、その後の開発がスムーズになります。
Whyに関する項目
項目名 | 概要 |
---|---|
我々はなぜここにいるのか? | なぜこのプロジェクトが必要で、どういった課題を解決するためのものなのかを明確にする。 |
エレベーターピッチ | 30秒でこのプロジェクトの概要を説明できるようにする。 |
パッケージデザイン | イラストやキャッチコピーを使って、実際にプロダクトが顧客に届いたときのイメージをしやすくする。 |
やらないことリスト | やること・やらないこと・あとできめることを明確にし、プロジェクトが重要なことだけに集中できるようにする。 |
「ご近所さん」を探せ | ステークホルダーを洗い出し、チーム内外で適切なコミュニケーションを図れるようにする。 |
Howに関する項目
項目名 | 概要 |
---|---|
解決案を描く | ざっくりとした技術スタックやアーキテクチャを決定する。 |
夜も眠れなくなるような問題 | プロジェクトで発生するリスクを洗い出しておき、発生時に対処をしやすくする。 |
期間を見極める | プロジェクトの実施期間や、いつまでに何を達成するのか時期に関わる目標を立てる。 |
トレードオフスライダー | スコープ、予算、時間、品質に対して、1から4の優先度を割り振ることで、何を優先し何を諦めるのかというトレードオフの関係を整理する。 |
何がどれだけ必要なのか | プロジェクトに必要なものを整理する。ここでは、メンバーのスキルセットなどの知識・技術面から、コンピュータリソースなどの資金面まで含まれる。 |
参考:
インセプションデッキでCLAUDE.mdを作る!?
ここで私が思ったのは、初期段階でプロジェクトに関する情報を整理し、メンバーと認識を合わせるために使われるインセプションデッキはAI駆動開発にも流用できるのではないか?ということです。
Claude Codeのようなコーディングエージェントは人間と違ってプロジェクトの背景や今までやったことを覚えてくれているわけではありません。
そのため、CLAUDE.mdのような形で毎回必要な情報を与えてあげる必要があります。
一方で、開発者である私達も、最初からプロジェクトに関する情報を明確に整理できているわけではないので、まっさらな状態からCLAUDE.mdを書けと言われてもなかなか大変です。
そのため、インセプションデッキに則ってプロジェクトの概要を整理することで、簡単にCLAUDE.mdを作成することができるのでは?と思った次第です。
次は、実際にインセプションデッキをもとにCLAUDE.mdを作ってみます
既存のインセプションデッキの方法でやってみる
まずは、本来のインセプションデッキの方法に基づいてCLAUDE.mdをつくってみます。
まずはやってみる
とはいえ、自分でインセプションデッキをつくって、そこからCLAUDE.mdを生成するのはめんどくさいので...
まずはPoCとして、Claudeでインセプションデッキ⇒CLAUDE.md生成器を作ってみました。
やっていることは単純で、↓こんな感じでWeb上に実装されたインセプションデッキのテンプレートに沿って項目を埋めていくだけで...
それをもとにCLAUDE.mdを作成してくれるというアプリです!(とは言っても、インセプションデッキに書かれたものをテンプレートに埋め込むだけですが)
このアプリを使い、適当なサンプルデータを入力しCLAUDE.mdを出力した結果がこちらになります。
作成されたCLAUDE.md (長いので折りたたみ)
ScrumTodo
プロジェクト概要
【最重要】 開発チームがスクラムの価値と原則を日々の作業で実践し、チームの生産性と透明性を向上させるため
- 既存のTODOアプリでは、スプリント計画、デイリースクラム、レトロスペクティブなどのスクラム活動をサポートする機能が不足しているため
- チームメンバー全員がプロジェクトの進捗状況をリアルタイムで把握し、自己組織化されたチームとして機能するため
エレベーターピッチ
「スクラムフレームワークに沿った効率的なタスク管理と進捗の可視化を」したい「アジャイル開発を実践する開発チーム」向けの「ScrumTodo」というプロダクトは「プロジェクト管理Webアプリケーション」です。
これは「スプリント単位でのタスク管理、バーンダウンチャートの自動生成、チーム全体の作業状況の可視化」ができ、「Jira、Trello、Asana」とは違って「スクラムに特化したシンプルなUI、無料で全機能利用可能、日本語でのスクラム用語サポート」が備わっています。
主要機能
スクラムを、もっとシンプルに。チームの成長を加速するTODOアプリ
- スプリント単位でのバックログ管理とタスクの自動整理
- リアルタイムバーンダウンチャートとベロシティ追跡
- デイリースクラム用の進捗ダッシュボード表示
- プランニングポーカー機能によるストーリーポイント見積もり
- スプリントレトロスペクティブのテンプレート機能
スコープ
やること
- スクラムイベント(スプリント計画、デイリースクラム、レビュー、レトロ)のサポート
- バックログの優先順位管理機能
- チームメンバー間のリアルタイム同期
- 基本的なレポート機能(バーンダウン、ベロシティ)
やらないこと
- ガントチャート機能(スクラムには不要)
- 詳細な工数管理・勤怠管理機能
- 他のプロジェクト管理ツールとの連携
あとで決めること
- Slack/Teams連携機能
- AIによるタスク見積もり支援
- 複数チーム間での情報共有機能
- 有料プランの検討
ステークホルダー
- 開発チーム(5名:フロントエンド2名、バックエンド2名、スクラムマスター兼開発者1名)
- プロダクトオーナー(プロダクトの方向性決定、バックログ管理)
- 実際のスクラムチーム3チーム(パイロットユーザーとしてフィードバック提供)
- UXデザイナー(フリーランス、UI/UX設計担当)
- 社内インフラチーム(デプロイ環境の準備・保守)
- アジャイルコーチ(スクラムプロセスの妥当性確認)
技術的解決策
概要
シングルページアプリケーション(SPA)として構築し、リアルタイム性を重視したアーキテクチャを採用。WebSocketを使用してチームメンバー間の即時同期を実現。マイクロサービスアーキテクチャは採用せず、モノリシックな構成でシンプルさを保つ。
技術スタック
フロントエンド
- React 18 + TypeScript
- Redux Toolkit(状態管理)
- Material-UI(UIコンポーネント)
- Chart.js(グラフ描画)
バックエンド
- Node.js + Express
- Socket.io(リアルタイム通信)
データベース
- PostgreSQL
インフラ
- AWS EC2 + RDS
CI/CD
- GitHub Actions
監視・ログ
- CloudWatch
リスクと課題
- リアルタイム同期でデータ競合が発生し、タスクが消失する可能性
- 想定以上のチーム数が同時接続してパフォーマンスが劣化する
- スクラムに詳しくないユーザーが使い方を理解できず離脱する
- 既存ツール(特にJira)からの移行が進まない
- セキュリティ脆弱性により、他社のプロジェクト情報が漏洩する
- 主要開発者が退職してメンテナンスが困難になる
スケジュール
- 開始日: 2025-05-01
- 終了予定日: 2025-09-30
マイルストーン
- 2024年5月15日 - 基本機能のプロトタイプ完成(タスク管理、スプリント管理)
- 2024年6月30日 - アルファ版リリース(社内チームでの試用開始)
- 2024年8月15日 - ベータ版リリース(外部パイロットチームでの検証)
- 2024年9月30日 - 正式版リリース(一般公開)
プロジェクトの制約(トレードオフ)
- 期間: 4/5 (高優先)
- 予算: 2/5 (低優先)
- 機能: 3/5
- 品質: 4/5 (高優先)
必要なリソース
予算
800万円(人件費600万円、インフラ費用100万円、外注費50万円、その他50万円)
リソース・ツール
- GitHub Enterprise(ソースコード管理・CI/CD)
- AWS(本番環境・開発環境)
- Figma(デザイン作成・共有)
- Slack(チームコミュニケーション)
- Sentry(エラー監視)
- Jest + React Testing Library(テスト環境)
チーム構成
- プロダクトオーナー 1名(50%稼働)
- スクラムマスター 1名(開発も兼務、100%稼働)
- フロントエンドエンジニア 2名(100%稼働)
- バックエンドエンジニア 2名(100%稼働)
- UXデザイナー 1名(最初の2ヶ月は100%、その後20%)
- QAエンジニア 1名(最後の2ヶ月間、80%稼働)
このドキュメントはインセプションデッキをベースに作成されました。
インセプションデッキでCLAUDE.md作成完了...?
作成されたCLAUDE.mdの問題点を洗い出す
このままでは使えなくは無さそうなのですが、本来インセプションデッキは人と人との認識合わせに使われるものなので、Claude Codeに渡す前に少し改良を加えたいですね。
なので作成されたCLAUDE.mdを確認し、改良を加えたいと思います。そのために、まずは現在の何が問題かを洗い出します。
-
問題点:Claude Codeには不要な要素がある
インセプションデッキそのままでは、Claude Codeにとっては不要なものがありますよね。
例えば、
期間を見極める
などはその最たる例でしょうか。AIにとっては与えられたタスクを順にこなしていくだけで、期間を気にするのは(今はまだ)人間の仕事ですよね。また、
何がどれだけ必要なのか
も、人材やリソースの確保は人間の仕事であり、AIエージェントにはリソースが揃った状態でタスク実行の指示を行うべきです。よって、今回は以下のように変更を行いました。
項目名 変更点 期間を見極める 項目ごと削除 何がどれだけ必要なのか 項目ごと削除 -
そのままでは使いにくい要素がある
削除するほどでは無いけれど、そのままではClaude Codeにとって解釈が難しい情報もあります。
パッケージデザイン
は、(本当は画像も読み込んで欲しいところではありますが)、少なくともCLAUDE.mdには直接イラストを載せることは難しいでしょう。しかし、ここはキャッチコピー+アプリで使用するテーマカラーなどの情報を記載し、アプリの雰囲気を定義する場所であると解釈すれば、CLAUDE.mdにも意義のある要素となります。
他には、「ご近所さん」を探せに記述される関係者などはAIにとってはどうでも良い項目かもしれませんが、直接価値を届ける対象となるユーザーの情報はあったほうが良いでしょう。
それから、夜も眠れなくなるような問題内で、「競合が現れるかもしれない」なんてリスクをAIに伝えてもしょうがありません。しかし、実装上考慮する必要があるリスクはAIに伝えておきたいですよね。
このような観点で、今回は次のように項目を修正しました。
項目名 変更前 変更後 パッケージデザイン イラストやキャッチコピーを使って、実際にプロダクトが顧客に届いたときのイメージをしやすくする。 キャッチコピーとアプリのテーマカラー、アプリのロゴや名前に込めた思いを記述し、実装時のイメージをしやすくする。。 「ご近所さん」を探せ ステークホルダーを洗い出し、チーム内外で適切なコミュニケーションを図れるようにする。 ペルソナを設定することで商品のターゲットを明確にし、ユーザーのニーズに合ったアプリを作れるようにする。 夜も眠れなくなるような問題 プロジェクトで発生するリスクを洗い出しておき、発生時に対処をしやすくする。 (プロジェクト遂行という広い範囲ではなく)開発時に発生しうる問題に限って記述する。例えば、情報漏洩など実装が直接関係するリスクに焦点を当てる。
修正後の"インセプションデッキ for AI駆動開発"
上記の問題点に加え、更にAIにタスクを頼む際に必要だと思われるエッセンスを加え、最終的な"インセプションデッキ for AI駆動開発"はこのようになりました。
項目名 | 概要 |
---|---|
エレベーターピッチ | 30秒でこのプロジェクトの概要を説明できるようにし、簡潔にAIにアプリの概要を伝える。 |
我々はなぜここにいるのか? | なぜこのプロジェクトが必要で、どういった課題を解決するためのものなのかを明確にする。 |
パッケージデザイン | キャッチコピーやアプリのテーマカラーを決定し、実際にプロダクトが顧客に届いたときのイメージをしやすくする。また、アプリのロゴや名前に込めた思いを記述することで、全体のテーマの認識を合わせる。 |
やらないことリスト | やること・やらないこと・あとできめることを明確にし、プロジェクトが重要なことだけに集中できるようにする。AIに作成して欲しい、MVPとして必須の機能等を書き出す。 |
「ご近所さん」を探せ | ペルソナを設定することで商品のターゲットを明確にし、ユーザーのニーズに合ったアプリを作れるようにする。 |
解決案を描く | ざっくりとした技術スタックやアーキテクチャを決定する。 |
夜も眠れなくなるような問題 | 開発時に発生しうる問題に限って記述する。例えば、情報漏洩など実装が直接関係するリスクに焦点を当てる。 |
トレードオフスライダー | スコープ、予算、時間、品質に対して、1から4の優先度を割り振ることで、何を優先し何を諦めるのかというトレードオフの関係を整理する。 |
"インセプションデッキ for AI駆動開発"を試す
"インセプションデッキ for AI駆動開発"をもとに、さっそく改良版のCLAUDE.md生成器を作成してみました!
先程と同様に、インセプションデッキを入力するだけでCLAUDE.mdが出力されます。
サクッと作ったものなのでバグ等あるかもしれませんが、興味があればお試しください🙇
"インセプションデッキ for AI駆動開発"の画面と入力例
項目名 | 実装した画面と入力例 |
---|---|
エレベーターピッチ | ![]() |
我々はなぜここにいるのか? | ![]() |
パッケージデザイン | ![]() |
やらないことリスト | ![]() |
「ご近所さん」を探せ | ![]() |
解決案を描く | ![]() |
夜も眠れなくなるような問題 | ![]() |
トレードオフスライダー | ![]() |
最終出力 | ![]() |
最終的に出力されたCLAUDE.mdの内容
エレベーターピッチ
「お金の使い方を効率的に管理」したい「社会人」向けの「Agileお小遣い」というプロダクトは「Webサービス」です。
これは「バックログに欲しいものやお金の使い道を書き込むことで、お金の使い方に優先順位をつけ、毎月一定の支出(=ベロシティ)内で効率的にお金を使うこと」ができ、「今までのお金の管理サービス」とは違って「"自分にとって最も有意義なお金の使い方"を深く考えるための」が備わっています。このプロジェクトの存在価値
このプロジェクトの存在価値や、このプロジェクトで達成したい目標は以下の通りです。
【最重要】 限られた予算の中で、お金の価値を見直し最も有意義な使い方ができるようにする
- 1月に使えるお小遣い(=ベロシティ)を把握し、予算を超過しすぎないようにする
- 使ったお金に対して得られたものを見つめ直し、無駄遣いを減らす
パッケージデザイン
このプロジェクトのデザイン方針に関する情報を記載します。
アプリケーションを作成するときは、ここで定義されている情報に基づいて行ってください。
特に、アプリケーションのUIはテーマカラーをアクセントとして使用してください。キャッチコピー
アジャイルなお小遣い管理で、人生に本当の価値を
テーマカラー
#f0ac19
ロゴや名前に込められた意味
アジャイル開発+お小遣い管理というテーマがわかりやすいシンプルな名前にした
主要機能
以下に示す主要機能が常に維持されるようにしてください。
- バックログに"欲しいもの"や"使い道"を記載することで、お金の使い方を管理できる
- バックログという形式で優先順位をつけることで、本当に価値のあるものだけを購入でき衝動買いを減らせる
- 1ヶ月に使った金額を記録しておき、その平均をベロシティとすることで、直近の支出を管理できる
やること・やらないこと
このプロジェクトにおいてMVPとなる必須機能と、逆にこのプロジェクトでは実装しない項目について記載します。
プロジェクトの実装を進める場合は、"やること"に記載されている内容やそれに関連する内容にしてください。
"やらないこと"に記載されている内容は、ユーザーから特別な指示がない限り対応しないでください。やること(MVPの必須機能)
- プロダクトバックログに"欲しいもの"や"お金の使い道"を追加でき、見積もり(=かかる金額)と詳細を記載できること
- バックログの項目を並べ替えることで、お金の使い道に優先順位をつけられること
- 今スプリント(今月)に、購入するもの(お金の使い道)を追加できること
- 平均ベロシティ(月に使ったお金の平均)を確認できること。また、あらかじめ設定した一月に使えるお小遣いの金額と比較できること
やらないこと
- ログインやアカウント作成機能 (今回はPoCのため、概念実証ができれば良い)
- データの恒久的な保存(DB等は不要)
あとで決めること(将来の拡張機能)
- 銀行口座やクレジットカードとの連携
このターゲットに対して、価値を届けられるように実装を進めてください。
プレイスホルダーや入力例を生成する場合は、このペルソナを参考に作成してください。ペルソナ1: 田中太郎、26歳、エンジニア
課題・ニーズ
毎月、ついついお金を使いすぎてしまい、自分でもその内容を把握できていない。また、無駄遣いが多く本当に欲しいものを買えずにいる。利用シーン
毎月のお小遣いを管理するだけでなく、自分が本当に欲しいものを管理し見つめ直す。技術スタック・アーキテクチャ
実装を進める場合は、この技術スタックやアーキテクチャに基づいて行ってください。
概要
Reactで、フロントエンドのみのPoCを作成する。
技術スタック
フロントエンド
- React
- DaisyUI
開発時のリスク
以下に想定されるリスクや懸念点を記載します。
これらのリスクを回避するように、実装を進めるようにしてください。
- AI生成コードによって、ファイルが煩雑になってしまうかもしれない
プロジェクトの優先度(トレードオフ)
- 時間: 4/4(最優先)
- 予算: 3/4(中高優先)
- スコープ: 2/4(中低優先)
- 品質: 1/4(低優先)
CLAUDE.mdの管理について
ユーザーの指示と上記に記載されている内容で齟齬が生じる場合は、その旨をユーザーに伝えて、それでも実装を進めて良いか確認するようにしてください。
ユーザーの指示で上記の内容に変更が加えられる場合は、その都度CLAUDE.mdの内容を更新するようにしてください。
実際にCLAUDE.mdをもとにアプリを作ってみる
それでは、実際に作成したCLAUDE.mdを使ってみましょう!
まずはファイルを作成し、内容をコピペします。
次にClaude Codeを起動して、アプリケーションの作成を開始してください。
とだけ指示を与えます。
途中経過です。CLAUDE.mdの内容をもとに実施すべきタスクを書き出していますね。
最終的に、このようなアプリケーションが完成しました!
MVPとして指定した機能はほぼ実装されており、テーマカラーも指定したものが使われています。
ちょっと使ってみると少しバグはありましたが、最初のコマンドでReactの環境設定をしてここまで作ってくれれば申し分ありません。
実際の開発で使うにはまだまだかもしれませんが、インセプションデッキをもとにパッとデモを作るくらいであれば全然対応できそうでした。
インセプションデッキを利用することで、簡単にCLAUDE.mdができました!
考察・感想等
今回、インセプションデッキをもとにCLAUDE.mdを生成することで、心理的には比較的ラクにCLAUDE.mdの記述を進めることが出来ました。
正直、上手い人が直接書いたほうが生成されるアプリのクオリティは良いかもしれませんが、初心者でも簡単にCLAUDE.mdを書けるテンプレートを作れたという観点では、意味があったかなと思っています。
それはそれとして、CLAUDE.mdを使いこなすには更に詳細な実装方針を記述したほうが良いとされています(例えば毎回のテスト方針など)。
今後は、そのような要素も盛り込み、更に質の良いCLAUDE.mdを作れるようにしてみたいです。
おわりに
今回はインセプションデッキの知見をAI駆動開発に流用し、CLAUDE.mdを生成してみました。
個人的には、今後もAIの性能自体は向上していくと思うので、生成AIの実装力に対して不安はありません。
そのため、今後はどれだけ開発者が思い描いているアプリ像を正確に伝えられるかが課題になると思っています。
インセプションデッキは本来人と人とで認識を合わせるためのフレームワークですが、今後は人とAIとで認識を合わせるために使われるのではないか、そんな気がする今日この頃でした。
最後までお読みいただきありがとうございました!