Windsurf 波乗りガイド: Wave 10
はじめに: なぜ、Windsurf を選ぶのか
2025 年 6 月、生成 AI によるコーディング支援ツールはまさに戦国時代。多くの開発者が数々の LLM や IDE に注目する中、自分は個人開発のパートナーとして「Windsurf」を選び、愛用しています。なぜなら、Windsurf は単なるコード生成ツールではなく、開発者と「対話」し、同じ目線でプロジェクトを進める「AI flow」(AI とペアプロするように対話しながら開発する思想)を体現しているからです。
引用元:Windsurf Launch
と、かなり風呂敷を広げた謎の前振りで始まりましたが、この記事では、Windsurf が提唱する AI との新しい関係性に基づき、AI を単なる「作業者」ではなく「パートナー」として迎え入れ、開発を加速させるためのガイドラインを、私自身の Windsurf との接し方とともに、ポエム要素を交えてご紹介します。
Windsurf の真価: Wave10 が実現した「AI flow」の世界
Windsurf が提唱する「AI flow」とは、人間と AI が同じ目線で、まるでペアプログラミングのように開発を進めるという思想です。単にコードを生成させるだけでなく、開発プロセスそのものを共有し、対話しながら開発のゴールを目指します。
この思想を大きく前進させたのが、Wave 10 で登場した「Planning Mode」と「Windsurf Browser」ではないでしょうか。
「Planning Mode」と「Windsurf Browser」の登場で、計画(Plan)からターミナル操作、コード編集、そしてブラウザ(コンソール)での確認まで、開発の一連の流れが Windsurf という 1 つのプラットフォームに統合されました。人間と AI が同じ計画、同じツール、同じ画面を共有することで、開発のコンテキストが一致し、「今、何のために、何をしているのか」という認識を揃えることができるようになったと言えます。
Wave 10 により、Windsurfが目指す「AI flow」が真の意味で実現されたと感じています。
Windsurf と共同開発するためのガイドライン
AI との共同作業でしばしば課題となるのが「AI ドリフト」です。これは、対話を重ねるうちに AI の応答が当初の目的や文脈から少しずつズレていってしまう現象を指します。このドリフトを防ぎ、開発の主導権を人間が握り続けるために、私は Windsurf を利用する際に以下の手法で対応しています。
とはいえ Windsurf 自体、あまり細かなルールを与えなくてもよしなにまとめてくれる器量もあるので、最初は「Always answer in Japanese」くらいでも快適に使えると思います。公式ドキュメントでも、ベストプラクティスとして以下のように記載されています。
- ルールはシンプル、簡潔、かつ具体的にしてください。ルールが長すぎたり曖昧すぎると、Cascade が混乱する可能性があります。
- 一般的なルール (「適切なコードを書く」など) は Cascade のトレーニング データにすでに組み込まれているため、追加する必要はありません。
- 箇条書き、番号付きリスト、マークダウンなどを使ってルールをフォーマットしましょう。長い段落よりも、Cascade が理解しやすい形式です。
1: ルール (Rules) で開発哲学を教え込む
Windsurf のルール機能は、AI に対する「普遍的な指示書」です。ここに開発の基本方針やコーディング規約を定義しておくことで、AI の振る舞いに一貫性を持たせることができます。
ルールタイプ | 説明 | ファイル名 |
---|---|---|
グローバルルール | プロジェクトを横断する普遍的な原則 | global_rules.md |
プロジェクト固有ルール | そのプロジェクト特有の技術スタック、ディレクトリ構成、命名規則など | project_rules.md |
現行の多くのモデルは Next.js 15 や React 19、TailwindCSS v4 固有の実装をたいてい失敗するので、プロジェクト固有ルールではとくにその辺りを重点的に伝えるようにしています。
なお、Rules はそれぞれ 12000 文字程度までのため、あまり長文のルールは避けた方が良いでしょう。
参考までに、私が現在利用しているグローバルルール(global_rules.md
)を紹介します。このように開発の哲学を言語化しておくことで、AI との対話が格段にスムーズになります。(グローバルルールは Manus に AI エディター向けガイドラインとして作成してもらい、日々少しずつ更新しながら活用しています)
global_rules.md
の簡単な紹介
- Core Principles: どのようなコードを「良いコード」とするかの基本方針です。シンプルさや可読性を最優先にしています。
- Workflow Standards: 開発プロセスにおけるルールです。変更を小さく保つこと(Atomic Changes)や、コミットメッセージの規律(Commit Discipline)を AI に意識させます。
- Code Quality Guarantees: DRY 原則やクリーンな設計など、具体的なコード品質に関する規約です。
- Security & Performance: セキュリティやパフォーマンスに関する考慮点を定義しています。
-
AI Communication Guidelines: AI 自身が応答する際のルールです。どのルールに基づいて判断したかを明記させる(Rule Application Tracking)ことで、思考プロセスが透明になります。
- Feature-Based Development Workflow: feature ブランチ開発のルールです。開発を小さなフィーチャー単位で行い、それぞれを独立してテストするという考え方を推奨しています。(Planning Mode 登場により大きく道を誤ることがなくなったためルールから削除しました)git worktree
を利用した並行開発は自分には使いこなせません…
2: メモリ (Memories) で短期記憶をコントロールする
Memories は AI の短期記憶のようなものです。対話の中で得られた重要なコンテキストを記憶させることができますが、情報が古くなったり、不要な情報が溜まったりすることもあります。そのため、定期的に内容を見直し、メンテナンスすることが、AI の精度を保つ上で重要になります。
3: プランニングモード (Planning Mode) で長期的な一貫性を保つ
AI との対話が徐々にズレてしまう「AI ドリフト」には、Planning Mode が頼りになります。まずゴールを伝えると、AI が到達までのルート(プラン)を提示し共有します。途中で方針を変えてもプランを即座に更新でき、必要があればユーザーが自分で手直しすることも可能です。これにより、会話に振り回されることなく、一貫したアウトプットを維持できます。
現在は無料で利用できるため、ある程度の大きさのタスクであれば Planning Mode を積極的に利用しています。正式版になった時の料金体系次第では使い所を考える必要はあるのかもれません。
大人の事情で別途 API 利用料がかかりますが、Claude Sonnet 4 を利用するとかなりの自走力を見せてくれます。
@
メンションで曖昧さをなくす
4: 「この関数を修正して」「あのファイルに追記して」といった曖昧な指示は、AI の誤解を招く原因になります。@
メンションを使って修正対象のファイルやコードブロックを具体的に指定することで、指示の曖昧さを排除し、意図した通りの操作を AI に実行させることができます。
さらに Windsurf Browser の登場でターミナル、エディターだけでなくブラウザ(コンソールも)からも要素を直接コンテキストとして渡すことができるようになっています。
Windsurf Browser を使った開発の一例:
- Planning Mode で「ユーザー管理画面の作成」を計画
-
@
メンションで既存のコンポーネントを参照 - GPT-4.1 で基本実装、Claude Sonnet 4 でリファクタリング
- Windsurf Browser でリアルタイム確認・修正依頼
- Plan のゴールを達成するまで 2-4 を繰り返す
5: 用途に合わせた適切なモデルの選択
Cascade で利用する LLM モデルは、Pro プランで利用できるクレジットとのバランスを見ながら、次のように使い分けています。
モデル | 利用頻度 | 指示 | 粒度 | コスト | 使い方 |
---|---|---|---|---|---|
GPT-4.1 | 大 | 明確 | 小 | 低 | 小さなタスクの大半はこれで、指示通りのことしかしないのでコードにノイズが少ない、ただし曖昧な指示をするとできました!といって何もできてないこと多し。 |
o3 | 小 | 曖昧 | 小〜中 | 中 | 開発のアイデア出しや、設計書作成など。次の一手を考えるときの良き相談相手。指示の行間をしっかり読んでくれる。 |
SWE-1 | 中 | 明確 | 小 | なし | デザインに強いイメージ、良いデザインを上げてくれること多し。HTML や CSS に向いている気がする。 |
Gemini 2.5 Pro | 小 | 少々曖昧 | 中 | 中 | ドキュメント作成や、設計書作成などに強い。コードを書かせると指示の行間を読みすぎ。 |
Claude Sonnet 4 | 中 | 少々曖昧 | 小〜中 | 高 | 大人の事情で別途 API 利用料がかかるけど、やはり一番頼り甲斐のあるやつ。少々過剰な対応あり。 |
Claude Sonnet 4(Thinking) | 小 | 少々曖昧 | 中 | 高 | 大人の事情で別途 API 利用料がかかるけど、最強かもしれない。少々過剰な対応あり。 |
現時点ではコストパフォーマンスを考えると GPT-4.1 が一番の選択肢で、ここぞというときには自前の /ultrathink
Workflows を使って対応しています。Sequential Thinking MCP・MECE フレームワーク・ユーザー参加型分岐を活用し、ユーザー指示の背景・意図・最適な解決策を多角的に深掘りさせるワークフローで、コストの低いモデルでも推論させることで比較的高い品質を維持できている気がします。(トークンはその分消費します)
Windsurf Pro プラン範囲内で Claude Sonnet 4 使いたい 🥹
6: Workflows の活用
Workflows を使えば、複雑な指示を多角的に掘り下げられます。
プロジェクトごとに最適な Workflows を用意したいので、私はいつも Cascade に作成を依頼しています。
プロジェクトによって内容は異なりますが、私は以下のような Workflows を作成して利用しています。
-
/code-lint-formatting
: Lint とコードフォーマット -
/code-review
: コードレビュー -
/run-tests-and-fix
: テスト実行と修正 -
/ultrathink
: オマージュコマンド、複雑な指示を多角的に深掘りさせる
7: MCP の活用
MCP もプロジェクトごとに使い分けていますが、最近は用途を絞って活用しています。私がよく使う MCP は次のとおりです。
MCP | 用途 |
---|---|
context7 | 開発時の最新の公式ドキュメントを参照するために活用 |
sequential thinking | 複雑な指示を多角的に深掘りさせるためのultrathink ワークフロー用 |
supabase | supabase に関する操作、ドキュメント参照など |
cloudflare | cloudflare に関する操作、ドキュメント参照など |
8: コードができ上がったら
しっかりレビューしましょう!
9: よくある課題と対処法
- AI ドリフトが起き始めた時: Planning Mode に戻って計画を再確認
-
モデルが期待通りに動作しない時: rules の見直しと
@
メンションの活用 - 公式ドキュメントと実装との乖離が見られる時: Gemini 2.5 Pro と context7 MCP の組み合わせを活用
- ガンガンいこうぜな時: Claude Sonnet 4(Thinking)の活用 💸
-
モデルが混乱気味の時: Workflows(
/ultrathink
)の活用 -
いのちだいじにな時(クレジット温存): SWE-1 と Workflows(
/ultrathink
)の組み合わせを活用
10: Windsurf に興味を持ったら
Windsurf のインストール方法や主な機能は、開発チームが公開する動画でわかりやすく解説されています。ぜひチェックしてみてください。
AI 時代の開発者に求められるマインドセット
VibeCoding が当たり前になった今、「YOLO(You Only Live Once)」 つまり AI が書いたコードを深く見直さず、「とりあえず動くから OK」で済ませてしまうのは開発者として楽しいものでしょうか。
私たちが届けたいのは 「動けば良い」 を越えた価値。AI は頼もしい相棒ですが、コードの品質やセキュリティ、パフォーマンスに最後まで責任を持つのはやはり私たち人間でありたいと考えています。
だからこそ、AI の提案は一度受け止めたうえで自分の目で確認する。権限は AI に預けても、最終的な責任までは手放さない。このバランス感覚が、これからの開発者に欠かせない力になっていくのではないかと感じています。
おわりに
Windsurf はコードを量産する道具というより、アイデアを磨き合うパートナーのような存在です。AI と並走しながら、一緒に方向を見定めて進む。そのプロセスを支えるための工夫と思想が、このツールには詰まっています。
この記事が、Windsurf や他の生成 AI ともっと気楽に、そして楽しく付き合うヒントになればうれしいです。
Surf's up🏄♂️🤙
Discussion