💻

アプリ開発はコンテキストが9割

に公開

AIエージェントハッカソンで個人開発が勝利した理由

「人は見た目が9割」という有名な書籍がありますが、AI時代のアプリ開発においては「コンテキストが9割」だと確信しています。この記事では、その根拠を実体験とともにお伝えします。

「なぜ一人でチーム開発に勝てたのか?」

Zenn社とGoogle社がコラボ開催したAIエージェントハッカソンで、本来チーム開発が前提の競技において、私は一人で1次審査を突破しました(32/171チーム中選出)。171チームの中で上位32チームに選出された時、私が感じたのは「システムプロンプトの力」でした。

https://zenn.dev/fumi_mizu/articles/505cbd14678388

この記事を読むと解決できる問題:

  • AIツールを使っているのに開発効率が上がらない
  • 複雑なプロジェクトでAIとの協働が上手くいかない
  • チーム開発並みの成果を個人で出したい
  • システムプロンプトの具体的な活用方法が分からない

結論から言うと、アプリ開発の成功は「コンテキスト設計」が9割を占めています。

180時間の開発期間で企画から実装まで完遂できたのは、26個のシステムプロンプトによる体系的なコンテキスト設計があったからです。今回は、その核心となる考え方と実践方法を、包み隠さずお伝えします。


なぜ「コンテキスト」が開発の9割を決めるのか?

従来の開発で直面していた課題

多くの開発者が抱える共通の悩み、それは「AIツールを使っても期待した結果が得られない」ということです。

私自身も以前は、こんな経験を繰り返していました

  • ChatGPTに「Webアプリを作って」と投げても、想像していたものと全く違うコードが出てくる
  • 途中で指示を変更すると、AIが以前の文脈を忘れて一貫性のない提案をする
  • 複雑な要件を伝えようとすると、AIが重要な部分を見落としてしまう

これらの問題の根本原因は何だと思いますか?

答えは「コンテキスト(文脈)の不足」です。

コンテキストとは何か?

この記事で言う「コンテキスト」とは、AIに指示を与えるシステムプロンプトのことです。

人間同士のコミュニケーションでも、背景情報や前提条件が共有されていないと、誤解や認識のずれが生じますよね。AIとの協働でも、まったく同じことが起こります。

例えば、「ユーザー登録機能を作って」という指示だけでは

  • どんなフィールドが必要か?
  • バリデーションルールは?
  • セキュリティ要件は?
  • UIの方針は?

これらの「暗黙の前提」がAIには伝わりません。

ハッカソンで実証された「コンテキストの威力」

AIエージェントハッカソンでの私のプロジェクトを振り返ってみます。

【育児期間中の医療AIプロジェクト】

  • 技術スタック:Gemini-2.0 Flash(マルチモーダル処理)、Next.js 14+ + TypeScript、FastAPI + PostgreSQL
  • 開発期間:180時間(要件定義20時間、設計10時間、実装100時間、テスト50時間)
  • 成果:紙カルテ電子化システムで1件あたり$0.008という実用的コスト設計を達成

この開発で私が最も驚いたのは、普段なら企画から実装まで担当することは少ないのに、一人ですべてを完遂できたことでした。

その理由は明確です。26個のシステムプロンプトによって、AIが「プロジェクトの文脈」を完全に理解していたからです。


実践!効果的なコンテキスト設計の3ステップ

私がハッカソンで実際に使った手法を、3つのステップで解説します。

ステップ1:業務フローの中でAI協働ポイントを発見する

多くの人が犯す間違いは「自分の中だけで考えてしまう」ことです。(かくいう私もAIコーディング当初はそうでした………)

正しいアプローチ:

  1. まず自分で業務フローを書き出す
  2. AIにもレビューしてもらいながら協働ポイントを探す
  3. AIには厳しく質問してもらうことが重要

具体例で考えてみると、

【悪い例】
「開発工程でAIが手伝えそうなところはどこですか?」

【良い例】  
「私は現在、以下の開発フローで作業しています:
1. 要件ヒアリング → 2. 設計書作成 → 3. 実装 → 4. テスト

各工程について、以下の観点で厳しく質問してください
- 時間がかかりすぎている作業は何か?
- 属人化してしまっている判断は何か?
- 品質のばらつきが生じやすい箇所は?
- 見落としがちな重要ポイントは?」

このように、AIを「厳しいレビュアー」として活用することで、自分では気づかない改善点を発見できます。

ステップ2:対話型要件定義で真のニーズを発見する

ハッカソンで最も効果を発揮したのが「対話型要件定義のシステムプロンプト」でした。

なぜ対話型が重要なのか?

従来のやり方では、開発者が「こんなアプリが欲しい」と一方的に要件を決めてしまいます。しかし、本当に必要な機能や制約条件は、対話を通じてしか見えてきません。

私が実際に使ったプロンプトの核心部分をご紹介します:

# 認知科学ベース対話型要件定義システム

## あなたの役割
質問による気づき促進と理解深化を重視してください。
直接的な答えの提供ではなく、私が自分で真のニーズを発見できるよう導いてください。

## 絶対禁止事項  
- 一発で要件定義書を作成することは禁止
- 直接的な答えの提供は禁止(気づきを促進する質問のみ)
- AIが要件を決定することは禁止(私の判断を最優先)

## 対話の進め方
「まず、現在○○はどのような方法で行われているのか、一日の流れを教えてください。」

この質問から始めて、私の回答に基づいて動的に次の質問を作成してください。

このプロンプトを使うことで、AIは「コンサルタント」として振る舞い、私自身が気づいていなかった要件を発見できました。

具体的な効果:

  • 要件理解精度が22%向上(101段階精密評価)
  • 本質的な制約条件を漏れなく明確化
  • 実装前に仕様の矛盾を発見・解決

実際にこれらに関する論文を執筆して人工知能学会に投稿しました。

ステップ3:チェックリスト機能で品質担保

AIが暴走したり、重要な工程を飛ばしたりするのを防ぐため、必ずチェックリスト機能を組み込みました。

## 重要:各作業でのチェックリスト作成

毎回の作業で以下を実行してください:
1. 作業開始前にチェックリストを作成
2. 各ステップ完了後に確認
3. 次の工程に進む前に全項目完了を確認

【例:データベース設計時のチェックリスト】
□ 必要なテーブルがすべて特定されているか?
□ 外部キー制約が適切に設定されているか?  
□ パフォーマンス要件を満たすインデックスが設計されているか?
□ セキュリティ要件が反映されているか?

この仕組みにより、180時間の長期開発でも品質を保ちながら進められました。


暴走防止と効率化のための2つの重要テクニック

テクニック1:計画と実装の分離

AIの暴走を防ぐために、私は以下のショートカットキーをCursorに設定しました

  • /plan:計画・設計専用モード
  • /conduct:実装専用モード

なぜ分離が重要なのか?

AIは「考えながら実装する」と、しばしば当初の方針から逸脱してしまいます。計画フェーズで十分に検討し、実装フェーズでは計画に沿って機械的に進めることで、一貫性を保てます。

詳細な設定方法はこちら:
Cursorの/planと/conductショートカット設定ガイド

テクニック2:認知科学的な情報開示

実は、AIも人間と同様に「認知負荷」の制限があります。

問題:

  • システムプロンプトが膨大になると、途中の指示を無視する傾向
  • 研究結果でも「システムプロンプトの途中は無視する傾向」が報告されている

解決策:

## 認知負荷管理の原則

1. 一度に扱う概念は最大7つまで(7±2法則)
2. 現在位置を明示:「今、○○について話しています」
3. 理解度確認:「ここまでで分からない部分はありますか?」
4. 段階的な情報開示:必要な情報を必要な時に提供

この原則により、複雑なプロジェクトでもAIが迷子にならずに済みました。


明日から始められる実践的アプローチ

「理論は分かったけど、具体的にどうやって始めればいい?」

そんなあなたのために、段階的な実践方法をお伝えします。

レベル1:AIを「上司・エキスパート」として活用する

最もシンプルで効果的な始め方がこれです。

# 基本のシステムプロンプト

あなたは[業界名]分野の経験豊富なエキスパートです。
私は[現在の立場・経験レベル]で、[達成したい目標]を目指しています。

以下のスタンスで私をサポートしてください:
- 厳しいが的確なアドバイスを提供
- 私が見落としがちなリスクを指摘  
- 質問を通じて私の真の課題を明らかにする
- 具体的で実行可能な提案をする

まず、私の現状について詳しく質問してください。

実際の使用例:

あなたはWebアプリ開発の経験豊富なテックリードです。
私はフロントエンド2年目で、初めてフルスタック開発に挑戦しようと思っています。

まず、私の技術レベルと開発予定について詳しく質問してください。

この方法なら、特別な知識がなくても今日から実践できます。

レベル2:業務プロセスの分析と最適化

慣れてきたら、業務プロセス全体をAIと一緒に見直してみることが大事です。

手順:

  1. 現在の作業フローを書き出す
  2. AIに「時間泥棒」を見つけてもらう
  3. AI協働ポイントを特定する
  4. カスタムプロンプトを作成する

質問例:
「私の開発フローを見て、最も時間がかかりすぎている工程はどれですか?また、その工程でAIが補助できる具体的なタスクを3つ提案してください。」

レベル3:プロジェクト専用プロンプトの構築

本格的にシステムプロンプトを活用したい方は、プロジェクトごとにカスタマイズしましょう。

構成要素:

  1. プロジェクトの背景・目的
  2. 技術制約・ビジネス制約
  3. 品質基準・優先順位
  4. チェックリスト
  5. コミュニケーションルール

私のハッカソンでは、26個のプロンプトをPhase別に整理しました:

  • Phase 0: 基盤設定(3プロセス)
  • Phase 1: 課題理解(3プロセス)
  • Phase 2: 解決策探索(4プロセス)
  • Phase 3: 設計評価(4プロセス)
  • Phase 4-7: 実装〜保守(12プロセス)

26個のプロンプト完全版はこちら:
cursor_rules:26個の開発プロセスプロンプト完全解説
実際にハッカソンで使用した全プロンプトを体系的に整理(14,800円)


システムプロンプト設計で避けるべき3つの落とし穴

私の経験から、特に注意すべきポイントをお伝えします。

落とし穴1:「完璧」を目指しすぎる

NG例:
最初から完璧なプロンプトを作ろうとして、何時間も悩む

推奨アプローチ:

  • 80点のプロンプトで実際に作業を始める
  • 使いながら改善していく
  • 「いらないもの」は後で削る

実際、私も最初は不要な指示が混入していました。実装を進めながら「前後の作業と重複する部分」や「その段階で必要ないもの」を削っていきました。

落とし穴2:AIに丸投げする

NG例:
「全部AIに任せれば楽になる」という期待

正しい考え方:

  • AIは「優秀なパートナー」として活用
  • 重要な判断は必ず人間が行う
  • AIには質問してもらい、自分で思考する

私のプロンプトでは「AIが要件を決定することは禁止」と明記していました。これにより、AIは提案役に徹し、最終判断は私が行う仕組みを作りました。

落とし穴3:コンテキストの一方通行

NG例:
プロンプトを設定したら「完了」と考える

継続的改善のポイント:

  • 定期的にプロンプトの効果を検証
  • AIからのフィードバックも収集
  • プロジェクトの進展に合わせて調整

数字で見る「コンテキスト設計」の効果

私のハッカソンでの実績を数字で振り返ってみましょう。

開発効率の向上:

  • 要件定義:20時間(従来なら40時間程度)
  • 設計:10時間(従来なら30時間程度)
  • 実装:100時間(従来なら200時間程度)
  • テスト:50時間(従来なら80時間程度)

品質の向上:

  • エラー解決時間:指数関数的短縮
  • 要件理解精度:+22%向上
  • 1件あたり$0.008という実用的コスト設計を実現

最も重要な成果:
171チーム中32チームに選出され、本来チーム開発が前提の競技で個人開発が勝利

これらの成果は、決して「AIが優秀だから」ではありません。適切なコンテキスト設計により、AIとの協働を最適化できたからです。


まとめ:今すぐ実践できる3つのアクション

この記事でお伝えした内容を整理すると

核心となる考え方:

  • アプリ開発の成功はコンテキスト設計が9割
  • AIは「優秀なパートナー」として活用する
  • 対話を通じて真のニーズを発見する

実践のポイント:

  • 計画と実装を分離して暴走を防ぐ
  • チェックリストで品質を担保する
  • 認知科学的な情報開示で理解を促進する

【今すぐできる3つのアクション】

アクション1:基本プロンプトを試す(今日から)

あなたは私の業務分野のエキスパートです。
私の現状について厳しく質問し、AIと協働できるポイントを一緒に見つけてください。

アクション2:業務フロー分析(今週中)

  • 現在の作業フローを書き出す
  • AIに「時間泥棒」を指摘してもらう
  • 1つの工程でカスタムプロンプトを試す

アクション3:小さなプロジェクトで実践(今月中)

  • 個人的な小さなプロジェクトを選ぶ
  • 対話型要件定義を試す
  • 計画と実装を分離して進める

あなたも「コンテキスト設計」の力で、AI時代の開発効率を体験してみませんか?

最初は小さな一歩から始めて構いません。大切なのは「AIとの協働」を通じて、あなた自身の開発スキルが向上することです。

私がハッカソンで実感した「一人でもチーム開発並みの成果を出せる」感動を、ぜひあなたも味わってください。

次に読むべき記事:

本格的なシステムプロンプト活用を始めたい方へ:
この記事で紹介した26個のプロンプトの完全版(Phase別体系化、カスタマイズガイド、実践例付き)は、こちらのnoteで詳細に解説しています。ハッカソンで実証された実践的な内容をそのままお届けします。

質問やお悩みがあれば:
この記事で紹介した手法について、分からない点や実践で困ったことがあれば、お気軽にコメントでお聞かせください。みなさんのAI協働体験をより良いものにするために、一緒に改善していきましょう!

Discussion