issueを置いておくと、朝までに実装が上がってくる

issueを置いておくと、朝までに実装が上がってくる

最近、開発の進め方が明らかに変わってきた。

きっかけは単純で、課題を思いついたら全部GitHubのissueに書くようにしただけだ。頭の中で覚えておくのをやめて、とにかく雑でもいいからissueに放り込む。バグ、気になった挙動、あとで直したい箇所、やってみたいアイデア。全部一箇所に集める。

それだけで、Claude Codeの使い方がガラッと変わった。

朝の15分でやっていること

朝、コーヒーを淹れながらClaude Codeにこう言う。

openなissueを全部確認して、優先度つけて。ついでに直近closeされたPRの内容もissueの状態に反映しておいて。

これで現状の棚卸しが終わる。昨日までに解決した話、まだ残っている話、新しく入ってきた話が整理される。

次に、優先度の高いものから順にPRを作らせる。このときlintとtestとbuildがCIで通ることを前提にして、できればE2Eまで含めて書いてくれと伝える。しばらく放っておくと、PRが並んでくる。

PRにはCodeRabbitがコメントをつけてくれる。そのコメントをClaude Codeに読ませて、妥当な指摘は直させる。的外れなやつはスルーさせる。最後に自分がざっと目を通して、問題がなければマージする。マージしたらissueを更新してクローズする。

これを毎朝ぐるぐる回す。

気づいたらPMの仕事しかしていない

このサイクルに入ってから、自分がコードを書く時間が明確に減った。

やっていることを改めて眺めると、ほとんどが「何を作るか」「どの順番で直すか」「この実装で合ってるか」を判断する作業になっている。手は動かさない。issueを書いて、レビューして、OKかNGかを決める。

つまり、PMと同じ仕事だ。

そして、このフローは全部skill化できる。毎朝のissue棚卸しも、優先度付けも、PR作成も、bot対応も、マージ後のissue更新も、手順が決まっている以上は自動化できる。できないのは「どのissueを書くか」と「最終的な動作確認」だけだ。

裏を返すと、そこ以外は全部AIに渡せる。PMボット、と呼んでいいと思う。

ボトルネックは、結局人間の方にある

じゃあ自分は何をやっているかというと、二つだけだ。

一つは、動作確認。ブラウザを開いて、実際に触って、思った通りに動いているかを確かめる。ここはまだAIには任せきれない。E2Eテストである程度カバーできても、「なんかこれ違和感あるな」みたいな感覚は人間の方が強い。

もう一つは、アイデア出し。次に何を作るか、どこを直すか、どんな機能があったら嬉しいか。issueの源泉を考える仕事だ。これは完全に止まらない。止まった瞬間、PMボットに渡すネタがなくなる。

この二つさえやっていれば、あとは勝手に開発が進む。

Anthropicの中の人がClaude Codeを10個くらい並列で走らせている、という話を以前聞いたとき、正直ピンと来ていなかった。人間一人がそんなに同時に管理できるのか、と。でも、このフローに慣れてくると納得できる。コードを書くフェーズを人間が握らなくていいなら、10個並列は無理な話ではない。issueを書く速度と、動作確認する速度が足りればいい。

生活と開発の境界が溶ける

ただ、こうなってくると別の問題が出てくる。

開発が、止まらない。

寝ている間も走っている。朝起きたらPRが並んでいる。マージする。またissueを書く。昼ごはんを食べている間にもPRが上がってくる。夜、布団に入る前に「このissue、明日の朝までにやっておいて」と言えば、翌朝までに終わっている。

物理的な制約がなくなった結果、何をやめるかを自分で決めないと、永遠に開発が続いてしまう。

昔はよかった。人間のエンジニアが休むから、開発も自然に止まった。レビューが返ってくるのが明日、というだけで、今日は他のことができた。今はそれがない。「今日はここまで」と自分で線を引かない限り、いつまでもPRが流れてくる。

これは効率化なのか、それとも逃げ場をなくしているだけなのか、時々わからなくなる。

やることがなくなる日

もう一つ、これを続けているとぼんやり見えてくるのは、「本当にやることがなくなるかもしれない」という感覚だ。

アイデアを出して、issueに書いて、動作確認する。この三つだけが残る。書くのはAI、直すのもAI、テストするのもAI、レビューのコメントに対応するのもAI。自分が担当するのは、思いつくことと、最後に「よし」と言うことだけになる。

極端なことを言えば、人間の仕事は、最後に確認してEnterを押すだけのbotになる。

PRの差分をざっと見て、Enter。CodeRabbitの指摘を直したコミットを見て、Enter。マージボタンにカーソルを合わせて、Enter。気がつくと、一日の操作の大半がEnterキーだけで済んでしまっている。

これは冗談のようで、実際そうなりつつある。自分がやっている判断の粒度が、だんだん「GO / NO GO」の二択に近づいていく。中身の微調整は全部AI側で起きていて、人間は最後の承認だけをやっている。ある意味、人間の方が一番単純な仕事をしている。

これはこれで、けっこう新鮮な状態だ。「今日のコードを書かなきゃ」というプレッシャーがなくなると、代わりに「今日のアイデアを出せているか」というプレッシャーが来る。手の速さで勝負していた世界から、思考の質と量で勝負する世界に移った感じがする。

楽になったかと言われると、微妙だ。手を動かす仕事は、慣れれば惰性でも進む。でもアイデアと判断は、惰性では出てこない。毎朝、白紙の状態から「何をやるべきか」を考える。これは意外と疲れる。

それでも、戻る気はしない

とはいえ、以前のやり方に戻りたいかというと、戻らない。

issueに書いておけば、そのうち誰か(AI)が実装してくれる。この安心感は、一度味わうと手放せない。頭の中にタスクを抱えておく必要がなくなる。忘れてもいい。気になったらissueに書いて、あとは忘れる。必要な時に、PMボットが拾ってくる。

この記事も、たぶん似たような仕組みで量産できる。書きたいテーマをissueに並べておけば、朝にはドラフトが上がっている世界は、もう目の前にある。

そこまでくると、人間がやるべきなのは「何を書きたいか」を思いつくことだけだ。

ちょうど今、それを考えている。

この記事をシェア

関連記事

記事一覧に戻る