sizecheck について
sizecheckは、変更ファイルの差分量、変更されたエクスポート、ディレクトリの広がりから、プルリクエストの影響範囲をローカルで評価するツールです。リスクや差分量の大きいファイルを示し、大規模な変更には分割案を提示します。
主な機能
- 01スコアとリスク区分の算出
- 02ファイル数と行数の集計
- 03トップレベルディレクトリ別の変更集計
- 04差分量が多い上位5ファイルの表示
- 05大規模変更の分割案の提示
活用シーン
- 01プルリクエストのレビュー負荷の評価
- 02差分量が最も多いファイルの特定
- 03別々の変更に分けられるディレクトリ群の特定
MCP 対応
MCPクライアントに`score_blast_radius`ツールを公開し、スコア、リスク、集計、ディレクトリ別内訳、差分量の多いファイル、分割案を返します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
1掲載時のツール一覧 · 1 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| files | array | はい | プルリクエストで変更されたファイル(1 つ以上) |
詳細
sizecheck
プルリクエストが1つのファイルに3行だけの変更を加える場合もあれば、リポジトリの半分にまたがって3,000行を変更する場合もあり、レビューの負担は同じではありません。sizecheck は変更されたファイルの一覧(各ファイルのパス、追加・削除された行数、任意で変更されたエクスポートシンボル数)を受け取り、影響範囲レポートにまとめます。
- スコアとリスク — 1つの整数スコアです。変更行数(追加行数と削除行数の合計)に、変更されたエクスポートシンボル1つにつき25ポイント、最初のディレクトリを超えるトップレベルディレクトリ1つにつき10ポイントを加算します。スコアはリスク区分に対応します。100未満は
small、100~399はmedium、400~999はlarge、1000以上はhugeです。 - 合計 — ファイル数と、追加行数、削除行数、変更行数、変更されたエクスポートシンボル数の合計です。スコアを常に入力値と照らし合わせて確認できます。
- ディレクトリごとの分布 — トップレベルディレクトリごとに変更をまとめます(パスにディレクトリがないファイルは
"(root)"として扱います)。変更行数の降順、次にディレクトリ名の昇順で並べます。 - 変更の多いファイル — 変更行数が最も多いファイルを5つ表示します。同数の場合はパスの昇順で並べ、特に詳しく確認すべきファイルを先に表示します。
- 分割の提案 — リスクが
largeまたはhugeの場合、最大のものを除くすべてのディレクトリグループを、個別にマージできる変更部分として一覧表示します。リスクがsmallまたはmediumの変更や、単一のディレクトリに収まる変更には提案はありません。
変更された各ファイルには、一意で空ではないpathと、0以上の整数であるaddedおよびdeletedの値が必要です。
exports_changedは省略可能(デフォルトは0)で、指定する場合は0以上の整数でなければなりません。kindも省略可能(デフォルトは"code")で、指定する場合は"code"、"test"、"docs"、"config"、"other"のいずれかでなければなりません。kindは検証されますが、スコアには影響しません。無効な入力の場合は、問題のあるパスを示す検証エラー(例:files[0].added must be an integer >= 0)が返され、部分的なレポートは生成されません。計算は純粋かつローカルで実行されます。ネットワークや設定は不要で、渡された入力以外のファイルを読み込むこともありません。
CLI
npx @reneturcios/sizecheck score --input args.json
npx @reneturcios/sizecheck --version
args.jsonには引数オブジェクト全体を記述します。
{
"files": [
{ "path": "src/api.ts", "added": 120, "deleted": 30, "exports_changed": 3 },
{ "path": "src/api.test.ts", "added": 80, "deleted": 10, "kind": "test" },
{ "path": "docs/api.md", "added": 25, "deleted": 5, "kind": "docs" }
]
}
レポートはJSONとして出力されます。
{
"score": 355,
"risk": "medium",
"files_count": 3,
"added": 225,
"deleted": 45,
"churn": 270,
"exports_changed": 3,
"by_directory": [
{ "directory": "src", "files": 2, "churn": 240 },
{ "directory": "docs", "files": 1, "churn": 30 }
],
"hottest_files": [
{ "path": "src/api.ts", "churn": 150 },
{ "path": "src/api.test.ts", "churn": 90 },
{ "path": "docs/api.md", "churn": 30 }
],
"split_suggestions": []
}
スコアは、変更行数270 + 25 × エクスポート3件 + 追加ディレクトリ1つ × 10 = 355です。
終了コード:成功時は0、実行時エラー時(読み取り不能または無効な入力ファイル、無効な入力を含む)は1、使用方法のエラー時は2です。
MCP サーバー
npx -y @reneturcios/sizecheck mcp
MCP クライアントの設定:
{
"mcpServers": {
"sizecheck": {
"command": "npx",
"args": ["-y", "@reneturcios/sizecheck", "mcp"]
}
}
}
ツール
-
score_blast_radius— 変更されたファイルから、プルリクエストの影響範囲をスコア化します。files(配列、必須、1件以上)—{path, added, deleted, exports_changed?, kind?}オブジェクトとして指定するファイル。pathはセット内で一意である必要があります。
{score, risk, files_count, added, deleted, churn, exports_changed, by_directory, hottest_files, split_suggestions}を返します。
Docker
docker run -i ghcr.io/cloudcorprecords/sizecheck
docker run --rm -v "$PWD:/w" ghcr.io/cloudcorprecords/sizecheck score --input /w/args.json
開発
npm install
npm run build # tsc -> dist/
npm test # tsx --test test/*.test.ts (pure local, no network)
npm run dev # run the CLI from source
ライセンス
MIT — Copyright (c) 2026 Rene Turcios
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。