「100万行コード移行は4年がかり」はもう昔話 Claude Codeで「2週間」に縮める6ステップ/ベストプラクティス:JavaScriptランタイム「Bun」のコードベースをZigからRustに移行(3/3 ページ)
Anthropicは、本番コードベースを別の言語に移植する大規模なコード移行プロジェクトをどのように実施しているかを解説したブログ記事を公開した。
ステップ4〜6:コンパイル、実行、動作の照合
ステップ4〜6では、同じループアーキテクチャを共有しており、人的判断の必要性が徐々に減っていく。
ステップ4(コンパイル)は、コンパイルの規模や難易度によっては、エージェントが全く実行しない場合もある。サムナー氏は、ワークスペース全体に対してコンパイラを1回呼び出すオーケストレータスクリプトを使ってこれを実行した。その後、フィクサーエージェントが、敵対的レビューと並行してエラーリストを処理した。エラーリストの確認は、調整が必要な体系的な問題の発見に役立つ。
ステップ5(実行)では、スモークテストで発生するクラッシュが、エラーリストと同様の情報源となる。ループの修正は、問題を分類することであり、ここでは、根本原因ごとに原因をグループ化し、敵対的サブエージェントにレビューさせる。
最後のステップ6では、ファイルをシャーディングし、前提条件を整える段階で作ったテストスイートを実行して、2つのコードベースにおけるプログラムの動作を比較する。フィクサーエージェントが失敗したテストを検証し、敵対的レビュワーがその修正内容を確認する。
こうしてフィクサーがパッチを作成すると、ビルドデーモンがそれらをバッチ処理し、再ビルドを1回行い、影響を受けたテストを再実行して、結果をフィードバックする。
同じ失敗が多数のテストで繰り返される場合は、修正は上流へと移行する。バグの原因となったルールを修正し、そのルールに関わるファイルだけを再生成する。
移行可能なテストスイートを持たないチームには、クリーガー氏のアプローチが参考になる。同氏はClaudeに、新しいコードベースと元のPythonコードベースの両方を対象に、7つの実用的なシナリオを実行して結果を比較するスクリプトを作成させた。失敗した各シナリオには専用の修正エージェントが割り当てられ、7つ全てが合格するまで、このループが繰り返された。
その後、クリーガー氏はさらに一歩踏み込み、Claudeに独自のエンドツーエンドテストスイートを設計させ、夜間に自律的に実行させた。Claudeが不具合を修正し、4晩連続で再実行した結果、シナリオテストで予測できなかったささいな不具合も解消された。
既存のテストスイートを継承できない場合は、元のコードベースを基準として、Claudeに作成させる手法があるということだ。
コード移行における6つのベストプラクティス
Anthropicは、どのプロジェクトにも有効なベストプラクティスとして以下を挙げている。
1.このガイドをむやみに踏襲せず、プロジェクトに着手する前にClaudeを使って、個々の移行を計画する。
2.個別のコードの失敗に固執せず、全体的なパターンに注目する。個々の修正は、フィクサーエージェントのループ処理に任せる。
3.レビューは敵対的に、検証は機械的に行う。敵対的なレビューはタスクの長期実行を可能にし、多くの場合、トークンの消費に見合う価値がある。スクリプト(コンパイラ、diff、テストスイートなど)を判定システムとして活用する。
4.最大のモデルをあらゆる場面で使うのは禁物だ。トークンの消費はループに集中するので、ループは慎重に設計する必要がある。小規模モデルは、大量の実装ファンアウトをうまく処理できる。最大のモデルはレビュワーとして、あるいは他のエージェントが従うルールの記述に使用すべきだ。
5.人的リソースを初期段階で集中投入する。ルールブックの作成とストレステストが最も時間を要するからだ。それ以降の作業は、主にキューの処理に過ぎない。
6.作業キューを機械的で再開可能なものにする。「完了」とは「出力ファイルがディスク上に存在すること」と定義すべきだ。
Anthropicは開発者に、これまで放置し続けてきたコードベースを選び、その移行がどのようなものになるかをClaudeに尋ねてみることを勧めて、ブログ記事を締めくくっている。なお、記事で解説した6つのステップを一般化したテンプレートとして、「Claude Code Migration Kit」というスターターキットもGitHubで公開している。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
Anthropic、Mythos級モデル「Claude Fable 5」を提供開始 5000万行のRubyコード移行を2カ月から1日に
Anthropicは、「Claude Mythos Preview」と同等以上の性能に安全対策を加えた最新AIモデル「Claude Fable 5」の一般提供を開始した。コーディングや専門的な実務などで過去最高水準の性能をうたう。同時に、「Project Glasswing」を通じて、安全対策の一部を解除した「Claude Mythos 5」を限定提供する。
塩漬け“17年”のレガシー刷新作業を「2年→2日に短縮」 常石造船の事例で見えた、AIプロジェクトの成否
AIエージェントの活用が本格化する中、レガシーシステム刷新の工程が、AIエージェントを活用することで2年から2日に短縮するという事例も生まれた。一方で多くのAIプロジェクトではPoCで止まり、本番運用への障壁を乗り越えられていないという現状もある。API管理ベンダーKongが事業戦略説明会で語った常石造船の事例などを踏まえて、成否の条件を考える。
COBOLも古いJavaももう“塩漬け”にしなくていい? AIを制御し「数年を数日まで」短縮できるレガシー刷新の今
老朽化し、仕様を知る担当者も退職するなどして塩漬けにされる「レガシーシステム」。調査だけで億単位のコストを要し、ビジネス変革の足かせになりかねない難題にAI駆動開発でどうアプローチできるのか。Scalarが取り組むAIエージェントを使ったモダナイゼーションについて聞いた。
生成AIの品質を“AIで測る”――「LLM as a Judge」を機能させる3つの要素
AIの出力を別のAIが評価する手法「LLM as a Judge」。その基礎をdotDataがブログで解説した。AIにAIを評価させながら、その品質を確保するにはどのような手法が有効なのか。
AIに「絶対するな」は通じない、Anthropicが明かすClaude Code使いこなし術まとめ
2026年のAIコーディング現場は「Claude Code」の採用が増えており、その便利さを現場で実感している一方で、新たな課題が顕出されていると思います。Anthropicが公式ブログで提供したClaude Codeの使いこなし術をまとめました。
