// エディタ
Windsurf
あなたとCascadeが実際に作業する場所。
Windsurfユーザー向け
Windsurfはエディタで、Cascadeはエージェントです。モノレポの中では、エージェントにはどのファイルが重要かの地図がまだ必要です。Maguyvaはあなたのコードベースをインデックス化し、MCP経由で返します(セマンティック、AST、グラフ、テキスト)。だから「認証はどこで行われているか」と聞けば、7個のテストスタブではなく、実際の認証フローが返ってきます。
Freeプラン:リポジトリ3個, インデックス済みリポジトリ行数、最大5万行、カード不要。
Windsurfは、あなたが指し示したものを編集します。Maguyvaは、Cascadeにどのファイルを指し示すべきかを教えます。4つのパーツ。それぞれに役割があります。
// エディタ
あなたとCascadeが実際に作業する場所。
// 手動のコンテキスト
手動のコンテキストは、リポジトリが大きくなるまでは有効です。
// コードベース
MCP経由の、自動的なコードベースの事実。
// 支払うのは誰か
エージェントはシート料金を払いません。料金を見る
IDEが問題なのではありません。Cascade、タブ補完、複数ファイル編集、そして.windsurfrulesはどれも優れていて、あなたはすでにこう使っているはずです:
.windsurfrules。@メンション。それは続けてください。何ひとつなくなりません。
しかし、実際のモノレポ(ワークスペース依存を持つTypeScript、Pythonサービス、混在パッケージ)では、関連するファイルがまだCascadeのレーダーに入っていない瞬間、エージェントのコンテキストは崩れます。
4つの手動対処法と、それぞれの失敗モード。左 = 今あなたがしていること。右 = それが崩れる場所。
// the fix
重要だと思う3つのファイルを@メンションします。Cascadeはその中で綺麗に編集します。
// where it breaks
うまくいくのは、どのファイルが関わっているかをすでに知っている場合だけです。コンテキストツールの本質は、あなたが言及すべきだと知らなかったファイルを、表に出すことです。
// the fix
別のパッケージから200行をCascadeに貼り付けて、十分なコンテキストを与えます。
// where it breaks
午前9時に貼り付けたスニペットは、午前11時にチームメイトが取り込んだリベースを反映していません。Cascadeは、パッケージの幻のバージョンに対して編集していることになります。
// the fix
.windsurfrulesファイルやアーキテクチャのマークダウンを書きます。今日のところは正しい。
// where it breaks
手で書いたものは、すべて陳腐化していきます。信頼できる情報源はコードです。キューレイヤーを説明するドキュメントは、1週間は正しくても、その後はずっと間違ったままです。
// the fix
命名規則、lint、ビルドコマンドのために.windsurfrulesを追加します。振る舞いには最適です。
// where it breaks
.windsurfrulesは「コミット前に必ずpnpm tsc -bを実行する」を書くのに適した場所です。しかし、モノレポ内のすべてのシンボル、ファイル、呼び出し箇所を問い合わせ可能にするインデックスではありません。
Windsurfの代替ではありません。CascadeのMCPサポートにぶら下がる、リポジトリコンテキストレイヤーです。
.windsurfrulesは引き続きその役割を果たします。@メンションも同様です。Maguyvaは、それらが埋められない隙間を埋めます。Cascadeは、あなたが指し示したファイルを編集する。
Maguyvaは、エージェントにどのファイルを指し示すべきかを教える。
パッケージ横断、言語横断。Cascadeのgrepではなく、実際のコールグラフに根ざしています。
// workflow 01
cascade> このモノレポではauthenticationはどこで行われていますか? graph::query("authentication flow") packages/web/src/auth/session.ts:42 middleware packages/api/src/auth/jwt.ts:88 token verify packages/shared/src/auth/types.ts:12 AuthContext packages/admin/src/auth/admin-only.ts:31 rbac gate → 4つのパッケージにまたがる4つのエントリーポイント、呼び出し箇所の密度でランク付け。 [exit 0]
ファイルに言及しませんでした。スニペットも貼り付けませんでした。Cascadeは、重要な4つのファイルを正しいランキングで手にし、根拠のある編集ができます。
// workflow 02
cascade> normalizePhoneNumberはE.164をどのように処理していますか? semantic::query("normalize phone E.164") packages/shared/util/phone.ts:88 normalizePhoneNumber() ← real impl packages/api/test/phone.spec.ts:14 jest.mock(...) ← stub [exit 0]
名前は嘘をつきます。モックは実際のコードを覆い隠します。Maguyvaは、すべてのパッケージにわたって、実際の実装をテストモックより上位にランク付けします。
// workflow 03
cascade> モノレポ全体でQueueDispatcher.publishを呼び出しているのはどこですか? graph::callers(QueueDispatcher.publish) 3 in packages/billing/* 1 in packages/audit/* 1 in packages/notifications/* 1 in services/python-worker/* ← cross-language via gRPC stub [exit 0]
パッケージ横断、そしてポリグロットなリポジトリでは言語横断でも、呼び出し箇所がインラインで表示されます。差分は、Cascadeのgrepではなく、実際のインポート元に根ざしています。
3ステップ。Freeプラン:リポジトリ3個, インデックス済みリポジトリ行数、最大5万行、カード不要。
// step 01
最もコンテキストの痛みを感じているモノレポを選びましょう。
// step 02
// ~/.codeium/windsurf/mcp_config.json
{
"mcpServers": {
"maguyva": {
"serverUrl": "https://maguyva.tools/mcp",
"headers": {
"Authorization": "Bearer <your-key>"
}
}
}
}// step 03
会社全体から始めないでください。1つのリポジトリと、「パッケージ横断でformatInvoiceを呼び出しているのは何か?」のような、検証可能な質問1つから始めましょう。