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-24

はじめに

AIエージェントをチーム開発で使うとき、よく出てくる対策があります。

それが、スキルファイルやプロジェクトルールの整備です。

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

  • AGENTS.md
  • CLAUDE.md
  • Kiroのsteering file
  • Copilotのcustom instructions
  • プロジェクト独自のAI利用ルール

これらは有効です。
AIにプロジェクトの前提を伝えるためには、非常に重要です。

しかし、これだけでチーム開発のコードを統一しようとするのは危険だと思っています。

スキルファイルは必要です。
ただし、それは強制ではなく、誘導に近いものです。

スキルファイルは「お願い」に近い

スキルファイルには、たとえば次のようなことを書きます。

- Controllerは薄く保つ
- Serviceに業務ロジックを書く
- DTOの命名は XxxRequest / XxxResponse にする
- 共通コンポーネントは勝手に変更しない
- テストを必ず追加する

これは有効です。

AIがプロジェクトの方針を理解しやすくなります。
毎回同じ説明をしなくてもよくなります。
チーム全体でAIへの前提を揃えやすくなります。

しかし、AIが必ず守るとは限りません。

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

コンテキスト量、直近の指示、読ませたファイル、モデルの挙動、作業内容によって、ルールから外れることがあります。

そのため、スキルファイルだけに頼るのは危険です。

ルールが長すぎると効きづらい

スキルファイルを充実させようとすると、どんどん長くなりがちです。

  • 命名規則
  • ディレクトリ構成
  • 例外処理
  • ログ出力
  • テスト方針
  • 禁止事項
  • レビュー観点
  • UIルール
  • APIルール

これらを全部書きたくなります。

しかし、長すぎるルールはAIにとっても扱いにくくなります。
すべてを毎回完全に守ることは期待しにくいです。

そのため、文章で書くルールと、機械的に縛るルールを分ける必要があります。

文章で書くべきもの

スキルファイルに向いているのは、判断基準や設計思想です。

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

  • このプロジェクトで大事にしている設計方針
  • 責務分担の考え方
  • 既存コードを優先する方針
  • リファクタを混ぜない方針
  • 迷ったときの判断基準
  • AIに作業前に確認してほしいこと

つまり、人間でも機械でも完全には判定しにくいが、方向性として重要なものです。

こういうものは、文章でAIに伝える価値があります。

機械で縛るべきもの

一方で、機械的に確認できるものは、文章ではなくツールで縛るべきです。

たとえば、以下です。

  • formatter
  • lint
  • 型チェック
  • 単体テスト
  • 結合テスト
  • CI
  • 依存方向チェック
  • 禁止importチェック
  • カバレッジ確認
  • ビルド確認

これらは、AIに「守ってください」とお願いするより、CIで落とした方が確実です。

AIがどれだけ「修正完了しました」と言っても、テストが落ちていればマージできない。
lintに違反していればマージできない。
禁止された依存方向があればマージできない。

この状態を作ることが重要です。

ひな形・テンプレートで形を固定する

コードの形を揃えたい場合、文章で説明するだけでは不十分です。

その場合は、ひな形やテンプレートを用意する方が効果的です。

たとえば、フロントエンドなら以下のようなものです。

  • ページコンポーネントのひな形
  • 検索フォームのひな形
  • API呼び出しhooksのひな形
  • テストファイルのひな形

バックエンドなら以下です。

  • Controllerのひな形
  • Serviceのひな形
  • Repositoryのひな形
  • Request / Response DTOのひな形
  • テストコードのひな形

AIに「この方針で書いて」と伝えるより、最初から形を渡した方が揃いやすいです。

AIには、そのひな形をもとに必要部分を埋めてもらう。
これにより、AIの自由度を適切に制限できます。

AIのブレをなくすのではなく、吸収する

AIの出力を完全に固定することは難しいと思います。

また、必ずしも固定すべきでもありません。

AIは新しい解決策を出してくれることがあります。
既存の実装より良い提案をしてくれることもあります。

そのブレ自体は、AIの強みでもあります。

重要なのは、ブレを完全になくすことではありません。
ブレてもチーム開発が壊れないようにすることです。

そのためには、以下のような仕組みが必要です。

  • スキルファイルで方向づける
  • 代表実装を用意する
  • ひな形で形を固定する
  • lint / test / CIで逸脱を落とす
  • PRを小さくする
  • 差分レビューを行う

この組み合わせが現実的です。

まとめ

スキルファイルは有効です。
しかし、それだけでAIの出力を統一しようとするのは危険です。

スキルファイルは、AIへの強制ではなく、誘導に近いものです。

本当に揃えたいものは、文章だけではなく、機械的に確認できる仕組みに落とし込む必要があります。

  • formatter
  • lint
  • 型チェック
  • テスト
  • CI
  • ひな形
  • テンプレート
  • PRテンプレート

AIに同じコードを書かせることよりも、AIが多少ブレても同じ品質に収束する仕組みを作ることが重要です。

次回は、AI時代にベテランエンジニアの役割がどう変わるのかを考えます。

今後

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

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?