1万行のコードは渡せない。AIに何を渡すか決めた
全部貼ることはできません。渡す順番と粒度を決めたら、返ってくるものが安定しました。

この記事の結論
- 全体は渡せないので、渡す順番を決める
- 先に渡すのは構造。コードは後
- 関連ファイルを足すと精度が上がる
- 全体は渡せないので、渡す順番を決める
- 先に渡すのは構造。コードは後
- 関連ファイルを足すと精度が上がる
レガシー移行でAIを使うとき、最初に詰まるのが「どこまで渡すか」だった。
全部は渡せない
1万行を貼ることはできないし、できたとしても結果は良くならない。関係ない部分が多いほど、どこを見ればいいか分からなくなるのは人もAIも同じだ。
渡す順番を決めた
- ディレクトリ構成(どこに何があるか)
- 棚卸し表(何が何箇所あるか)
- 対象ファイル1つ
- そのファイルが呼んでいる関数の定義
1と2を先に渡すと、3を渡したときの前提が共有されている。いきなり3から始めると、毎回ゼロから説明することになる。
構造は自動で出す
find . -name "*.php" | head -200
grep -rn "^function |^class " --include=*.php . | head -100この2つの出力を貼るだけで、全体像の説明になる。自分で説明文を書くより正確で、速い。
呼んでいる関数を一緒に渡す
いちばん効いたのがこれだった。
対象ファイルだけ渡すと、中で呼んでいるcalc_tax()が何をするか分からない。AIは名前から推測して書くので、実際と違う前提で直してくる。
呼んでいる関数の定義を一緒に貼ると、推測が要らなくなる。grepで集めるだけなので手間も小さい。
共通ファイルは1回だけ渡す
設定ファイルや共通関数は、毎回貼ると場所を食う。最初に1回渡して、以降は「前に渡した共通関数を使っている」と書くだけにした。
長い会話では前提が抜け落ちるので、おかしな答えが返ってきたら貼り直す。抜けたことに気づく合図は、存在しない関数名を使い始めることだった。
古いコードはそのまま貼る
読みやすく整形してから渡したくなるが、やめた。整形した時点で、元のコードではなくなる。
インデントが崩れていること自体が、どこが後から足された処理かの手がかりになっている。そのまま貼って、「整形せずに読んで」と添える。
公式の数字
「渡せない」の線は、いまは思ったより遠い。Claudeの公式なモデル一覧では文脈が100万トークンで、100万トークンは約55万5千語、または約250万文字にあたると書かれている。1万行のコードなら、文字数では収まる場合が多い。
それでも全部渡さないほうがよい理由は別にある。ドキュメントは「トークン数が増えるにつれて、正確さと想起の質が落ちる」とし、「使える容量がどれだけあるかと同じくらい、文脈に何を入れるかを選ぶことが重要になる」と続けている。入らないから選ぶのではなく、入っても選ぶ。
出典: Anthropic「Models overview」(2026年10月12日確認)
渡さないものも決める
- 接続情報やパスワードが書かれた設定ファイル
- 個人情報を含むデータ
- 取引先の名前が入ったコメント
渡す前に機械的に伏せる。毎回目視で確認するのは続かないので、貼る前に通す置換スクリプトを用意しておく。
出力の形を指定する
「直して」とだけ言うと、直したコード全体が返ってくる。長いファイルだと、どこが変わったか分からない。
「変更した行だけ、前後3行つきで」と指定すると、確認が速くなった。差分の形で返させるほうが、見落としが減る。
分からないと言わせる
古いコードには、意図の分からない処理が必ずある。
何も言わないと、AIはそれらしい説明を付けて書き換えてしまう。「意図が読み取れない箇所は、書き換えずに一覧にして」と先に頼むと、人が確認すべき場所が分かれて出てくる。
この一覧が、結果的にいちばん価値があった。移行で危ないのは、分からないまま触った箇所だからだ。
会話を分ける
1つの会話で何ファイルも扱うと、前のファイルの話が混ざってくる。
ファイルの系統が変わるところで会話を切り、構造と棚卸しを貼り直してから始める。貼り直す手間はあるが、混線して気づかないほうが高くつく。
逆に、同じ系統のファイルを続けて扱うときは会話を続けたほうがよい。前提の説明が一度で済み、2枚目以降が速くなる。
1ファイルずつにこだわらない
同じ形のファイルが50枚あるときは、1枚を丁寧に直して変換のルールを文章にしてもらう。
残り49枚は、そのルールをスクリプトにして機械的に流す。AIに50回頼むより速く、結果も揃う。
あわせて読む
- 表示が遅い原因を、順番に調べた作業 — 感覚で直す前に、測って原因を特定しました。
- 控えの取り方を決めた話 — 取っているつもりで取れていなかったので、見直しました。
- 引き継いだコードを、どこから読むか — 人が書いたものを触る前に、読む順番を決めました。
まとめ
レガシー移行でAIが効くかどうかは、渡すものを選べるかどうかで決まった。全部渡そうとすると詰まる。
構造 → 棚卸し → 対象ファイル → 呼んでいる関数、の順に渡す。これだけで、返ってくるものの質がはっきり変わった。
新しい記事が出たら、ブラウザの通知でお知らせします。
メールアドレスの登録は要りません。いつでも止められます。
関連記事
RELATED
レガシー移行でAIが間違えた場所を、全部書き出した
うまくいった話より、どこで間違えたかのほうが役に立つはずなので記録しました。
インデックスの仕組みを図にした。列の並び順で効くかが決まる
インデックスは端から全部見るのをやめる仕組みです。複合インデックスは左端から連続した組み合わせしか使えません。公式の記述…
移行前の動きを記録しておかないと、直ったか分からない
「前はどうだったか」を誰も覚えていません。先に記録を取る方法を決めました。