なぜ、AIはあなたのチームの「暗黙の了解」を無視するのか?
開発の現場において、AIアシスタントは今や「新人以上の戦力」です。しかし、Windsurfのような強力なAIエディタを使っていると、ふとこう感じたことはないでしょうか。「なぜ、せっかく決めた命名規則を無視するのか?」「なぜ、あえて非推奨のライブラリを使ってくるのか?」
結論から言えば、それはAIが悪いのではなく、あなたのプロジェクトの「憲法」をAIが読んでいないからです。
AIは広大なインターネットの知識を持っていますが、あなたのプロジェクト特有の「魂(コンテキスト)」までは推測できません。Windsurfの真価は、単にコードを書かせることではなく、AIをあなたのチームの規約に忠実な「熟練のペアプログラマー」に仕立て上げることにあります。
今回は、Windsurfを最大限に活用し、コーディング規約をAIに強制させるための「戦略的コンテキスト定義」について解説します。
—
ステップ1:Windsurfに「何をすべきか」ではなく「何をすべきでないか」を教える
多くの開発者が陥る罠は、ガイドラインを長文のテキストとしてダラダラと書いてしまうことです。AIは「長すぎる指示」を忘れます。必要なのは、構造化された「ルールセット」です。
プロジェクトのルートディレクトリ直下に `.windsurf/rules.md` というファイルを作成してください。これがAIにとっての「憲法」になります。
`.windsurf/rules.md` の設計思想
AIが迷った時に必ず参照する「辞書」として定義します。
プロジェクトコーディング憲法
1. 命名規則(最優先事項)
- コンポーネント名は必ず PascalCase とする。
- 関数名は必ず camelCase を使用し、動詞から始めること(例: fetchData)。
- データベースのテーブル名は snake_case、かつ単数形とする。
2. アーキテクチャの制約
- `src/components/ui` 配下には、ビジネスロジックを一切含めてはならない。
- 外部APIリクエストは必ず `src/services/api.ts` を経由すること。
3. 禁止事項
- `any` 型の使用は禁止。必ずインターフェースを定義すること。
- `console.log` をコミットに含めることは厳禁。デバッグには `logger.ts` を使用せよ。
なぜこれが効くのか?
Windsurfはプロジェクトを開いた際、ルートにある設定ファイルやルールファイルを優先的に読み込み、LLMのプロンプトにコンテキストとして注入します。このファイルが整っているだけで、AIがコードを生成する際の「選択肢」が劇的に絞られ、一貫性が担保されます。
—
ステップ2:AIを導く「構造化コメント」の魔法
ルールを定義しただけでは不十分な場合があります。特定のファイルやディレクトリに「AIへの具体的な指示」を埋め込む手法を紹介します。
例えば、`src/services/` ディレクトリ配下に `.ai-context.md` を置きます。
AIアシストへの指示: APIサービス層
このディレクトリ内のコードを生成する際は、以下のステップを踏むこと。
1. エラーハンドリングは必ず `try-catch` で囲み、カスタム例外クラスを投げる。
2. レスポンス型は `types/api.d.ts` から継承すること。
このように、「場所」と「ルール」をペアにして配置することで、AIは「今、どこで作業しているか」に応じて自動的に脳内設定を切り替えるようになります。
—
ステップ3:HelloWorldで精度を確認する
では、実際にこのルールが効いているか確認してみましょう。Windsurfの「Cascade(AIチャット)」を開き、以下のプロンプトを投げてみてください。
プロンプト例:
> 「`src/components/ui/button.tsx` を作成して。ユーザーをクリックしたらログを出す機能もつけてほしい。」
期待されるAIの反応:
1. ファイル作成場所が正しく `src/components/ui` であること。
2. コンポーネント名が `PascalCase` であること。
3. `console.log` を使わず、ルールにある `logger.ts` をインポートしようとすること。
もしAIが `console.log` を使ったなら、それはガイドラインの「禁止事項」がまだ弱い証拠です。その場合は、ルールファイルを「禁止事項を太字にする」などして強調してみてください。これこそが、AIを「調教」する醍醐味です。
—
最後に:AIは「指示待ち」ではなく「パートナー」
この設定を行うことで、毎日のコーディングで「あ、また命名規則を間違えてる…修正しなきゃ」という無駄な時間がゼロになります。
AIエディタの本当の凄さは、ツールそのものの機能よりも、「いかにAIに自律的な判断をさせる環境を作るか」というアーキテクチャ設計にあります。
まずは `.windsurf/rules.md` を一つ作ることから始めてみてください。あなたのチームの規約がコードに深く刻み込まれた時、Windsurfは単なるエディタから、あなたの思考を加速させる「最高の相棒」へと進化します。
さあ、あなたのプロジェクトに「憲法」を。コーディングの未来を、もっと楽で、もっと楽しいものにしていきましょう。