Upgrade to Pro — share decks privately, control downloads, hide ads and more …

バクラクのモノレポにおける AI Coding のための環境整備と {Roo,Claude} ...

バクラクのモノレポにおける AI Coding のための環境整備と {Roo,Claude} Code活用事例 / AI Coding in Bakuraku's Monorepo: Environment Setup & Case Studies with {Roo, Claude} Code

AI Coding Meetup #2 Cline/RooCode/Claude Codeの活用事例 https://layerx.connpass.com/event/355449/ での登壇資料です。

Avatar for upamune / Yu SERIZAWA

upamune / Yu SERIZAWA

June 12, 2025
Tweet

More Decks by upamune / Yu SERIZAWA

Other Decks in Technology

Transcript

  1. id: upamune (うぱ) $ whoami LayerX バクラク事業部 (2022-04 -) Software

    Engineer バクラク勤怠 テックリード Mercari, Inc. / Merpay, Inc.(2018-04 - 2022-03) Roo Codeが好きで、 .roorules を読むようにしたり、 .roo ディレ クトリの導入をRoo Code本体に入れたりしました 契約しているAI Coding周りのプロダクト: Cursor, Windsurf, Augment Code, Claude Max (Claude Code) 5月末までRoo Codeをよく利用していましたが... © LayerX Inc.
  2. 今日話すこと AI Coding Agent を使うにあたっての泥臭いあれこれ、上手くいってないこと、 最後に活用事例を紹介します © LayerX Inc. Intro

    AI Coding のための環境整備 AI Coding Agentに依存しないコンテキスト整備 Roo Code / Claude Codeでの活用事例 3
  3. AI Coding活用を始めてみて、現れた具体的な課題 © LayerX Inc. モノレポでは特に開発者が違うと採用したいAI Coding Agentへのルールが異なる 開発者のチームが異なる 触るサービスも異なる

    常にリポジトリのルートディレクトリから開かれるとは限らない 触るサービスのディレクトリから開くことも AIに与えるコンテキストが大きくなりがち 6
  4. 課題1: 開発者が違うと採用したいルールが異なる © LayerX Inc. .clinerules/ と .roo/rules/ は .gitignore

    に追加して、git管理しないように それぞれに .gitkeep を置いてディレクトリだけは残しておく ルール自体は別ディレクトリで管理して、そこはgit管理下に置く 10
  5. 課題1: 開発者が違うと採用したいルールが異なる © LayerX Inc. 採用したいルールをRules Bankから .clinerules/ や .roo/rules

    に持ってくるの大変 github.com/upamune/airule を作って、好きなルールをプレビュー付きのfuzzy finder でピックアップできるように airule --from /path/to/source --to /path/to/destination で指定するので、Cline でも Roo Codeでも使える Cline: airule --from /path/to/rules-bank --to .clinerules Roo Code : airule --from /path/to/rules-bank --to .roo/rules 毎回 from, to 指定する、毎回選ぶルール選択するのが面倒な人向けに環境変数にも対応 しているので、 airule を実行するだけで良いようにもしている 12
  6. ここまでの解決方法 © LayerX Inc. 今紹介したツールを使ってね!ということではなく... AI Coding Agent の導入の障壁もAI Coding

    Agentで解決することができる 簡単に組織特有の課題に合わせたツールを即座に開発することができ、それが汎用的な ものであればOSS化も可能 Off Topic: ツールをどんどん増やしていくと、インストールの時間が増えていく... とい う問題にエレガントに対応できるaquaという素晴らしいツールがありますが、この話 は時間が余れば懇親会で... 全員開発時代のaquaで実現するローカル環境爆速セットアップ - LayerX Engineer Blog 17
  7. 課題3: AIに与えるコンテキストが大きくなりがち © LayerX Inc. 色んなファイルを参照してすぐにコンテキストウィンドウが埋まりがち コンテキストウィンドウが大きいGemini 2.5 Proを使うとコンテキストウィンドウ問題は解決するが、コンテキ ストが太ると急速に残念な動きをするようになる

    Roo Codeには最近 Intelligent Context Condensing が入って、コンテキストがコンテキストウィンドウいっぱい になったら最初の方を要約してくれる仕組みが入ったので、マシにはなっているはずだがそんなに実感はない 見るファイルが多すぎて、適切なファイルに辿り着けない Roo Codeは最近Codebase Indexingが入ったので、試せる環境は作ったが... OpenAIかOllama(Local)でEmbeddingモデルを選択してEmbeddingを作成し、QdrantというVector Databaseを利用する手法 Codebase Indexing - Roo Code Cline はCodebase Indexingをしない ref. Why Cline Doesn't Index Your Codebase (And Why That's a Good Thing) 23
  8. 課題3: AIに与えるコンテキストが大きくなりがち まだまだここは良くできると思うので、色んな手法を知りたい © LayerX Inc. Claude Codeが恐ろしいくらい上手く動いている Claude Codeは

    ripgrep (高速grepツール/Rust実装) を内蔵して、RAGを利用せず ripgrep で勝負してる 粘り強く色んなパターンで ripgrep で検索して、適切な実装、ファイルにたどり着いて いる 25
  9. コンテキストの具体例 ① © LayerX Inc. ADR (Architecture Decision Records) /

    Design Doc / Spec Notionから自動で取得してMarkdownに変換するツールを社内で開発 技術的な意思決定の記録文書・仕様 「なぜこの設計にしたか」をAIが理解できる形式で提供 DBスキーマ情報 k1low/tbls を利用 DBスキーマからドキュメントを自動生成するツール ER図、テーブル定義、リレーション情報をMarkdown形式で生成 生成してリポジトリにコミット CREATE TABLE での SQLのテーブル定義より精度が良かった 28
  10. tips: AIが自由に遊べるディレクトリ © LayerX Inc. AIにファイル生成や修正案を出力させるための一時的な作業場所 実装計画を書く plan.md とかの置き場所 ここは

    .gitignore に追加しておく このディレクトリの名前を何にするかは、人や組織によって宗派が分かれそうw 32
  11. tips: まず、実装計画を立てる © LayerX Inc. 何度も言われている話ではあるが、複雑な実装をやる場合はまず計画を立てるのが良い ClineだとPlanモード、Roo CodeだとArchitectモード、Claude Codeには今日(?)Planモ ードが入った

    z/plan.md とかに出力してもらって、レビューする 内容が良ければ、それを元に実装を開始してもらう しかし、上手くいかないこともある... タスク分解が必要 Roo CodeのOrchestratorモード、Claude Codeは plan.md を投げ込むと、良いところまで行ってくれる 33
  12. tips: 定型実装のプレイブック化 © LayerX Inc. 機能実装には、よくある定型的な手順があります。これを「実装プレイブック」として ドキュメント化しておくのがおすすめ 例えば、「ユーザーに プロダクトの利用フラグを追加する」といった、決まった一 連の流れのこと

    AIに実装計画を立てさせても、触るファイルが多いと実装計画で漏れるし、人間も触る 必要があることを覚えてないから、実装してもらってからなんか動かないになりがち このドキュメントを作っておくと、人間に対しても有用なドキュメントになる 34
  13. tips: git worktree の活用 改めて git worktree とは 1つのリポジトリで複数のブランチを同時に、別々のディレクトリとしてチェックアウトして作業できるGitの 機能

    CLI型のClaude Codeで価値が爆増: © LayerX Inc. CLIだとより簡単に並列で動かせるようになり、worktreeの価値がさらに上がった 異なるブランチごとに、複数のClaude Codeのセッションを並行実行する 36
  14. tips: git worktree の活用 git worktree を少しラップしたスクリプトを書いてリポジトリにコミットして共有 © LayerX Inc.

    MySQLやLocalStackなどのミドルウェアを使っていると、worktreeを追加したらその データも分離したい dockerでMySQLやLocalStackを実行しているので、実行時に docker volume をclone して、そのworktree作成先に docker-compose.override.yml を配置してcloneしたvolumeを 利用することでデータを分離 もちろんこのスクリプトもAI Coding Agentに実装してもらった 37
  15. Roo Code とは? アメリカの獣医の人材派遣の会社が開発しているClineのフォーク 大きな特徴: もう、Clineのフォークということは忘れて良い (Clineに入った機能がRoo Codeに入るわけではない) © LayerX

    Inc. カスタムモード: ClineではPlan/Actの2つだが、好きなモードをユーザーが定義できる Orchestrator: モードの1つとしてビルトインで提供されているモード。他のモードに切 り替えてサブタスクに切り替えて実行してくれる。 異様な開発スピード: 開発スピードが異様に速く、実験的機能を多く取り入れる 39
  16. なぜRoo Code? © LayerX Inc. Orchestratorが便利 大きなタスクをサブタスクに分解して、適切なモードに切り替えつつ実行してくれる 実験的な機能が多く入るので楽しい Codebase Indexing

    Intelligent Context Condensing Concurrent File Reads 開発がオープンで、困ったら貢献して自分で実装すれば良い feat: Add support for .roorules configuration files by upamune #2309 feat: enhance rule file loading with .roo/rules directory support by upamune #2354 40
  17. Roo Codeのカスタムモード活用 カスタムモードでは以下を指定できる © LayerX Inc. roleDefinition: カスタムモードの役割のメイン定義。システムプロンプトの最初に配置 される groups:

    利用できるツールを指定 (read, edit, browser, command) edit は実は触っていいファイルを正規表現で指定できる customInstruction: モード特有のルールを書く。システムプロンプトの後ろの方に配 置される whenToUse: いつこのモードを使うのかと言うのを書く。特に Orchestrator モード でどのモードにswitchするかで参照される 42
  18. 社内で定義しているカスタムモードの実例 ADR / Design Doc Writer Figma UI/Playwright UX Reviewer

    : Devin Instructor : © LayerX Inc. 社内のADR や Design Docの書式や、書くべき観点を指示 ペルソナを定義してのFigmaのUIレビュー Playwrightを利用してのアクセシビリティや使い勝手のレビュー Devinへ出すためのプロンプトの生成 (Devin渡すプロンプトを書くのが面倒だったので いい感じに生成してもらう) 43
  19. Claude Code の登場 © LayerX Inc. Claude Sonnet 4 /

    Claude Opus 4 が登場してから触り始めた 大体1日 $300 ~ $400 くらい使っている こちらがルールを整備していなくても、うまくやってくれる 先に話した通り、モノレポでもかなり上手く行く 「こんな曖昧な指示じゃ無理だろうな...」というプロンプトで思っていた90%くらいの ことが実現できてしまった 今の所は強烈な失敗をしてなくて、ガッカリ体験できてないので、ぜひガッカリ体験を 知りたい 45
  20. 今の新たな課題 © LayerX Inc. Claude Codeの登場により、ルール・プロンプトを頑張らなくてもだいぶいい感じに動 くようになってきた 実際、弊社のソフトウェアエンジニアたちのClaude Codeへの盛り上がりは今までのAI Coding

    Agentより大きい コードレビューがとにかく多くなった 自分がAI Coding Agent使っている時も実質コードレビューだし、他の人もAI Coding Agentで開発が加速してPull Requestを作るまでのスピードが加速 良い方法を模索中... Copilot Review, AI Coding Agentによるレビュー, CodeRabbit, Greptileなどなど... 47
  21. まとめ © LayerX Inc. AI Coding Agent の導入の障壁もAI Coding Agentで解決することができる

    整備されたコンテキストはツールを超えて活きる資産 ルールやワークフローの整備もAIにやってもらう Roo Codeはカスタムモードを設定できることが魅力(特にOrchestratorモードは強力) Claude Codeの登場により、ルール整備を頑張りすぎなくてもまともなアウトプットが 出てくるようになった AI Coding Agent触ったことない人はとりあえずProプラン($20/月)を契約して、ぜひ体験して見てください! 本格的に始めるときは、公式ドキュメントを穴が空くくらい読むことを強く推奨します Claude Code 概要 48