0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【AIエージェント時代のチーム開発④】AIに「このファイル以外触らないで」と言うのは正しいのか

0
Last updated at Posted at 2026-05-12

はじめに

この記事は、AIエージェントを使ったチーム開発について考える全8回の連載の第4回です。

AIを使って開発していると、こう感じることがあります。

「そこまで直してほしいとは言っていない」

こちらは小さな修正を依頼したつもりなのに、AIが関連ファイルをまとめて変更する。
共通コンポーネントや状態管理まで触る。
命名や構成まで変える。

一人で開発しているときは、それでもよい場合があります。
しかし、チーム開発では危険です。

では、AIに対して「このファイル以外は触らないで」と指示するべきなのでしょうか。

私の考えでは、答えは「言うべき」です。
ただし、それだけでは不十分です。

変更範囲を明示するのは有効

AIに変更範囲を明示することは有効です。

たとえば、次のような指示です。

今回の修正では、以下のファイルのみ変更してください。
それ以外のファイルは変更しないでください。

変更可能:
- src/pages/UserListPage.tsx
- src/components/UserSearchForm.tsx

変更禁止:
- src/components/common/*
- src/api/*
- src/store/*
- src/router/*

このように書くことで、AIは作業範囲を意識しやすくなります。

特に、共通コンポーネントや状態管理のように影響範囲が広い部分は、勝手に触らせない方が安全です。

「直さないでほしいこと」も書く

変更してよいファイルを書くのと同じくらい重要なのが、変更してはいけない内容を書くことです。

たとえば、以下のような指示です。

以下は禁止です。

- 仕様変更と関係ないリファクタ
- 既存コンポーネントの責務変更
- 共通関数の追加
- 状態管理方式の変更
- APIクライアントの修正
- import整理だけの変更
- 命名規則の一括変更

AIは、こちらが明示しないと「より良くする」方向で動くことがあります。

もちろん、それはAIの強みでもあります。
しかし、チーム開発では「今はそこを直さない」ことが重要な場面もあります。

問題を見つけても、勝手に直させない

個人的に重要だと思っているのは、次の指示です。

既存コードに問題を見つけた場合も、勝手に修正しないでください。
まず「別途修正候補」として報告してください。

AIは、既存コードの問題を見つけると、その場で直そうとすることがあります。

しかし、その修正が今回の目的に含まれているとは限りません。

たとえば、AIが次のように考えることがあります。

  • この関数名は分かりにくいので変えよう
  • このコンポーネントは分割した方がよい
  • この処理は共通化できる
  • この型定義は別ファイルに出した方がよい

一つひとつは正しいかもしれません。
しかし、それを今回の修正に混ぜると、差分が大きくなります。

そのため、「見つけても報告だけにして」と指示することが大切です。

ただし、AIへの指示は絶対ではない

ここで注意したいのは、AIに指示したからといって、必ず守られるわけではないということです。

AIはコンパイラではありません。
ルールを書けば必ず従う、というものではありません。

特に、長いコンテキストや複雑な修正では、指示から外れることがあります。

そのため、「このファイル以外触らないで」と書くだけでは足りません。

実装後に、必ず差分を確認する必要があります。

git diff --name-only

まず変更されたファイル一覧を見る。
意図しないファイルがあれば戻す。
必要ならAIに再修正させる。

AIへの指示と、Git差分の確認はセットで考えるべきです。

ファイル単位だけでは足りないこともある

「このファイル以外触らないで」は分かりやすい指示ですが、ファイル単位だけでは不十分な場合もあります。

なぜなら、同じファイルの中にも、触ってよい部分と触ってはいけない部分があるからです。

たとえば、画面コンポーネントの中で、検索条件部分だけを修正したい場合があります。
そのとき、同じファイル内にある一覧表示やページング処理まで変えられると困ります。

その場合は、次のように書くとよいです。

このファイル内では、検索フォームの表示条件のみ修正してください。
一覧表示、ページング、API呼び出し、エラーハンドリングのロジックは変更しないでください。

AIに依頼するときは、「どのファイルか」だけでなく、「どの責務か」まで指定すると安全です。

変更範囲を狭めることは、AIの力を弱めることではない

AIに細かく制約をかけると、AIの良さを殺してしまうのではないか、と思う人もいるかもしれません。

確かに、探索フェーズではAIに広く任せた方がよい場面があります。

しかし、既存のチーム開発に入れるコードでは、話が違います。

チーム開発では、自由な提案よりも、既存設計との整合性やレビューしやすさが重要になることがあります。

変更範囲を狭めることは、AIを信用していないという意味ではありません。
AIの出力を、チーム開発で扱える単位にするための工夫です。

実際に使えるプロンプト例

以下のようなテンプレートを用意しておくと便利です。

今回の目的:
- ユーザー一覧画面に部署名での検索条件を追加する

変更してよい範囲:
- src/pages/UserListPage.tsx
- src/components/UserSearchForm.tsx

変更してはいけない範囲:
- 共通コンポーネント
- APIクライアント
- 状態管理
- ルーティング
- 既存の一覧表示ロジック

禁止事項:
- 目的外のリファクタ
- 命名変更
- 共通化
- ファイル分割
- 既存責務の変更

既存コードに問題を見つけた場合:
- 勝手に修正せず、別途修正候補として報告してください

実装後:
- 変更ファイル一覧を提示してください
- 目的外の変更がないか確認してください

これを毎回手で書くのは面倒なので、チーム内でテンプレート化しておくとよいと思います。

まとめ

AIに「このファイル以外触らないで」と言うのは、正しいと思います。

ただし、それだけでは不十分です。

重要なのは、以下をセットで行うことです。

  • 変更してよいファイルを明示する
  • 変更してはいけないファイルを明示する
  • 禁止する作業内容を書く
  • 問題を見つけても勝手に直させない
  • 実装後に差分を確認する

AIへの指示は絶対ではありません。
だからこそ、指示だけでなく、差分確認やCIと組み合わせる必要があります。

次回は、AI時代にPRは機能するのか、という問題について考えます。

今後

以降の連載予定になります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?