prwatch について
prwatch は、オープンな GitHub PR があるコントリビューター向けのトリアージツールです。対応の緊急度と理由を示して PR を並べ、コードの問題と外部要因によるブロックを区別します。
主な機能
- 01オープン PR を緊急度順に表示
- 02スコア、カテゴリ、理由を提示
- 03レビュー状況、チェック、未解決スレッドを確認
- 04外部要因のブロックとコードの問題を区別
- 05CLI と JSON レポートを提供
活用シーン
- 01複数の PR にレビューが付いた際の対応順を決定
- 02返信や修正が必要なレビュー箇所を特定
- 03デプロイ認証など外部要因のブロックを識別
- 04単一 PR の詳細な状態を確認
MCP 対応
stdio の MCP サーバーとして動作し、対応状況レポート、オープン PR の一覧、個別 PR の詳細な状態を提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
3掲載時のツール一覧 · 2 日前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| repo | string | いいえ | 任意の owner/repo フィルター。例:shadcn-labs/pdfcn。 |
| user | string | いいえ | GitHub ユーザー名。デフォルトではトークンの所有者が使われます。 |
詳細
prwatch
今すぐ対応が必要なのはどれですか? prwatch は、オープンな PR を持つコントリビューターが抱えるこの疑問に答えます。
これは実際にあった一日をきっかけに生まれました。1 つのリポジトリで 3 件の PR がオープンしており、3 件すべてに CodeRabbit のレビューがあり、作者に責任のない Vercel のデプロイ失敗が発生していました。どの PR に実際の対応が必要なのかを一目で確認する方法はありませんでした。すべての PR のすべてのレビュー スレッドを手作業で読むのは、もう古いやり方です。prwatch は、人が読んで理解できる理由とともに、オープンな PR を緊急度順にランク付けするので、最初に確認すべき PR がわかります。
インストール
要件:Node 20 以降。
git clone https://github.com/CloudCorpRecords/prwatch
cd prwatch
npm install
npm run build
npm link # or run with npx tsx src/cli.ts
認証済みのレート制限(5000 req/hr)を利用するには、GITHUB_TOKEN(または GH_TOKEN)を設定してください。トークンがなくても、未認証のレート制限(60 req/hr)で動作します。
Docker で実行する
prwatch は GHCR のコンテナーイメージとしても提供されています:ghcr.io/cloudcorprecords/prwatch。
stdio MCP サーバーとして使用します:
docker run -i ghcr.io/cloudcorprecords/prwatch
デフォルトの mcp 引数の代わりに、イメージ名の後に任意の CLI コマンドを指定できます:
docker run ghcr.io/cloudcorprecords/prwatch <command> [args]
認証
トークンは任意です。--repo モードと prwatch show は検索 API を使用しないため、トークンなしで動作します。アカウント全体のレポート(--repo を指定しない attention / list)では author: 検索を使用しますが、GitHub は一部のアカウントに対して未認証の呼び出しを制限しているため、この場合はトークンの使用をおすすめします。公開データであれば、スコープを設定していないクラシックトークンで十分です。トークンがない場合も、生の 422 エラーではなく、わかりやすいガイダンスが表示されます。
CLI の使い方
prwatch attention # rank my open PRs by urgency
prwatch attention --user octocat --repo shadcn-labs/pdfcn
prwatch attention --json # machine readable output
prwatch list # simple one line per PR
prwatch show https://github.com/shadcn-labs/pdfcn/pull/92
出力例:
[ACTION] 74 shadcn-labs/pdfcn#92
feat: add Business Letter block
- 4 unresolved review threads need a reply or code change (business-letter.tsx, business-letter.mdx)
https://github.com/shadcn-labs/pdfcn/pull/92
[READY] 45 shadcn-labs/pdfcn#93
feat: add Resume block
- Approved and green, ready to merge.
https://github.com/shadcn-labs/pdfcn/pull/93
prwatch show では、レビューの状態、結論を含むすべてのチェック、ファイル名と行番号を含む未解決のレビュー スレッド、注意度の詳細な内訳を確認できます。
MCP サーバー
CLI と同じエンジンを、Claude、Cursor、Cline 向けに stdio 経由で公開します:
| ツール | 機能 |
|---|---|
attention_report({user?, repo?}) | スコア、カテゴリ、理由を含む、ランク付けされた注意度レポート |
list_my_prs({user?, repo?}) | オープンな PR のシンプルな一覧 |
pr_status({url}) | 1 件の PR の詳細:レビュー、チェック、スレッド、注意度スコア |
Claude Code / Cursor の設定(~/.claude.json または MCP 設定):
{
"mcpServers": {
"prwatch": {
"command": "node",
"args": ["/absolute/path/to/prwatch/dist/mcp.js"],
"env": { "GITHUB_TOKEN": "ghp_your_token_here" }
}
}
}
npm run start:mcp で直接起動できます。
スコアの仕組み
すべてのオープンな PR は 50 ポイントから始まり、シグナルに応じて緊急度が増減します:
| シグナル | 効果 |
|---|---|
| レビュアーから変更を要求された | +30、カテゴリ ACTION |
| マージコンフリクト(マージできないブランチ) | +25、カテゴリ ACTION |
| 自分のコードでチェックが失敗(ビルド、テスト、lint、DCO) | 1 件につき +12、カテゴリ ACTION |
| 変更を求める未解決のレビュー スレッド | 1 件につき +8、カテゴリ ACTION |
| 承認済み、チェック成功、マージ可能 | READY、スコアの上限は 45 |
| 自分に責任のないチェック失敗(例:Vercel の「Authorization required to deploy」) | BLOCKED_EXTERNAL に分類され、緊急度は低い |
| チェックが実行中 | WAITING |
| 承認がなく、7 日以上更新なし | STALE |
スコアは 0〜100 の範囲に制限されます。カテゴリは ACTION、BLOCKED_EXTERNAL、READY、WAITING、STALE の順にランク付けされます。レポートはスコア順、次にカテゴリ順で並びます。
知っておくとよい判断基準が 2 つあります:
- 外部要因によるブロックは失敗ではありません。 メンテナーによる承認が必要なためにプレビューデプロイが失敗した場合、GitHub では「failure」と表示されますが、コードを変更しても解決しません。prwatch は既知のパターン(承認が必要、デプロイするにはサインイン、チームの承認待ち)を検出して外部要因として分類するため、緊急度が不必要に高くなることはありません。
- スレッドの解決状態は近似的に判定されます。 GitHub REST API ではレビュー スレッドが解決済みかどうかを確認できないため、作者以外からのトップレベルのレビューコメントはオープンなスレッドとして扱われます。変更を提案するコメント(コード提案、「please」、「consider」、「fix」)は対応が必要なものとして扱われます。
開発
npm install
npm test # tsx --test test/*.test.ts
npm run build # tsc, emits to dist/
npm run dev # run the CLI from source
test/fixtures/ のフィクスチャは、2026-10-13 時点の shadcn-labs/pdfcn の PR #92、#93、#94 の実際の形式をもとにしています。テストでネットワークにアクセスすることはありません。
ライセンス
MIT。Copyright (c) 2026 Rene Turcios。LICENSE を参照してください。
ツールキット
このツールは、オープンソースへの貢献作業におけるライフサイクルを構成する4つのツールのうちの1つです。すべて @reneturcios npm スコープで公開されており、各ツールは CLI と MCP サーバー(<tool> mcp)として利用できます。
- gatefile(
npx @reneturcios/gatefile)は、リポジトリの貢献条件を抽出し、コミット対象のcontribution-gates.jsonにまとめます。 - greenlight(
npx @reneturcios/greenlight)は、issue を事前チェックして(GO / RISKY / TAKEN / GATED / STALE)、checkとscanで gatefile の出力を利用し、その後、issue を確保して準備し、PR を作成します。 - claimcheck(
npx @reneturcios/claimcheck)は、期限切れの claim と、fork に置かれたままの修正を監視します。 - prwatch(
npx @reneturcios/prwatch)は、今すぐ対応が必要なものを基準に、オープン中の PR をトリアージします。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。