【社内勉強会レポート②】Claude Codeを使ったAI開発の実践と、AIに主導権を握らせない開発のコツ
2026.04.28
AIが急速に進化し、エンジニアがAIを活用してコードを書くことはもはや当たり前になりつつあります。しかし、プロダクトの根幹に関わるバックエンド開発において、強力なAIを安全かつ効率的に自律駆動させるにはどうすればよいのでしょうか?
リベロエンジニアでは、最先端の技術を社内に還元する「社内勉強会」を定期的に開催しています。今回は4月15日にオンラインで開催された「Claude Codeを使ったAI開発勉強会」の第2部の模様をレポートします!
なぜ数あるAIの中で「Claude」なの?
第1部(初心者向け)に続く本記事では、中〜上級者・エンジニア向けに、AIに主導権を握らせず「超優秀なアシスタント」としてコントロールするための実践テクニックをご紹介します。リベロエンジニアが自社開発したスマートグラスソリューション「Libero Sight(リベロサイト)」のバックエンド開発を担う菊池匡洋さんが、実際の現場で使われている設定ファイル(CLAUDE.md)の書き方やフック機能の活用法など、ディープなノウハウを一挙公開してくれました。

第1部に引き続き講師を務めるのは、エンジニアの菊池さん。現在さまざまなAIツールがあるなか、なぜ菊池さんは「Claude」を選んだのでしょうか? その理由は「過去1年間、さまざまなAIで開発を試してベンチマークを行った結果、一番自分の意図を汲んだ正解のコードを出してくれたのがClaudeだったから」だと語ります。最近ではClaudeの周辺機能も充実してきており、時代が追いついていると感じているようです。
Claude Codeの権限の前提と「守り」の基盤

Claude Codeを使った開発講座に入る前に、まず「権限」に関する重要な前提が共有されました。
「Claude Codeは、実行ユーザーと同等の権限で動きます。つまり、ファイルシステム全体にアクセスが可能で、起動したディレクトリ内だけで動くものではありません」(菊池さん、以下同)
settings. Jsonなどの設定ファイルで細かい「許可(allow)」「拒否(deny)」を設定することも可能ですが、菊池さんは「細かく拒否ルールを書いてもキリがない」と言います。
そこで実践しているのが、OSのユーザー権限を活用した「守りの基盤」作りです。例えば、Linux環境を使用し、システム領域にはroot権限がないとアクセスできないようにOSレベルで制限をかけることで、AIが意図せずシステム全体を破壊してしまうリスクを防ぎ、安全を担保しています。
AIをプロジェクトに迎える「オンボーディング」の作法
安全な基盤の上で、いかにAIにプロジェクトの文脈を理解させるかが開発の鍵となります。菊池さんは、これを「新しい開発者をプロジェクトに迎え入れるオンボーディング(現場のルールや背景を教え込み、即戦力化するプロセス)と同じ」と表現します。
「何をやらないか」を明記する(CLAUDE.mdの活用)

プロジェクトのルートディレクトリにCLAUDE.mdというファイルを用意し、AI向けのルールや制約(引き継ぎ書)として読み込ませます。ここで重要なのは「何をやらないか(やらなくていいこと)」を明示すること。
「AIは『やって』と言われれば何でもやってしまいます。そのため、やらないことを具体的に書く方が効果的です。ただし、指示が多すぎるとAIの従順度が下がってしまうため、300文字以下にとどめるのが目安です」と菊池さんは語ります。
\リベロエンジニアは採用を強化中!/
指摘した直後に、AI自身に規約を追記・修正させる
規約の更新は CLAUDE.md だけにとどまりません。菊池さんが徹底しているのは、docs/ 配下に置いたコーディング規約そのものを、AI自身に追記・修正させるという運用です。しかも、やらせるタイミングが重要だと言います。
「AIに何か指摘をして認識を合わせた、その直後にやらせるのが鉄則です。時間が空くと文脈が薄れて精度が落ちます」
書かせる内容は単なるルールの一文ではありません。「なぜそのルールが必要なのか(背景)」と「守っている実装例・守れていない反例」を必ずセットで書かせます。
「ルールだけ書かれた規約は、後から読んだAIも人間も意図がわからず、形骸化します。背景と実装例が揃って初めて、次のセッションで別のAIが読んでも同じ判断ができる規約になります」
AIは自分がやっていることを言語化するのが得意な性質があるため、認識合わせ直後のAIに書かせれば、人間がゼロから起こすより早く、かつ現場のコードと整合した規約が手に入ります。指摘の積み重ねがそのまま docs/ 配下の資産として蓄積されていく仕組みです。
【実践Tips】データベース構造は「DBML」で与え、暴走を防ぐガードレールに

AIにシステムを理解させる際、人間はER図のような視覚的な図式を好みますが、AIにとってはルールが明確なテキストベースのコードのほうが確実に関連性を理解できます。そこで菊池さんは、データベースの定義をDBML(Database Markup Language)形式のテキストで作成し、AIに読み込ませています。
「DBMLをAIに与えることで、『現在のデータベース構造上、実現不可能な機能は実装しない』という強力な制約(ガードレール)として機能し、AIの暴走を防ぐことができます」
【実演】配送業者マスタのCRUD追加!AIの自律開発

AIが設計案を出してきました。

準備が整ったところで、実際の自社サービス「リベロサイト」に「配送業者マスタ(carriers)」のCRUD(作成・読み出し・更新・削除)機能を追加するというユースケースで実演が行われました。

このように追加ができました。
「これまで何時間もかけてやっていた作業がすぐ終わるため、助かっています」と菊池さんは実感をこめて語ってくれました。
用途に応じたAIモデルの使い分け
菊池さんは、要件の複雑さに応じてAIモデルを使い分けています。
「難しい設計作業は一番精度の高い最上位モデル『Opus4.7』に行わせます。一方で、設計が仕上がった後のコードの量産フェーズでは、もう一つ下のモデル『Sonnet』を使うことで、トークンの消費を抑え、コスト効率よく開発を進めることができます」
AIの暴走を確実に防ぐ「フック(hook)」機能
CLAUDE.mdでの指示はあくまで「お願いベース」であり、AIが忘れたり無視したりすることがあります。「developブランチに直接コミットしないで」と書いても、AIがいきなり編集を始めてしまうこともあるそうです。

ここで活躍するのが「フック(hook)」機能です。
「AIがファイルを編集しようとしたタイミングでフックを発動させます。例えば、現在のブランチが保護対象の『develop』だった場合、処理をストップさせます。ここで一番のポイントは、ただエラーを出して止めるのではなく、『developは保護ブランチです。作業ブランチを切ってから作業してください』と理由をセットでAIに返すことです」
エラーの理由を受け取ったAIは、自律的に状況を理解し、自分で作業ブランチを切り直して実装を再開する見事な動きを見せ、参加者からも驚きの声が上がりました。
\リベロエンジニアは採用を強化中!/
開発を加速させる「パターン量産」の考え方
AIは既存のコードの文脈を読み取り、それを横展開することが非常に得意です。
「最初の1パターンは人間がしっかりと設計し、EntityからDTOまでの流れを作ります。それをルールとして明文化しておけば、あとはAIに『〇〇マスタと同じパターンで作って』と指示するだけで量産が可能になります」
この「人間が設計してパターンを作り、AIが量産する」というサイクルを繰り返すことで、コードベース全体の一貫性を保ちながら、開発スピードを劇的に向上させることができるそうです。
フロントエンドは、バックエンドを修正したエージェントに続けてやらせる
バックエンドの修正に続いてフロントエンドも直すとき、菊池さんは別のエージェントを立ち上げず、同じエージェントにそのまま続けて作業させます。
「バックエンドを触ったエージェントは、エンティティの構造もAPIの仕様も変更意図もすでに把握しています。その状態のままフロントエンドに入れたほうが、再度コンテキストを読み込ませるコストが発生せず、整合性の取れた修正になります」
エージェントを分けると必ず再オンボーディングが必要になるため、連続する修正は同一セッションで完結させるのが効率的だそうです。
テストはAIにアプリを起動させ、標準出力のログごとAIに読ませる
APIのテストも、人間が手元で叩いて結果をAIに貼り付けるのではなく、AI自身にアプリケーションを起動させてAPIを叩かせます。これにより、標準出力に流れるログをAIがそのまま読めるようになり、エラーや想定外の挙動をAI自身が検知して自発的に原因調査と修正に進んでくれます。
「人間がログをコピペして渡す運用だと、どうしても情報が抜け落ちたり、解決までの往復が増えます。AIにログまで含めて見せれば、問題特定から修正案の提示までひと続きで走らせられます」
まとめ:成果物に責任を持ち、切腹できるのは命ある人間だけ
AIを駆使して驚異的なスピードで開発を進める菊池さんですが、勉強会の最後に、AI時代のエンジニアのあり方について重要なメッセージを残してくれました。
「AIは70〜80点のコードを出してきます。明らかな0点のコードをレビューするより、80点の出来の中からいけないところを見つけるのは意外としんどい作業でもあります。ですが、最終的な成果物に責任を持てるのは人間の役目です。いざという時に切腹して責任を取れるのは、命ある人間だけですから」
AIに仕事を丸投げするのではなく、あくまで開発の手綱(主導権)は人間が握り続けること。これこそが、AIを最高の相棒として使いこなすための最大の秘訣と言えます。上級者向けの今回では、エンジニア同志の意見交流がさらに活発に行われ、盛り上がりました。
リベロエンジニアでは、こうした現場の泥臭い課題解決や最新の技術ノウハウをエンジニア同士で共有し、日々成長を続けています。AIを活用したモダンな開発環境で、私たちと一緒に新しい価値を創造していきませんか?
<構成/リベロエンジニア広報室>
\リベロエンジニアは採用を強化中!/
