異なるプログラミング言語への移植では、コードを一行ずつ置き換える前に、「元のソフトウェアが何をするべきか」を言葉にしておくことが大切です。Geoffrey Huntleyは、その手掛かりとして既存のテストを仕様書にまとめ、AIエージェントを使って移植を進める方法を紹介しています。
8
テストを読み解き、仕様を先にまとめる
Huntleyの提案は、まずテスト一式を調べ、振る舞いを/specs/*.mdのMarkdownファイルに整理するというものです。個別のファイルを別々のサブエージェントに調査させ、仕様の記述には実装への参照も添えるよう勧めています。
8
テストをただ実行して合否を見るのではなく、何が検証されているかを読み取り、別の言語でも参照できる形にする。移植先のコードを書く前に、既存の振る舞いを共通の説明へ落とし込む発想です。
仕様を手掛かりに、実装を移植する
次に、ソースコードの機能を調査する別のエージェントループを設け、仕様書を参照しながら移植を進めます。Huntleyは、仕様に実装への引用を付けるだけでなく、実装側からも仕様をたどれるようにする手順を示しています。
8
この進め方では、仕様づくりとコード生成を一度に済ませようとせず、段階を分けて進めます。仕様と実装を結びつけておけば、移植後に「何を根拠にこの動作を作ったのか」を確かめる助けになります。ただし、紹介されているのは手法の提案であり、あらゆるプロジェクトで移植が容易になると保証するものではありません。
エージェントに任せる範囲は、モードと承認設定で変わる
この手順をコーディングエージェントで試すなら、調査と変更の境界にも注意が必要です。Clineのドキュメントでは、Planモードはコードベースの調査や方針の検討に使い、Actモードは計画に沿って実行するモードと説明されています。
2 Clineの案内では、ファイル編集やターミナルコマンドには承認が必要とされる一方、自動承認を有効にして自律実行させる選択肢もあります。
10
つまり、仕様を作って移植する手順そのものと、エージェントが実際にどこまで変更できるかは別の話です。まず既存テストと仕様の対応を確かめ、変更内容や実行結果を確認できる設定で小さく試すことが、手法を自分のコードベースへ持ち込む際の現実的な出発点になります。