reviewer という AI エージェントが作ったドキュメントやコード差分をレビューするためのツールを作っている
Table of Contents
reviewer という AI エージェント用のツールを作っている。
これは何? #
AI エージェントが生成したドキュメントやコードを、人間がレビューしやすいように表示するためのツール。 Markdown ファイルまたは unified diff から HTML ページを作成し、ブラウザで表示する。 ページ上の要素にコメントをつけ、“Submit Review” することでレビュー内容を AI エージェントに渡せる。
AI エージェントが動作している様子も表示される。 レビュー結果を受けて生成物に変更があれば、ページは自動で更新される。 どのように変更したのかを AI エージェントがコメントに返信することもできる。
使い方 #
リリースバイナリを AI エージェントから見える場所に置くか、Homebrew で brew install handlename/tap/reviewer を実行すればインストールできる。
フルに機能を使うためには Claude プラグインも必要。
以下のコマンドでインストールできる。
$ claude plugin marketplace add handlename/reviewer
$ claude plugin install reviewer@reviewer
Claude Code 以外の場合は reviewer mcp を MCP サーバーとして登録する。
あとはレビューしたいものが出てきたら、AI エージェントのセッション上でコマンド /review-doc を実行するか、「reviewer で〇〇をレビューしたい」と伝えれば OK。
対象の生成物が HTML 化されてブラウザで表示される。
方針 #
自分にとって必要なものだけを実装する #
日々自分で使いつつ、自分にとってのレビューしやすさを求めて少しずつ改良を加えている。
- レビュー対象の間にコメントが挟まると読みにくい → コメント表示位置はサイドパネルに限定
- もともとは Markdown ファイルだけが対象だった。でも diff もレビューしたいなぁ → diff レビュー機能を追加
逆に、自分にとって必要のない機能は切り捨てている。
- diff の split 表示
- コメントのインライン表示切り替え
など。
インストール・アップデートしやすいこと #
Go で書かれており、バイナリを一つ配置するだけでインストールが完了する。
Claude プラグインに含まれる skill には「 reviewer agent-skill explain を参照せよ」とだけ書かれており、実際の内容は reviewer コマンドに同梱している。
これにより、コマンド本体とのバージョンドリフトが発生しないようにしている1。
実際の SKILL.md はこんな感じ。
description はキーワードその他で多少長くなっているが、本文は一文しかない。
---
name: review-doc
description: Review specification documents, Markdown notes, and unified diffs with the reviewer MCP server, which renders them as structured HTML and hosts a live, in-page human-agent review loop. The human leaves gutter comments on document blocks, or comments on line ranges and whole files of a diff — optionally carrying a ```suggestion block for the agent to apply — and submits; the agent edits and replies inline; the page reloads automatically. Use when a user asks to review, refine, or iterate on a Markdown specification together, or to have a human review the changes the agent just made. Triggers include "review this spec", "仕様書をレビューしたい", "let's review this document together", "この変更をレビューして", "review my diff".
license: MIT
---
# Review Doc Skill
Run `reviewer agent-skill explain` and follow its output exactly.
開発 #
例によって 100% バイブコーディング。 複雑なロジックは存在しないし、永続化するデータもないので AI エージェントにゴリゴリ開発させている。
はじめはレビュー画面の見た目が「いかにも AI が作りました」みたいな感じだったが、 ui-skills を使ったらよさげになった。
日中の業務でドッグフーディングして、気になった点を書き溜め。 業務後や週末にまとめて実装している。 初めの頃は業務と並行して AI エージェントに開発させたりもしていた2が、バイブコーディングとはいえ意識の片隅を占有され続けるのはしんどさを感じたのでやめた。
今回のようなツール開発に限らず、「AI に投げればすぐできるから」という理由で何でもかんでも手を出すと、どれも中途半端になってしまうという自戒がある。 いま何をやるべきなのかを判断して、本当に必要なことだけをやろう。
なぜ作ったのか #
AI エージェント登場以降、コードを書くよりもレビューすることのほうが圧倒的に多くなった。
レビューの際、Markdown や git diff を直接眺めて、「このファイルの何行目のこれはこうしたい」のような指示をプロンプトに書くのは面倒くさい。
Claude Code のデスクトップアプリや antigravity cli にはこれを簡略化するための機能が備わっている34が、なんとなくしっくりこなかった。
コード差分については今まで通り GitHub 上の Pull Request でレビューしてもいいが、commit/push する前にレビューしたかった。
なぜ自作したのか #
レビューのためのツールというと、difit や Crit 、ターミナルで動作する Hunk などがすでに存在する。
もともとは difit に影響を受けて、同様の使用感で spec などの Markdown ファイルをレビューするツールがほしいと思ったのがきっかけ。
作り始めた当初は Crit や Hunk の存在を知らなかった。
自身の用途にマッチするのであれば、それらを使わせてもらえば十分だろう。
目的を達成するだけなら、前述の通りほぼ同じ目的の既存のツールがすでに存在するので、それらを使ったほうが手間がかからない。 余計な電力も使わないのでエコだろう。
大抵のツールはネット上を探せば大抵のものは誰かが先に作っている。 自分で作るのは、エディタを自分好みに拡張するようなもの、庭いじりの一環だ。 少しずつ庭を育てていくのは楽しい。
趣味である以上、本人の欲求を満たせるのであればそれでよいのではないか。 AI エージェントが自作するハードルを下げまくったせいで、似たようなものがあふれる世の中になっていそうではあるが・・・。
「楽しい」以外の自作のいいところを一つ挙げておくと、自分好みに、他のユーザーの顔色をうかがうことなく、必要な機能だけを持たせられること。 破壊的な変更も自分の都合で入れられる。 自分が使いたいものを気楽に育てられるというのは、心理的なハードルが低くて良い。
おわり #
「こういうツールを作っているので使ってほしい!」というよりは、「最近こんなものを作って遊んでいます」という近況紹介のつもりで書いた記事でした。 少なくとも自分が使っているうちは役に立っているということなので、引き続き改良していきたいところ。
-
このあたりの記事を参考にしている AI フレンドリーな CLI を開発するテクニック ↩︎
-
業務で使うツールなので業務中にやっててもセーフ・・・なはず。 ↩︎