Claudeのstandupスキルで朝会の報告をコミットとPRから作る
engineeringプラグインのstandupスキルで、Yesterday・Today・Blockersの形に朝会の報告を整える手順。GitHubやLinearをつなぐ場合と、gitログを自分で渡す場合の違いも解説します。
standupは、Anthropicがknowledge-work-pluginsで配布するengineeringプラグインのスキルの1つです。昨日やったこと、今日やること、詰まっていることの3項目に、朝会の報告を整えます。
ソース管理やチケット管理のツールがつながっていれば、昨日のコミットとPRを自分で拾って下書きにします。つながっていなければ、口頭で話す要領で作業メモを渡せば足ります。この記事では導入から、2通りの入力の使い分け、gitログを自分で渡すときの具体例、Blockersの扱いまでを順に見ていきます。
standupスキルは何を出すのか
SKILL.mdのdescriptionは「Generate a standup update from recent activity」です。使う場面として、毎日の朝会の準備、昨日のコミット・PR・チケットの動きの要約、作業のyesterday / today / blockers形式への整形、数行の走り書きを共有用の更新にまとめる作業が挙がっています。
出力の雛形は、SKILL.mdに次の形で書かれています。
## Standup — [Date]
### Yesterday
- [Completed item with ticket reference if available]
- [Completed item]
### Today
- [Planned item with ticket reference]
- [Planned item]
### Blockers
- [Blocker with context and who can help]見出しは3つだけです。YesterdayとTodayには、チケット番号があれば添えるよう雛形で指定されています。Blockersには「状況」と「誰が助けられるか」を書く枠があります。
SKILL.md全体は70行ほどで、コードを走査する処理や特別なスクリプトは含まれません。スキルが決めているのは、出力の形と、つながっているツールから何を拾うかの方針です。
engineeringプラグインを入れる
engineeringプラグインは主にCowork向けに作られていますが、READMEによればClaude Codeでも動きます。Claude Code(CLI)ではマーケットプレイスの追加とプラグインの導入を別々に行います。
claude plugin marketplace add anthropics/knowledge-work-plugins
claude plugin install engineering@knowledge-work-plugins呼び出し名には注意が要ります。READMEは「Commands」の表に/standupと書いていますが、リポジトリ上のファイルはengineering/skills/standup/SKILL.mdです。Claude Codeの公式ドキュメントによると、プラグイン内のスキルは/プラグイン名:スキル名の形で動くので、/engineering:standupが確実な呼び方です。短く/standupと打って補完に出るかは、他のスキルとの名前の重なり次第です。
導入直後に反映されないときは、/reload-pluginsコマンドでセッションを開き直さずに読み込めます。knowledge-work-pluginsは公式のマーケットプレイス名ですが、自動更新がオフの例外として公式ドキュメントに挙がっています。更新の取り込みは自分で行います。プラグイン全般の仕組みはClaude Codeプラグイン完全ガイドにまとまっています。
入力は2通り — 話すか、つなぐか
SKILL.mdは「What I Need From You」で、入力の方法を2つ示しています。
standupに渡す材料の2経路
口頭型(スタンドアロン)
「認証の移行をやった、PRを3本レビューした、APIのレート制限で詰まっている」のような一言を渡す。ツール連携は不要。
連携型(コネクタ接続)
/standupと打つだけで、コミット・PR・チケットの動きを集めて下書きにする。
READMEの表でも、standupの単独利用は「作業内容を説明する」、強化に使うのは「ソース管理・プロジェクト管理・チャット」と整理されています。
連携型で何が拾われるかは、SKILL.mdがカテゴリごとに書いています。
| つなぐもの | スキルが書く動作 |
|---|---|
| ソース管理 | スキルが書く動作最近のコミットとPR(作成・レビュー・マージ)を取り、コードの変更を大づかみに要約する |
| プロジェクト管理 | スキルが書く動作「進行中」や「完了」に動いたチケットと、次のスプリントの項目を取る |
| チャット | スキルが書く動作関連する議論や決定を探し、返事が必要なスレッドに印を付ける |
CI/CDも雛形の図にはビルドとデプロイの状況として載っていますが、If Connectors Availableの本文に動作の記述があるのは上の3カテゴリです。CIの結果まで下書きに入れたいときは、依頼文で明示すると確実です。
同梱のコネクタ設定を確認する
プラグインに入っている.mcp.jsonには、Slack・Linear・Asana・Atlassian・Notion・GitHub・PagerDuty・Datadogの接続先が書かれています。standupに関係するのは、ソース管理のGitHub、プロジェクト管理のLinear・Asana・Atlassian、チャットのSlackです。
CONNECTORS.mdの表では、ソース管理の「含まれるサーバー」はGitHubで、GitLabやBitbucketは「他の選択肢」の扱いです。GitLabを使うチームは、自分でMCPサーバーを足す必要があります。
接続の初回には認証が必要です。Claude Codeで/mcpを開き、各サーバーのOAuth認証を済ませます。GitHubのMCP接続でつまずいたときは、GitHub MCPプラグインがHTTP 400で失敗する原因が切り分けの入口になります。MCPサーバー側の使い方はGitHub MCPサーバーの使い方とSlack MCPサーバーをClaude Codeにつなぐ手順に詳しく書いています。Linearを使うチームには、Claude Code Linear連携の記事があります。
連携なしで、gitログを自分で渡す
コネクタの認証を済ませていない日や、社内のGitサーバーで使えるMCPが無い場合は、gitのログを先に取り、そのまま渡す方法が手堅いです。Claude Codeならリポジトリを直接読めるので、依頼文の中でコマンドを実行させることもできます。ここでは手元で先に実行する形で示します。
# 自分のコミットを、昨日0時から今日0時までの範囲で
git log --all --author="$(git config user.email)" \
--since="yesterday 00:00" --until="today 00:00" \
--pretty=format:'%h %s'
# 自分のPRの最近の動き(GitHub CLIを入れている場合)
gh pr list --author "@me" --state all --limit 10月曜の朝は、金曜のコミットが「昨日」に入りません。--since="last friday"のように取りたい範囲を指定します。出力はそのまま貼って、次のように頼みます。
/engineering:standup 以下は昨日の自分のコミットとPR一覧です。
Yesterdayに整理して、Todayは未完了のPRから推測してください。
Blockersは私が口頭で言う内容だけを書いてください。
(ここにgit logとgh pr listの出力を貼る)この例は、公式の記述にあるStandaloneの入力方法を、gitのコマンドに当てはめたものです。生成される文面の細部は、渡すログと依頼文によって変わります。
最後の1行を書き添えるのには理由があります。次の節で触れるとおり、BlockersはSKILL.mdがツールから拾う対象に入れていないからです。
引数で絞り込めるのか
SKILL.mdの先頭にはargument-hint: "[yesterday | today | blockers]"があります。Claude Codeの公式ドキュメントでは、argument-hintは「補完のときに期待される引数を示すヒント」と説明されています。この値は表示用の手がかりであって、処理を分岐させる仕組みではありません。
SKILL.mdの本文には、$ARGUMENTSのような引数を受け取る記述がありません。公式ドキュメントによると、本文に引数を置く場所が無いときは、Claude Codeが入力をARGUMENTS: <値>という形で末尾に添えます。したがって/engineering:standup blockersと打てば、Claudeには「blockersが指定された」という情報が渡ります。その意図をどう読むかは、モデルの解釈に委ねられます。
挙動を安定させたいなら、引数に頼らず依頼文を書くほうが確実です。
/engineering:standup yesterday— Yesterdayの節だけ欲しいと伝える/engineering:standup Blockersだけ。〇〇の件がレビュー待ちで止まっている— 口頭の内容を渡す
引数の仕組みは、SKILL.mdを自分のチーム向けに書き換えるときに効いてきます。本文に$ARGUMENTSや$0を置けば、渡した値を決まった位置に差し込めます。
Blockersは人が書く欄として使う
SKILL.mdがソース管理から拾うのは、コミットとPRです。プロジェクト管理からはチケットの動きを拾います。チャットからは返事が必要なスレッドを探します。詰まっていることを直接取り出す動作は、書かれていません。
コミットの履歴だけから、「APIのレート制限で止まっている」のような事情は読み取れません。レビュー待ちのPRが長く放置されていれば手がかりにはなりますが、それが障害なのか単なる待ち時間なのかは、本人にしか分かりません。
そのため運用では、次のように役割を分けると安定します。
- Yesterday: コミットとPRから下書きを出させ、本人が確認する
- Today: 未完了のPRや「進行中」のチケットから下書きを出させ、本人が優先順位を直す
- Blockers: 本人が一言書く。助けてほしい相手がいれば名前も書く
雛形の「Blocker with context and who can help」という欄は、この分担を想定した形だと読めます。
出力を共有先に合わせる
SKILL.mdのTipsには、毎朝の習慣にすること、生成後にBlockersや優先順位の文脈を足すこと、Slackやメール、チームの朝会ツールに合わせた書式を頼むことが書かれています。
出力はMarkdownで出てくるため、Slackに貼るなら「Slackの書式に直して」と頼みます。SKILL.mdがチャットで書いているのは関連スレッドの確認までで、投稿の操作は書かれていません。送信まで任せる前に、権限と宛先を自分で確認してください。
他のスキルとの使い分け
engineeringプラグインには、/review・/debug・/architecture・/incident・/deploy-checklistのコマンドもあります。standupは「一日の作業の棚卸し」に特化していて、判断を伴う作業は他のスキルの担当です。
- 技術的負債の優先順位を付けたい: tech-debtスキル
- リリース前の確認表が欲しい: deploy-checklist
- 障害対応と振り返りを回したい: incident-responseスキル
つまずきやすい点
落とし穴
MCPの認証が切れていて、空の下書きが出る
コネクタが未認証だと、standupは材料を拾えません。材料が空のまま整形すると、「昨日の活動なし」に近い内容の下書きになりかねません。/mcpで各サーバーの状態を見てから実行し、期限切れの繰り返しに悩むならMCP OAuthが毎日Connection expiredになる原因の切り分けが役に立ちます。
もう1つは、作業ツリーの外に残る作業です。ローカルにしか無いコミットや、ブランチを切ってまだ上げていない変更は、リモートのPR一覧には出てきません。git log --allでローカルのブランチも対象にしておくと拾えます。
まとめ
standupスキルは、朝会の報告を「Yesterday / Today / Blockers」に整える小さなスキルです。ツールをつなぐと材料集めまで自動で、つながなくてもgitログを渡せば同じ形に仕上がります。
下書きの精度を決めるのは、渡す材料の範囲です。Blockersだけは材料の対象外なので、毎朝の最後に自分で一言足す運用にすると、報告が「作業ログの写し」で終わらずに済みます。
参照した一次ソース
この記事の記述は、次の一次ソースと照合しています。更新時に参照先が変わった場合は一覧も更新します。