- Windsurf Codemapsは、AIが注釈を付けた構造化コードマップであり、開発者がコードベースを迅速かつ正確に理解できるよう支援する新しいコード探索ツール
- 既存のAIコーディングツールがコード作成の自動化に集中してきた一方で、Codemapsは理解中心のエンジニアリングを目標とし、SWE‑1.5とClaude Sonnet 4.5モデルを基盤に動作
- コードベース内の機能フローを視覚的に表示し、正確なコード位置へ即座に移動したり、「trace guide」を通じて関連コードグループの説明を確認可能
- Cascadeなど既存のチャット型エージェントよりもコンテキスト接続性と探索効率が高く、
@{codemap}参照機能によってエージェントの作業性能を向上
- AIは単なる代替ではなく、エンジニアの理解力と責任性を強化する協働ツールとして位置づけられる
コード理解の重要性とCodemapsの登場
- ソフトウェア開発は単なるコーディングではなく、問題への理解から始まる
- AIがコードを代わりに書くツールは生産性を高めるが、開発者とコードの間に理解の断絶を生む
- 高難度・高価値の作業では、この分離が致命的な非効率につながる
- Cognitionは「脳をオフにするAIではなく、脳をオンにするAI」が必要だと強調
- CodemapsはSWE‑1.5とClaude Sonnet 4.5を基盤としたAI注釈付きコードマップで、DeepWikiとAsk Devinの技術を拡張した形
なぜCodemapsなのか
- あらゆるエンジニアリング作業はコード理解から始まり、大規模コードベースでは探索と記憶に多くの時間が費やされる
- 新任エンジニアは完全に習熟するまで3〜9か月、シニアは週あたり5時間以上をオンボーディングに使用
- Stripeの調査によれば、レガシー保守が生産性低下の主因
- 既存のAIコーディングツールは一般的な質疑応答が中心で、集中的なオンボーディングと精密な探索を支援できない
- Codemapsはこうした限界を解決するための正確なコードベースマッピングツールとして設計された
リアルタイムの問題中心マッピング機能
- Windsurf内でCmd + Shift + Cで実行し、作業目標を入力するか自動提案を選択
- **Fast(SWE‑1.5)またはSmart(Sonnet 4.5)**モードから選択可能
- 各Codemapはコードスナップショットを基盤とし、ZDR原則を順守
- 視覚的なノードマップを通じてコード構造を探索し、クリックすると正確なコード位置へ移動
- 「See more」オプションでtrace guideを開くと、コードグループの説明を詳細に確認可能
- Cascade内で
@{codemap}を呼び出して特定セクションを参照すると、エージェントのコンテキスト理解と性能が向上
「Vibeslop」に対抗するアプローチ
- 「Vibe coding」が無秩序なAIコード生成へと変質し、理解のないコード保守が問題として指摘されている
- Codemapsは人間とAIがシステム構造・データフロー・依存関係を共有できるようにし、理解のギャップを解消
- エンジニアの役割は書き手から**責任者(accountability)**へと移り、理解を通じて品質を担保
- 目標は速度だけでなく、エンジニアがフローを維持しながら複雑な問題を自信を持って解決できるよう支援すること
- AIは単なる代替ではなく、高価値の作業を強化し、低価値の作業を軽減する協力手段として提示される
今後の計画
- Codemapsは内部エージェントのインデックス化・分析結果を人間向けに可視化した第一段階
- 現在はチーム間での共有や学習用途に活用可能
- 今後はDevin・Cascadeなどエージェントの問題解決力向上への効果をベンチマーク予定
- Codemap間の接続・注釈機能とオープンな
.codemapプロトコルの定義を検討中
- Fast Context機能と組み合わせ、自動コンテキストエンジニアリングを人間が読める形へ発展させることが目標
- 最新のWindsurfおよびDeepWikiバージョンでCodemapsを利用可能
3件のコメント
deepwikiを使うたびに感心しているので、この機能にも期待しています!VS Codeにも出てほしい
Hacker Newsの意見
この記事を読んで、いくつか押さえておきたい点があると思った。
これはまた一つのFortune 500向けAI製品に見える。中小規模のチームにはあまり合わないかもしれない。
実際、この種の静的解析ベースのダイアグラムツールはずっと前からあり、LLMが代わりに描いてくれる点以外はそれほど新しさがない。
オンボーディングで重要なのは単にフローチャートを見せることではなく、チームが持つ問題の文脈を共有することだ。CRUDやMVCのようなボイラープレートよりも、チーム固有の特殊なパターンや制約を説明するほうが重要だ。
LLMが作る可視化の利点は、こうした判断力や常識が入ることで、より直感的になる点だ。
こういう静的解析ツールでおすすめがあれば教えてほしい。できればオープンソースで、Python、Java、JavaScript(特にAngular)に対応しているとさらにいい。
久しぶりにWindsurfを起動して「Upgrade Available」を押したら、このページに飛ばされた。
案内されていたコマンド
sudo apt-get upgrade windsurfは、実質的にシステム全体のパッケージをアップグレードしてしまう危険なコマンドだ。幸い、
sudo apt-get install --only-upgrade windsurfを直接実行して解決できた。とはいえ、新しく追加されたCodemaps機能はかなり良くて、試してみる価値がある。
apt-get upgrade $PACKAGEという直感的でない文法は本当におかしい。実際の正しい構文はマニュアルにも載っていない。もっと多くの人にWindsurfを使ってみてほしい。
自分はシニアエンジニアとしてエージェント型コーディングと通常のコーディングを並行しているが、Windsurfは過小評価されているツールだ。
Codemaps機能が最初に出たときは本当にうれしかった。
Codemapsはここ数週間使っているが素晴らしい。コード変更が多くなるとメンテナンスが面倒になるかもしれないが、解決は可能に見える。
自分はSonnet 4、Sequential Thinking、Tavily MCPサーバーの組み合わせでSaaSプロトタイプを素早く作れた。価格も妥当だ。
Windsurfも良いが、価格ポリシーのせいで会社全体への導入は断念した。
興味深いアイデアではあるが、生成されたダイアグラムが正確でなければ、かえって誤解を招く危険がある。
結局人間が再検証しなければならないなら、ツールの目的が薄れてしまう。
この種の機能はビジネス文脈が抜け落ちたコード接続図しか見せないので、実用性が低い。
AIはアーキテクチャの「なぜ」を理解していない。結局、設計ドキュメントを読み、コードを読むほうが良いと思う。
deepwikiの例やCodemapリンクを見ればわかる。
デバッグするときは、実際その程度の情報で十分だ。
こうしたアプローチこそが問題解決の正しい方向だと思う。
中途半端に動くAI製品を作るより、コードベースを人間とLLMの両方にとって理解しやすくすることのほうが重要だ。
こうした自己文書化システムは、大企業の開発疲れを軽減できる。
(共同著者)質問歓迎です!
1分のデモ動画を参照してほしい。
これはCognition CTOのStevenのアイデアだ。彼は注目を浴びるのを嫌うが、今回は本当に良い仕事をした。
彼のツイートも参考までに。
3年前に、似たようなアイデアでサイドプロジェクトを作ったことがある。
LLMが登場する前だったので、自分でASTパーサーを作ってGoとJavaコードの関係を抽出し、Graphvizで可視化した。
正規表現ベースのフィルターも追加したが、見慣れないコードベースを理解するときに本当に役立った。
今でも packagemap.co に残っているが、かなり古くなっている。
開発者がコード構造を空間的に把握し、VR環境で文脈を見ながら作業するのが目標だった。
関連記事はこちらにある。
機能提案: Github ActionでリポジトリのCodemapを自動生成してREADMEに含め、主要なPR時に自動更新されるとよい。
コード可視化のアイデアは素晴らしいが、しばしば**「悪いアイデアに引きずり込まれる」危険がある。
ほとんどのダイアグラムは意図した意味をうまく伝えられず、むしろ解釈に時間がかかる。
人は実際にはコードや数式を読みながら、頭の中に自分なりの可視化モデルを作っている。
たとえばFlutterアプリを可視化してもウィジェットツリー構造が見えないなら、自分のメンタルモデル**と衝突してしまう。
結局こうした可視化は、小説を読むときに頭の中で情景が浮かぶのと似ている。
LLMが「見たいコード映画」を作ってくれる技術なのかどうかは、まだ確信が持てない。