7 ポイント 投稿者 davespark 2026-02-01 | 1件のコメント | WhatsAppで共有

元FacebookエンジニアのChristopher Chedeau(Vjeux)が、Pokemon Showdownのバトルエンジン(約10万行のTypeScript)をClaude Codeを活用してRustへ移植した実験

プロジェクト目標

  • PokemonバトルAI学習用の高速オラクル(参照システム)を構築
  • 既存のTypeScript実装 → 遅すぎる(数百万回のバトルシミュレーションが不可能)
  • 目標言語: Rust(高性能)→ ただし本人のRust経験はゼロ

主な成果

  • 1か月(実作業は約2〜4週間)で約10万行の移植を完了
  • 約5,000コミットを生成
  • 実行速度が3.5倍向上
  • 差分テストの結果、一致率99.96%(200万件のランダムバトル基準)
    • 残りの0.04%は元のTSコードのバグと推定

成功の核心戦略

  • **差分テスト(differential testing)**を導入
    • TSの元実装とRust版を同時実行 → 結果を比較
    • 不一致ケース → Claudeにログを見せながら修正を指示
  • Rustの文法をほとんど知らない状態でも検証可能

Claudeが直面した主な困難

  • 個別ファイルの移植は得意 ↔ ファイル間統合で頻繁に問題が発生
    • 例: 同じ概念(move)を別々の構造体として定義
  • コンテキストウィンドウの限界 → 中間要約の過程で重要情報が失われる
  • 「より良く」しようとする傾向 → 明示的な「1行ずつの移植」指示を無視してリファクタリングを試み、バグを量産
  • 最適化要求 → 計画は優れて見えたが、実際の性能改善はほとんどなし(一部はむしろ遅くなった)

ユニークなワークフローハック

  • Claudeのユーザー承認要求を自動化
    • AppleScriptで数秒ごとにEnterを自動入力 → 24時間無人実行
    • (セキュリティ上のリスクはあるが、単発のオラクル用途のため許容)

AIコーディングツールの現状(評価)

  • 機械的変換・大量ポーティング作業 → 非常に強力
  • 性能最適化、アーキテクチャ設計など高次の作業 → まだ不十分
  • Hacker Newsでの議論
    • 懐疑論: 保守不能、「コンパイルが通るだけ」のコード
    • 擁護論: 差分テストにより十分信頼可能 + 人間と比べて時間短縮効果が大きい

実務適用の教訓3つ

  • 徹底した自動化テスト体制が必須(差分テストがなければ失敗確率は非常に高い)
  • 明確で狭い範囲の指示が最も有効(「1行ずつ移植」はO、「改善して」はX)
  • AIはツールにすぎない → 開発者が依然として問題診断・質問設計・方向性維持を担う必要がある

→ Rustをまったく知らない人が、10万行規模のコードを1か月で実用レベルに移した事例 → AIコーディングの実用性を証明したケースであると同時に、限界も明確に示した代表的な実験

https://aisparkup.com/posts/8701

1件のコメント

 
ahwjdekf 2026-02-03

これは、テストケース作成が万能ではないという点を見落としている。入力と出力が正常であることだけがすべてではない。結局、10万行をもう一度レビューすることになるだろう。