AIエージェント「Closure」
最初は GitHub App だった「Closure」
Section titled “最初は GitHub App だった「Closure」”当初、PRをレビューする GitHub App「Closure」を開発していました。
PR作成時、もしくは「/closure」とコメントするとレビューしてくれました。
また、「.github/closure-review-rules.md」にレビュー時の観点などを記載すると、その内容に沿ってレビューしてくれました。

仕組みとしては、「Closure」用のサーバーを用意し、Goで実装したサーバーでGitHubからWebhookを受け取り、Closureにレビューを依頼する構成でした。
sequenceDiagram
participant Dev as 開発者
participant GH as GitHub
participant SV as Go Server
participant CL as Closure
Dev->>GH: PR作成 / Ready for Review
GH->>SV: Webhook POST (pull_request)
SV->>SV: 署名検証
SV->>GH: JWT認証 → インストールトークン取得
SV->>GH: PR diff 取得
SV->>GH: .github/closure-review-rules.md 取得
SV->>CL: レビュー指示
CL-->>SV: レビュー結果
SV->>GH: PRレビュー投稿 (closure-review[bot])
レビュー精度も高く気に入っていましたが、「修正までしてくれたら」と思い、改良し始めました。
当初は、GitHubのPRコメントに「ここを修正して!」と書くと対応してくれる仕組みを考えていました。しかし、実現しようとすると処理が複雑になり、開発の負担が大きくなってきました。
また、「PRを出すまでレビューできない」ことへの不満も大きく、いっそエージェントそのものを作ろうと考え始めました。
AIエージェント「Closure CLI」
Section titled “AIエージェント「Closure CLI」”当初はデスクトップのチャット形式を考えましたが、OSごとにGUI開発の事情が異なるため、CLIとして開発することにしました。
将来的にWindowsでも使えるよう、Rustで開発を始めました。
こだわったのは、ClaudeやCodexのようなリッチなターミナルUIです。しかし、実際に作ってみると、想像以上に大変でした。
カーソル位置や表示行数の計算を間違え、意図した位置にカーソルが表示されなかったり、スクロールが正しく動かなかったりしました。
MVP版の使い心地はなかなか良く、日々使う中で自分に合わせてカスタマイズを重ね、少しずつ機能を増やしていきました。
これまでボトルネックになっていたレビューや確認の時間を、Closureによって大きく短縮できました。

当初の目的であったPRレビューもコマンドで対応しています。

今後に向けて
Section titled “今後に向けて”現在のClosure CLIでは、AIエージェントとのチャットに加え、PR作成前にコードを確認できるレビュー機能も実装しています。
GitHub Appから始まったレビューの仕組みを手元のCLIに移したことで、実装、レビュー、修正の流れをPR作成前に完結できるようになりました。
今後も実際の開発で使いながら、必要な機能や使い勝手を少しずつ改善していきます。