コドモン Product Team Blog

株式会社コドモンの開発チームで運営しているブログです。エンジニアやPdMメンバーが、プロダクトや技術やチームについて発信します!

並列化の先の課題「タスク管理」: 向き合って気づいた作る原動力

こんにちは!コドモン開発部の岡村 亮太です!

4月17日は恐竜の日ですね。私はブラキオサウルスが好きです🦕

「それ、AIでよくない?」

Claude Codeを使い始めた頃、使いこなしたくてAI関連の記事を読み漁っていました。読めば読むほど感じたのは、「AIに頼めばなんでもできてしまう」という感覚。気づいたら、ずっとこの一言が頭から離れなくなっていました。

勉強のために何か作ろうとしても、「それAIでいいじゃん」と思ってしまう。 正直、モチベーションはかなり下がっていました。

でも、あるとき、組織の課題を解決するために文字起こしアプリを作ったと自慢してきたエンジニアがいました。

その時、悔しい〜〜っと思ったのと同時に、

「AIで、チームのために何か作れるかも」そう思った瞬間、全部が変わりました。

今回は、AIを活用して仲間のために作ったもの、そしてそこから感じたことをリアルにお伝えしたいと思います。

並列実行で、実装は一気に加速した

ちょうど取り組んでいるプロジェクトは、同じような対応を多数のAPIに適用し、なるべく早く解決していくことが求められていました。

まずは横展開するために、Claude CodeのSkillsという仕組みを使い、プロジェクト固有のルールや作業ごとの手順を定義しました。

そして、定義したSkillsをなるべく並列で効率よく実行するために、並列実行用のSkills(parallel-executing)を作りました。

/parallel-executing Skills, タスク1, タスク2...

1コマンド打つだけで、こんな流れが全自動で動きます。

  • worktreeを自動作成(ブランチも自動生成)
  • worktreeごとに最小限のコンテナ(PHP-FPM + Apache)を起動
  • エージェントを並列起動してコードを書く・テストを実行
  • PRを作成

worktreeごとに独立したコンテナが起動するため、複数のエージェントが並列で動作しても互いに干渉しません。それぞれが専用の環境で、実装から動作確認まで完結できる構成です。

今回自作した背景として、各エージェントが指定されたSkillsに沿って確実にタスクをこなし、動作確認まで責任を持って完遂してほしいため、指定したSkillsの内容をエージェントに直接注入する仕組みを採用しています。 また、動作確認の環境として、worktreeごとに最小限のコンテナを起動してテストを実行できるようにしました。これによりエージェント自身が実装の妥当性を判断できます。

この仕組みを活用することで、方針が固まったタスクをSkillsとして定義し、チームメンバーが並列で進められるようになり、大量のタスクを効率的にさばけるようになりました。

でも、なぜか疲れるようになった

AIが大量のタスクを進めてくれるようになり、多い日だと1日に3〜5人で20〜30件のPRを作成しています。

タスクの進捗はかなり上がったのですが、下記の課題が浮き彫りになりました。

  • 「どのPRが今どうなってるんだっけ…?」
  • 「CIが落ちてるの、気づいてなかった…」
  • 「前のレビューで指摘したことがまた失敗している…」
  • 「AIが手空きになっているから、次のタスクを渡さないと💦」

スピードは上がったのに、なぜか疲れる。

原因はシンプルでした。

ボトルネックが、実際に手を動かして実装するところから、タスクの管理へと移っていたのです。

タスク管理ツール「Kura」

この問題を解決するために、タスクをレビューするだけの状態まで自動で育てる仕組みを作っています。

名前は「Kura」です。(現在試験運用中)

GitHubの状態を定期的にポーリングして、最大6並列でタスクを自動で拾い上げ、次のステータスへと自動で進めていきます。

ISSUEから始まり、実装・テスト・PR作成・CI・AIレビュー・指摘修正まで、自動で進みます。

ISSUE
  ↓ 自動でworktreeを作成・実装・テスト
PR作成
  ↓ CIの結果を監視
CI通過
  ↓ AIレビュー(Copilotや蓄積したレビューパターンで自動確認)
指摘があれば自動修正 → 再度CIへ
  ↓
人間が最終確認できる状態

Kuraは裏でずっと動いています。朝、起動しておくだけ。あとは何もしなくていいんです。

最大6並列で空いているエージェントに自動でタスクをアサインし、それぞれが独立したworktreeで作業を進めていきます。作業が終わったエージェントにはすぐ次のタスクが割り当てられるので、AIが暇になる時間がありません。

気づいたら人がレビューできる状態になっていて、最後の確認をして承認・マージするだけです。

任せるところは任せて、人間が対応すべきことに集中する。Kuraは邪魔をしません。 その間に人間は、次のタスクの設計や、効率よく横展開できる仕組みづくりに頭と時間が使えます。

そして、人がレビューした内容はKuraが蓄積していきます。「このチームはこういう指摘をする」「このリポジトリではこの書き方がNG」そういったパターンをKuraが学習し、次のAIレビューに活かしていく。使えば使うほど、蔵が育っていく感覚です。

まだ荒削りな部分もありますが、チームで使いながら改善を繰り返して、Kura自体も一緒に成長させていけたらと思っています。

気がついたら「愛(AI)」で周りが満たされていた

今回紹介したのはほんの一部で、コドモンでは、

「こんな便利ツール作ってみました!」

「こんなSkills作ってみました!」

そんな声が、あちこちから飛び交っています。

この雰囲気、仲間が作ったもので溢れているこの環境が、個人的にはたまらなく好きです。

もちろん、世の中には便利なツールもAIもあふれています。 並列実行やタスク管理自体も、特別新しいものではありません。

「じゃあ、わざわざ作らないで、既存のものを使えばいいじゃないか」その通りだと思います。

でも、使っていると気になることってありませんか?

「ここがこうだったらいいのにな〜」 「これ、今の自分たちには少し合わないんだよな〜」

日常のちょっとした困りごとや、組織ならではのニッチな課題。そういうものに、既製品はどうしてもフィットしきれない部分があると思います。

そんなとき、AIを使って自分たちのための仕組みを自分たちで作ってみるのも、今の時代ならではの選択肢だと思っています。

そして何より、仲間が作ったものって、愛着が湧いて無性に使いたくなるし、「自分も何かやりたい!」ってなるんですよね。それがまた誰かのために動く原動力になって、そんな循環がコドモンには起きている気がしています。

何を作るかではなく、誰のために作るか

冒頭でも書いた通り、何か作ろうと思っても上がらなかったモチベーションは、誰かのために作ると思うと自然と湧いてきました。

これをやったら、誰かに「すごい!」って言ってもらえるかも

これができれば周りが少しでも楽になるかも

そう思うだけで、やる気が満ち溢れてくるんです。

誰かのためにエンジニアとして何かを作るって、めちゃくちゃ楽しいじゃないですか。 そしてその誰かは、意外と身近にいます。解決されていない課題(=宝)も、すぐそこに山のように転がっています。

働いている中で「これがあればいいのにな〜」「ここが改善されればいいのにな〜」こんな声が聞こえたらチャンスです!誰かに先を越される前にやってしまって、「やってみました〜!!」と胸を張って言いましょう。

あなたの「やってみました〜!!」の積み重ねが、誰かの「やってみよう!!」にきっと繋がります。