code modernizationのプラグインで、新旧の動きはどう確かめるのか
悠 Yu Niibori AIエンジニア プロフィール
出典 3件
要点
対象:古い業務システムの刷新を頼む会社
新旧の出力をスクリプトで突き合わせる 金額が空欄の注文で初めて違いが出た 人が判断する場面は6 つ code-modernizationは、C laude Code( Anthropic のA Iにプログラムを書かせるツール)に入れて使うプラグイン(追加機能)です。A nthropic が公開し、古いシステム(レガシーシステム)の刷新を手伝います。1
この記事の目次(5節) code-modernizationでできること 検証のしくみ 比較のスクリプトを動かした結果 現行システムを動かせるかで変わること 開発会社に頼む前に確かめること
開発会社がこのプラグインで刷新を進めるなら、新旧の出力を比べたときの入力の一覧と、違ってよいと認めた箇所の記録を出してもらってください。ふつうの入力だけで比べると、違いが見えないまま「一致」になることがあるためです。
code-modernizationでできること
プログラミング言語は問いません。移行の進め方は、同じ技術の新しいバージョンへの更新、別の言語での書き直し(リライト)、設計からの作り直し(リビルド)の3 つです。1
現行システムのコードには手を加えず、分析の結果と新しいコードを別のフォルダーに書き出します。1
工程は次のとおりです。1
工程 成果物 準備 動かす環境の確認結果 調査 規模と複雑さの評価、依存関係の図 業務ルールの抽出 業務ルールの一覧と、根拠のコードの行番号 業務ルールの確認 誤りの疑いがあるルールを確かめ直した一覧 計画 段階ごとの計画書 書き換え 新しいコード 検証 モジュール(機能のまとまり)ごとの判定 セキュリティ強化 現行システムのセキュリティ点検の結果と、修正パッチの案
人が計画を承認するまで、プラグインは新しいコードを作りません。1
人が判断する場面
01
02
03
04
05
準備
業務ルールの確認
計画
検証
セキュリティ強化
環境と質問
一覧を見直す
段階ごとの案
新旧を比べる
点検とパッチ案
判断すること
5つの質問に
答える
疑いのある
ルールを直す
計画を
承認する
パッチを
適用する
違いを認めるか
決める
結果を承認する
人が判断する6 つの場面と、その場面がある5 つの工程です。検証の工程には判断が2 つあります。
人が判断する場面は6 つで、プラグインが代わりに決めることはありません。1
検証のしくみ
現行システムを動かせる場合は、同じ入力を新旧の両方に与え、出力が同じかをスクリプトで突き合わせます。日時のように実行のたびに変わる項目は、比較の対象から外します。1
一致したかどうかは、A Iが判断するのではなく、スクリプトが出力を突き合わせて決めます。2
モジュールごとの判定は、比較の結果やテストの結果をもとに、次の3 段階で出ます。1
PROVEN( 新旧が同じ動きをすると確認できた)
PARTLY PROVEN( 一部だけ確認できた。足りないものも示す)
NOT PROVEN( テストや比較が実行されなかった・違いがあった・テストが通らなかった、のいずれか)
既存のテストの入力に加えて、境界値や空欄を含む新しい入力を1 0件以上作って試します。1
比較のスクリプトを動かした結果
2026年1 0月1 5日 に、このサイトの検証で code-modernization 1.0.0 をインストールし、比較のスクリプト(compare.py)だけを動かしました。A Iが読み解いて書き換える工程は、この環境では動かせず、試していません。
現行システムの代わりに、送料を計算する Perl の架空のプログラム(約60行)を用意しました。会員の割引や離島の加算などの業務ルールを入れてあります。新システムには、これをプラグインを使わずに Python で書き直したものを使いました。
比べた入力 現行(Perl)の出力 新(Python)の出力 比較の結果 1組 目: ふつうの注文5件 5行 同じ5 行 一致 2組 目: 会員の割引と離島の注文2件 2行 同じ2 行 一致 3組 目: 商品の金額が空欄の注文1件 送料1 ,100円 の1 行 エラーで止まり、出力なし 不一致
1組目と2組 目だけなら、不一致はありませんでした。3 組目を加えると、スクリプトは新システムの出力が無いことを不一致として見つけました。
違いを見つけたあとに判断すること
現行の Perl は、空欄の金額を0 円として扱い、送料を付けていました。実際のシステムなら、現行のこの動きが仕様か不具合かはコードだけでは決められず、業務を知っている人が決めます。
このプラグインでは、違ってよいと認めるとき、人が理由を書いて記録します。2
現行システムを動かせるかで変わること
開発会社の作業環境で現行システムを動かせれば、新旧を同じ入力で比べられます。
本番でしか動かないシステムのように、現行システムを動かせない場合は、過去に記録した出力と比べるしかありません。このとき、判定は最も良くても PARTLY PROVEN です。1
業務ルールの抽出はA Iが行うので、実行のたびに見つかるルールが変わることがあります。業務ルールの一覧は、人が確かめてから使うものとされています。1
開発会社に頼む前に確かめること
ライセンスは Apache 2.0 で、無料で使え、改変もできます。1
プラグイン自体の料金の記載はありません。ただ、大きなシステムでは、A Iの作業が多くなるぶん Claude Code の利用量が増えます。1 見積もりでは、C laude Code の利用料が含まれているかを聞いてください。
claude.ai/code などのクラウドでの作業では、パソコンに入れたプラグインは読み込まれません。3 開発会社がクラウドで作業するなら、このプラグインをどう使うのかを聞いてください。
開発会社には、次の4 点を確かめてください。
現行システムを動かして比べたか(PARTLY PROVEN なら、その理由)
比べた入力に、空欄や上限値などの境界値が入っているか
違ってよいと認めた箇所ごとに、誰がどんな理由で認めたかの記録があるか
抽出した業務ルールを、業務を知っている人が確かめたか
Claude Code をクラウドで動かすときの確認は、クラウドセッションの記事 にまとめました。C laude Code に追加の仕組みを入れる前の確認は、Claude Codeのm odsの記事 にあります。
AIが直したテストを人が確かめる話は、Playwrightのテストエージェントの記事 で取り上げました。
次に読む