Claude Media
Claudeのstandupスキルで朝会の報告をコミットとPRから作る

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は「一日の作業の棚卸し」に特化していて、判断を伴う作業は他のスキルの担当です。

つまずきやすい点

落とし穴

MCPの認証が切れていて、空の下書きが出る

コネクタが未認証だと、standupは材料を拾えません。材料が空のまま整形すると、「昨日の活動なし」に近い内容の下書きになりかねません。/mcpで各サーバーの状態を見てから実行し、期限切れの繰り返しに悩むならMCP OAuthが毎日Connection expiredになる原因の切り分けが役に立ちます。

もう1つは、作業ツリーの外に残る作業です。ローカルにしか無いコミットや、ブランチを切ってまだ上げていない変更は、リモートのPR一覧には出てきません。git log --allでローカルのブランチも対象にしておくと拾えます。

まとめ

standupスキルは、朝会の報告を「Yesterday / Today / Blockers」に整える小さなスキルです。ツールをつなぐと材料集めまで自動で、つながなくてもgitログを渡せば同じ形に仕上がります。

下書きの精度を決めるのは、渡す材料の範囲です。Blockersだけは材料の対象外なので、毎朝の最後に自分で一言足す運用にすると、報告が「作業ログの写し」で終わらずに済みます。

参照した一次ソース

この記事の記述は、次の一次ソースと照合しています。更新時に参照先が変わった場合は一覧も更新します。

  1. github.com/anthropics/knowledge-work-plugins/blob/main/engineering/sk…
  2. github.com/anthropics/knowledge-work-plugins/blob/main/engineering/RE…
  3. github.com/anthropics/knowledge-work-plugins/blob/main/engineering/CO…
  4. code.claude.com/docs/en/skills
  5. code.claude.com/docs/en/discover-plugins
この記事を共有:XはてブLinkedIn