standupgen について
standupgenは、入力されたGitコミットとプルリクエストの記録から、事実に基づくMarkdownのスタンドアップを作成します。状況報告を準備する人向けで、入力記録のみを使い、作者での絞り込みと件数表示にも対応します。
主な機能
- 01Markdownのスタンドアップを作成
- 02PRをマージ済み・進行中・終了に分類
- 03入力されたコミット順を維持
- 04作者による記録の絞り込み
- 05活動件数を返却
活用シーン
- 01最近のコミットから報告を準備
- 02状態別にプルリクエストを要約
- 03特定の作者の活動報告を作成
- 04報告内容と件数を照合
MCP 対応
MCPクライアントに`generate_standup`ツールを提供します。クライアントがコミットとプルリクエストの記録を渡し、任意で作者と日付ラベルを指定すると、報告と件数を返します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
1掲載時のツール一覧 · 1 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| author | string | いいえ | 指定すると、この作成者のコミットとプルリクエストのみを含めます(完全一致)(任意) |
| commits | array | いいえ | 報告するコミット(任意) |
| date_label | string | いいえ | スタンドアップ見出しのラベル(任意、デフォルトは "Yesterday") |
| pull_requests | array | いいえ | 報告するプルリクエストの活動(任意) |
詳細
standupgen
記憶を頼りにスタンドアップ報告を書くと、特に大きく感じたことに偏り、実際にリリースされた小さな修正がいつの間にか抜け落ちてしまいます。standupgen は逆のアプローチを取ります。アクティビティ記録(Git のコミットとプルリクエストのアクティビティ)を渡すと、その記録だけを基にスタンドアップ報告を作成し、何も追加したり脚色したりしません。結果は事実に基づき、ローカルで生成され、どこかに貼り付ける前に自分で編集できます。
生成されるスタンドアップ報告は短い Markdown で、最大 3 つのセクションから構成されます。
- 完了 — 渡したすべてのコミットを渡した順に表示します。それぞれハッシュの先頭 7 文字を付け、その後にマージ済みのプルリクエストを番号順に表示します。
- 進行中 — 状態が
openedまたはupdatedのプルリクエストを番号順に表示し、それぞれに状態を付けます。 - マージせずにクローズ — 状態が
closedのプルリクエストを番号順に表示します。
内容のないセクションは完全に省略されます。アクティビティがまったくない場合、スタンドアップ報告は見出しと「記録されたアクティビティはありません。」のみになります。テキストとともに、コミット、マージ済み、進行中、クローズの件数も含まれるため、数値と文章は常に一致します。
省略可能な author フィルターを使うと、特定のユーザーにスタンドアップ報告を絞り込めます。独自の author フィールドが存在し、その値が完全に一致するコミットとプルリクエストのみが含まれ、件数もその絞り込み後のセットを基に算出されます。author のない記録はフィルター後に残りません。見出しのラベルは既定で「Yesterday」で、date_label で設定できます。
不正な入力(配列ではないリスト、オブジェクトではないエントリ、ハッシュ、subject、title の欠落、空文字列、または文字列以外の値、欠落、整数以外、1 未満、または重複したプルリクエスト番号、opened / updated / merged / closed 以外の状態、空の author または date label)は、該当するパスを示す検証エラーになります(例:pull_requests[1].number must be an integer >= 1)。スタンドアップ報告が一部だけ生成されることはありません。計算は純粋かつローカルです。ネットワークも設定も使わず、リポジトリも読み込みません。読み込むのは渡された記録のみです。
CLI
npx @reneturcios/standupgen generate --input args.json
npx @reneturcios/standupgen --version
args.json には引数オブジェクト全体が含まれます。
{
"date_label": "Yesterday",
"commits": [
{ "hash": "a1b2c3d4e5", "subject": "Fix retry backoff", "author": "rene" },
{ "hash": "f6e7d8c9b0", "subject": "Add export button", "author": "rene" }
],
"pull_requests": [
{ "number": 42, "title": "Retry backoff", "state": "merged", "author": "rene" },
{ "number": 43, "title": "Dark mode", "state": "opened", "author": "rene" },
{ "number": 40, "title": "Old experiment", "state": "closed", "author": "rene" }
]
}
commits と pull_requests はどちらも省略可能で、既定値は空です。出力オブジェクトは JSON として出力されます。
{
"standup": "## Standup — Yesterday\n\n### Done\n- Fix retry backoff (a1b2c3d)\n- Add export button (f6e7d8c)\n- Merged #42: Retry backoff\n\n### In progress\n- #43: Dark mode (opened)\n\n### Closed without merging\n- #40: Old experiment",
"counts": { "commits": 2, "merged": 1, "in_progress": 1, "closed": 1 }
}
生成されるスタンドアップ報告は次のとおりです。
スタンドアップ — Yesterday
完了
- リトライのバックオフを修正(a1b2c3d)
- エクスポートボタンを追加(f6e7d8c)
- #42 をマージ:リトライのバックオフ
進行中
- #43:ダークモード(opened)
マージせずにクローズ
- #40:古い実験
終了コード:成功時は 0、実行時エラー時は 1(読み込み不能または無効な入力ファイル、無効な入力を含む)、使用方法エラー時は 2。
MCP サーバー
npx -y @reneturcios/standupgen mcp
MCP クライアントの設定:
{
"mcpServers": {
"standupgen": {
"command": "npx",
"args": ["-y", "@reneturcios/standupgen", "mcp"]
}
}
}
ツール
-
generate_standup— Git のコミットとプルリクエストのアクティビティから、事実に基づくスタンドアップ報告を作成します。commits(配列、省略可能、既定値[]) —{hash, subject, author?}オブジェクトとしてのコミット。hashは先頭 7 文字が表示されます。pull_requests(配列、省略可能、既定値[]) —{number, title, state, author?}オブジェクトとしてのプルリクエスト。numberは正の整数で、セット内で一意である必要があります。stateはopened、updated、merged、closedのいずれかです。author(文字列、省略可能) — 指定すると、この author のコミットとプルリクエストのみが含まれます(完全一致)。author のない記録は除外されます。date_label(文字列、省略可能、既定値"Yesterday") — スタンドアップ報告の見出しに付けるラベル
{standup, counts}を返します。countsは、フィルター後のセットにおける{commits, merged, in_progress, closed}です。
Docker
docker run -i ghcr.io/cloudcorprecords/standupgen
docker run --rm -v "$PWD:/w" ghcr.io/cloudcorprecords/standupgen generate --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 つのサーバーを複数のクライアントで再利用できます。