開発をパイプライン化した
AIにissueの計画立て、実装、レビューを全て行ってもらうフローを
n8nとClaude code actionで作りました
(n8nの素振りも兼ねて作っています)
ちなみにかなり調整したもののClaudeがいい感じにn8nの動くワークフロー作ってくれました、Difyとの違いを感じますね
リポジトリ
※ローカルで最低限動く状態にしているのでProd Readyではないです、Prodにする方は適宜init-data.shなどを見直してください。
いいな〜と思ったらStarを押していってください
どのように動くか
README.mdがあるので動かし方はそちら見ていただいてざっくり仕組みだけ
- GithubのWebhookを設定して、それを起点とするワークフローをn8n側で組んでいる
- ワークフロー側ではラベルに応じてissueやprにコメントするようにしている
- 変更しやすいようにサブワークフローで切っている
以下は自分がどういうフローを組んだかをざっくり
n8nが以下の3つのフローで動いています。
計画立て
(Webhook) => 計画立て用のラベルの変更を検知 => SubFlowに => そのラベルに@claudeで指定の形式でn8n経由でコメントしてPRを作成、実装用ラベルをつけてもらう
実際設定しているコメントの内容
"@claude このissueをコードベースをもとに実装せず分析して実行計画を立てて、終わったらghコマンドを使用して既存の"workflow:ready-for-impl"ラベルをつけて"
実装
(Webhook) => 実装用のラベルの変更を検知 => SubFlowに =>そのラベルに@claudeで指定の形式でn8n経由でコメントしてPRを作成、レビュー用ラベルをつけてもらう
"@claude コメントを含めissue全体を見てからPRを作成して実装して、PRの作成にはghコマンドを使うこと。終わったらghコマンドで作成したPRに既存の"workflow:ready-for-review"のラベルをつけること"
レビュー
(Webhook) => レビュー用のラベルの変更を検知 => SubFlowに =>そのラベルに@claudeで指定の形式でn8n経由でコメントしてもらう
"@claude レビューして"
※ Claude自体が作成したPRをClaudeがレビューできないので、ここはコメントとしています
これらのフローをちょっといじることで
- Claudeが計画に自信がないとき人間用ラベルをつけるように指示
- 実装用ラベルをつけない設定にする(つまり計画のみ自動)
- レビューラベルだけをつける(レビューのみ自動)
など自動のカスタマイズが可能です。
また手元のClaude codeやCursorなどと連携して
手元のClaude codeでissueを切ってimplラベルを貼ることで非同期でタスクを任せられます。
考え方はこの記事に近い(こっちはフローの中にAIがあるので、例えば複数ラベル振り分けるとか別のことさせるとかあれば)
Github actionsで完結させてない理由
- ラベルをつけた段階でやりたいアクションなど組織によってはあるので変更できるように
- Subflowをたとえば(今後)自前のローカルLLMでやりたいとか、Claude codeをcontainerでやりたいとか、Github copilot Agentにしたいとかに変更できるような意図がある
またSlackとかのIntegrationも簡単に入れ替えられるようにしている
たとえば
- Slack(Teams)からIssueを作成し、labelを付与するwebhookなどを繋げる
- 計画立て用の内容をSlack(Teams)に送るようにする
など
上のフローを参考にすればGithub actionsだけでも完結します(多分)
「開発のパイプライン化」について
かねてから自分は開発のパイプライン化に興味があった
ただ、性能があまり良くなかったがClaude codeである程度担保されるようになったので
このような仕組みが有用になると思いたい。
また今回は挫折やらなかったこととして
自前のContainerにExecute commandしてClaude codeを動かすという方向もこれをもとに変更できるため、MAXプランの方は気にせずIssueを振ることができると思います
(セルフホステッドランナーのやり方はグレーだと思っているのでデフォルトにはしませんでした)
機能追加やるかも
- 自前のContainerで立ち上げるサブワークフローの追加
- 管理画面の追加
この辺は他のツール見ながら…
よくない点
- Overloaded Errorが起きたときどうしようもない(手動でラベル付け替えてRetry)
余談
この辺でしんどいな〜とか思っていたことが実を結んだ感じがありますね
git worktreeは脳負荷高いのであんまりやりたくないって思ってました
多分これができたと思う(もうちょいチューニングはいるけどね)
頑張らなくてもgithub眺めていればOKな感じ
現時点ではこれが一番早くて決定版…になるといいな
よかったらフォローお願いします
思いついたことをこんな感じで記事にしたり記事にならないことを呟いています
最近伸びたツイート
思想強めのツイート
Views: 0