
既存設計の問題点をAIに説明させる|理解を深める使い方
「このシステム、なんでこんな作りになってるんだろう」。 前任者が去ったあとの引き継ぎ、あるいは久しぶりに触る古いコード。動いてはいるけれど、設計の意図が読めない。直したいけど、下手にいじると何が壊れるか分からない——そんな夕方、ありますよね。
そういうとき、AIは「既存の設計を説明してくれる相手」になります。 ただ、ここで気をつけたいことがひとつ。「この設計、直しといて」と丸ごと任せるのではなく、まず「なぜこうなっているのか」「どこに弱点があるのか」を説明させて、自分が理解する。順番はこちらが先です。理解しないまま直すと、意図があってそうなっていた部分まで壊してしまうことがあります。
この記事は、AIを「設計を直す人」ではなく「設計を読み解く手伝いをしてくれる人」として使うための、問いの立て方の話です。既存設計への理解を、一緒に一段深めていきましょう。
結論:既存設計を理解したいときは、①まず設計の現状と意図を説明させる → ②問題点と、その理由を挙げさせる → ③「なぜあえてこうしたか」というgood reason(善意の理由)も考えさせる → ④指摘を一次情報(実際のコード・データ)で確かめる → ⑤直すかどうかは理解したうえで自分が決める、の順で問いを立てます。AIに批評させるのが目的ではなく、自分の理解を深めるための説明役として使うのがコツ。指摘は必ず裏を取ります。
既存の設計には、たいてい理由があります。 その理由ごと理解してから直すと、壊さずに前へ進めます。
「直して」より「説明して」から始める理由

既存の設計を前にすると、つい「どこが悪いか教えて、直して」と聞きたくなります。 気持ちは分かります。早く分かるようになりたいし、早く直したい。でも、この聞き方には落とし穴があります。
- AIは、画面に見えている部分だけで判断します。裏にある事情(過去の障害、外部連携の都合、あえての妥協)は知りません
- なので、「一般論としては変」だが「この現場では理由があった」部分まで、まとめて問題扱いすることがあります
- そのまま直すと、意図があってそうなっていた作りを壊してしまう
既存設計でいちばん怖いのは、悪い設計を放置することより、理由を理解しないまま触って、動いていたものを壊すことです。「なぜか動かなくなった」の多くは、意図を読み違えた手直しから生まれます。
だから、順番を変えます。 まず説明させて、自分が理解する。問題点も、その理由も、言葉にしてもらう。そのうえで、直すかどうかを自分で決める。AIの役割は、理解の手伝いまで。ここを外さないだけで、既存設計との付き合いがずいぶん落ち着きます。
理解を深める4つのステップ
先に流れを出します。この順で問いを重ねると、AIが「批評する人」から「理解を助ける人」に変わります。
| ステップ | 問いの狙い | ひとことで言うと |
|---|---|---|
| ①現状と意図を説明させる | 全体像をつかむ | 「これは何をしてる?」 |
| ②問題点と理由を挙げさせる | 弱点を言葉にする | 「どこが苦しい?なぜ?」 |
| ③あえての理由も考えさせる | 早合点を防ぐ | 「わざとかもしれない所は?」 |
| ④一次情報で確かめる | 思い込みを外す | 「本当にそうか、コードを見る」 |
ポイントは、②で止めないことです。 問題点を聞いて「なるほど直そう」と進みたくなりますが、③と④を挟むことで、AIの一般論を自分の現場の事実に近づけられます。1つずつ見ていきましょう。
なお、この流れはチャットに図やコードを貼るだけでも回りますが、Claude Code・Cursor・GitHub Copilot のような CLI/エージェント型の道具を使うと、実際のコードを読ませたうえで説明させられる分、的外れが減ります。既存コードの文脈をうまく渡すやり方は既存コードにAIを馴染ませる文脈の渡し方にまとめました。
ステップ1:まず「現状と意図」を説明させる
最初にするのは、問題探しではなく全体像の把握です。 いきなり「悪い所は?」と聞くと、細かい欠点の羅列が返ってきて、木を見て森を見ずになります。まずは、この設計が何をしようとしているのかを、自分の言葉で言えるようにします。
聞き方の例:
この設計(構成図/コード)が、全体として何をしているのかを、
初めて見る人にも分かるように説明してください。
- 大きな役割ごとの分かれ方
- データがどこから来てどこへ行くか
- この設計が達成しようとしているとみられる目的
まだ良し悪しの評価はしなくて大丈夫です。
「まだ評価しないで」と添えるのがコツです。 そう言わないと、説明のふりをして批評が混じり、事実と意見の区別がつきにくくなります。まずは中立に、地図を描いてもらう。その地図が、後で問題点を位置づける土台になります。
返ってきた説明は、自分の理解と照らし合わせながら読みます。 「ここは合ってる」「ここは自分の認識と違う」を見つけるだけで、既存設計への解像度が上がります。違いを見つけたら、それはコードで確かめるポイントです。
ステップ2:問題点と「その理由」を挙げさせる
全体像がつかめたら、次に「どこが苦しいか、なぜ苦しいか」を挙げてもらいます。 ここで大事なのは、問題点だけでなく理由をセットで言わせることです。理由がないと、直す価値の判断も、人への説明もできません。
聞き方の例:
この設計で、保守や変更のときに苦しくなりそうな点を挙げてください。
それぞれについて、次をセットで。
- 何が問題か(具体的に、どの部分か)
- なぜ問題か(どういうときに、どう困るか)
- 放っておくとどうなりそうか
深刻そうな順に並べてください。
「なぜ問題か」を必ず言わせると、指摘の重みが見えてきます。 「今すぐ困る」のか「いつか困るかも」なのか。「毎回の修正で地味に効く」のか「めったに触らないから実害は小さい」のか。全部を直す必要はありません。自分の現場で本当に効く問題はどれかを、理由から見分けます。
この段階で出てきた指摘は、まだ「AIの見立て」です。 正しいかもしれないし、的外れかもしれない。判断は次のステップに回します。
ステップ3:「あえてこうした理由」も考えさせる

ここが、このやり方のいちばん大事なところです。 問題点が出そろったら、今度は逆に「これは、あえてこうした可能性はないか」を考えさせます。いわゆる good reason(一見おかしく見えても、実は妥当な理由がある)を探す問いです。
聞き方の例:
いま挙げた問題点について、逆の見方もしてください。
「一見おかしく見えるが、当時の事情を考えると、あえてこうした可能性がある」
というものはどれですか。考えられる善意の理由を挙げてください。
(例:過去の障害への対処、外部システムの制約、納期優先の妥協、
当時のライブラリの都合 など)
なぜこれを挟むか。 既存の設計には、その場に居なかった人には見えない事情が織り込まれていることが多いからです。「なんでこんな冗長な作りに」と思ったら、過去に一度データが壊れた対策だった。「なぜここだけ古いやり方」と思ったら、外部システムがそれしか受け付けなかった。こういう理由は、コードのコメントにも残っていないことがよくあります。
AIに善意の理由を挙げさせると、「直すべき問題」と「触ってはいけない事情」を分けて考える癖がつきます。 もちろん、AIが挙げる理由も推測です。当たっているとは限りません。でも「そういう可能性もあるのか」と一度立ち止まるだけで、勢いで壊すのを防げます。当時を知る人がまだ社内にいるなら、ここで挙がった仮説を持って、ひとこと確認しにいくのが確実です。
ステップ4:指摘を「一次情報」で確かめる
AIの説明も、問題点も、善意の理由も、すべて画面に渡した情報からの推測です。 だから、動く前に実際のコード・データ・設定で裏を取ります。ここを飛ばすと、AIの一般論を自社の事実と勘違いしたまま進んでしまいます。
確かめ方は、むずかしくありません。
- AIが「ここでデータが二重に処理される」と言ったら、その箇所を実際に開いて、本当にそうなっているか読む
- 「この設定だと性能が出ない」と言ったら、手元で小さく動かして、実際の数字を見る
- 「この分岐は使われていない」と言ったら、呼び出し元を検索して、本当に呼ばれていないか確かめる
AIは、それらしい断定を自信ありげにします。もっともらしいのに事実と違う、いわゆるハルシネーション(もっともらしい誤り)も混じります。見抜き方はAIのハルシネーションの見抜き方にまとめましたが、いちばん確実なのは、自分の目でコードを見ることです。エージェント型の道具を使っているなら、気になる箇所だけAIに読み直させて、該当行を示させると早く確かめられます。
裏が取れた指摘だけが、「理解した問題点」になります。 取れなかったものは、保留にしておいて大丈夫です。無理に全部を白黒つけなくて構いません。
直すかどうかは、理解したうえで自分が決める
ここまで来ると、既存設計への理解がずいぶん深まっているはずです。 何をしているか、どこが弱いか、なぜそうなっているか、どこは触ってはいけないか。この理解こそが、この記事の目的でした。
そのうえで、直すかどうかは自分で決めます。 理解したからといって、全部を直す必要はありません。「今は触らない」も立派な判断です。むしろ、動いているものを理由もなく作り替えるほうが、リスクが大きいこともあります。直すと決めた部分については、変更の差分を丁寧に確認しながら進めます。
- すぐ直す:実害が出ていて、理由も納得できて、影響範囲が読める部分
- 記録して保留:問題ではあるが、今は急がない。理解した内容をメモに残す
- 触らない:あえての理由が確認できた、または影響が読めない部分
どの指摘をどう扱うかの線引きは、AIレビューの指摘を取捨選択する判断軸の考え方がそのまま使えます。 理解したうえで「触らない」と決められること。それも、既存設計と付き合う立派な成果です。
ありがちな落とし穴と、その回避
既存設計の読み解きでつまずきやすい所を、先に潰しておきます。
- いきなり「直して」と頼む:意図を理解する前に触ると壊す。まず「説明して」から。
- 問題点だけ聞いて満足する:理由と、あえての事情もセットで。批評だけでは判断できない。
- AIの説明を、コードを見ずに信じる:説明は推測。該当箇所を自分の目で確かめる。
- 善意の理由を考えない:変に見える作りには事情があることが多い。一度は「わざとかも」を挟む。
- 理解した気になって全部直す:理解の目的は、直す・直さないを賢く選ぶこと。触らない判断も成果。
- 当時を知る人に聞かない:社内に生き証人がいるなら、AIの仮説を持って確認するのが最速で確実。
落とし穴のほとんどは、「AIに答えてもらって、早く片付けよう」とした瞬間に生まれます。 「AIと一緒に、既存設計を読み解く」に意識を変えるだけで、多くは避けられます。
明日からやること(小さく始める3つ)
いきなり全部やろうとせず、まずこの3つから。
- 分からない既存コードを、まず「これは何をしてる?」とAIに説明させる:評価は後回しで、全体像から。
- 問題点を聞いたら、続けて「あえてこうした理由は?」と聞く:早合点を防ぐひと呼吸。
- AIの指摘を1つ、実際のコードで確かめる:裏を取る癖が、思い込みを外します。
この3つだけでも、引き継いだシステムと向き合う気持ちが、少し軽くなります。
コピーして使う「既存設計の読み解きテンプレ」
分からない既存設計に出会ったら、上から順に問いを重ねてください。一度に全部でなく、必要な所から使えば十分です。
# 既存設計の読み解き
## ① 現状と意図(最初に)
「この設計(図/コード)が全体として何をしているか、初めて見る人にも
分かるように説明してください。役割の分かれ方・データの流れ・目的。
まだ良し悪しの評価はしないでください。」
## ② 問題点と理由
「保守や変更で苦しくなりそうな点を、深刻な順に。
それぞれ『何が』『なぜ問題か』『放置するとどうなるか』をセットで。」
## ③ あえての理由(good reason)
「いま挙げた点のうち、当時の事情を考えるとあえてこうした可能性が
あるものは? 考えられる善意の理由を挙げてください。」
## ④ 一次情報で確認(自分の手で)
- AIの指摘のうち、コード/データで裏を取る項目:
- 確かめた結果(合っていた/違った/保留):
## ⑤ どう扱うか(自分で決める)
- すぐ直す:
- 記録して保留:
- 触らない(理由):
読み解き前後のチェックリスト
理解を深める前と、直すかを決める前に、さっと確認します。全部に○が要るわけではなく、関係する所だけで十分です。時間がない日は、太字の2つ——「意図を自分の言葉で言える」「指摘を1つはコードで確かめた」——だけ押さえれば及第。残りは余裕があるときの確認項目だと思ってください。
理解を深めるとき
- この設計が何をしているか、自分の言葉で説明できるか
- 問題点を、理由とセットで挙げてもらったか
- 「あえてこうした理由」も一度は考えたか
裏を取るとき
- AIの指摘を、少なくとも1つは実際のコード/データで確かめたか
- もっともらしい断定を、鵜呑みにしていないか
- 当時を知る人に聞けるなら、仮説を確認したか
直すかを決めるとき
- 「触らない」も選択肢に入れて考えたか
- 直す部分の影響範囲が読めているか
- なぜその判断にしたかを、自分の言葉で言えるか
最後に
引き継いだシステムと向き合うのは、心細いものです。 なぜこうなっているか分からない、下手に触れない、でも直さないといけない。前任者はもういないし、聞ける人も少ない。その状況は、簡単には変わらないかもしれません。
でも、答えを写すためでなく、一緒に読み解く相手としてAIを使えば、ひとりで抱えていた既存設計に、もうひとつの光が当たります。

全部を一度に理解しなくても、今日ひとつ「これは何をしてる?」と聞けたなら、それはもう、分からないまま触る怖さを少し減らす一歩です。 既存設計を読み解けたら、新しく設計するときの相談にもAIは使えます。その型はAIを設計の壁打ち相手にするに、設計レビューで見落としを洗う型は設計レビューの見落としをAIに洗わせるにまとめました。読み解く・考える・洗う。この3つがそろうと、設計との付き合いがずいぶん落ち着きます。