月曜の朝、コーヒーを淹れる前にJIRAを開き、GitHubのPR一覧を眺め、Slackの#progressチャンネルを遡り、Excelに数字を転記する。気づけば11時、まだ「今週のサマリー」の1行目も書けていない。週次進捗レポート作成は、PMの月曜午前を最も無駄に消費する作業の代表格です。
「AIに書かせている」という人もいますが、聞いてみると数字は結局自分で拾い、AIには文章の体裁を整えさせているだけというパターンが多い。本当に効くのは、数字の出処を仕組みで固定し、PMが書くのは“所感”だけにする分業です。
この記事では、Claude CodeのSkillとMCPを使って、JIRA・GitHub・Slackから稼働情報を自動収集し、定型フォーマットで週次レポートのドラフトを毎週月曜の朝に生成する運用を、現場で動かせる粒度で解説します。
なぜ「AIで週次レポート自動化」がうまくいかないのか
ChatGPTで週報を書かせる試みは多くのチームが通った道ですが、ほとんどが3つの理由で形骸化しています。
- 数値が幻覚する:AIに「今週の進捗を要約して」とだけ頼むと、もっともらしい数字を勝手に作る
- フォーマットが毎回ぶれる:先週は「進捗・課題・来週」、今週は「サマリー・トピック・リスク」と構造が変わり、読み手が疲弊する
- 所感とファクトが混ざる:AIが書く「順調に推移しています」が、本当に順調なのか単なる定型句なのか判別できない
Claude Codeの強みは、Skillで構造を固定し、MCPでデータの出処を明示し、所感だけPMに残すという分業設計が自然にできることです。
Claude Codeを「進捗レポート生成器」にする全体像
必要な要素は3つです。
- データ取得MCP:JIRA・GitHub・Slackの3経路を、Claude Codeから読み取り専用で繋ぐ
- レポート生成Skill:取得データを所定のフォーマットに整形し、所感欄だけ空けたMarkdownを生成する
- CLAUDE.md運用ルール:「数値は必ずMCP経由」「過去の数値を引用しない」「所感は人間が書くまで空欄」を明記
この3点が揃えば、毎週月曜にPMがやることは「Claude Codeを起動してSkillを呼び、空欄の所感を埋める」だけになります。
ステップ1:データ取得MCPを設定する
.mcp.json に、JIRA・GitHub・Slackの3つのMCPサーバーを定義します。
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_TOKEN}"
}
},
"jira": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-jira"],
"env": {
"JIRA_HOST": "${JIRA_HOST}",
"JIRA_EMAIL": "${JIRA_EMAIL}",
"JIRA_API_TOKEN": "${JIRA_API_TOKEN}"
}
},
"slack": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-slack"],
"env": {
"SLACK_BOT_TOKEN": "${SLACK_BOT_TOKEN}"
}
}
}
}
ポイントはすべて読み取り専用権限のトークンを発行することです。レポート生成は破壊的操作ではないため、書き込み権限を付与する必要はありません。GitHub PATはContents: readとPull requests: readのみ、JIRAは閲覧専用ロール、Slackはchannels:historyとusers:readに絞ります。トークンは.envに置き、.gitignore登録を忘れずに。
ステップ2:レポート生成Skillを定義する
.claude/skills/weekly-progress/SKILL.md を作り、フォーマットと「数値の出処」を厳格に固定します。
---
name: weekly-progress
description: 過去7日間のJIRA・GitHub・Slack稼働情報を集計し、所定フォーマットの週次進捗レポートMarkdownを tmp/reports/{YYYY-MM-DD}-weekly.md に出力する。所感欄は空欄のままにする
disable-model-invocation: true
allowed-tools: Read, Write, Bash, mcp__github__*, mcp__jira__*, mcp__slack__*
---
# 週次進捗レポート生成Skill
## 入力
- なし(実行日から過去7日を自動算出)
## データ取得ルール
1. JIRA:プロジェクトキー `PROJ` で「過去7日にステータス変更されたチケット」を取得し、Done/In Progress/Blockedに分類
2. GitHub:リポジトリ `org/repo` で「過去7日にマージされたPR数」「オープン中のPR数」「クローズされたIssue数」を取得
3. Slack:`#incident` と `#progress` チャンネルで「過去7日のメッセージ数」と「重大度Highで言及されたインシデント件数」を取得
## 出力フォーマット
- ファイル名:`tmp/reports/{YYYY-MM-DD}-weekly.md`(YYYY-MM-DDは実行日)
- 章立て:①サマリー(自動)②進捗(自動・数値表)③インシデント(自動)④リスク兆候(自動)⑤PM所感(**空欄**)⑥来週の重点(**空欄**)
## 厳守
- 数値は必ずMCP経由で取得し、推測・補完しない
- データが取れなかった項目は `(取得失敗)` と明記する
- ⑤と⑥は空欄のまま出力し、PMが手で埋める
disable-model-invocation: trueにすると、AIが勝手に呼び出さず、PMが/weekly-progressと明示的に叩いたときだけ動作します。これは数値レポートのSkillでは特に重要です。
ステップ3:CLAUDE.mdに運用ルールを書く
プロジェクトルートのCLAUDE.mdに、週次レポートに関わる原則を明記します。
## 週次進捗レポートの運用ルール
- 数値は必ず `weekly-progress` Skill経由で取得する
- 過去のレポートに記載された数値を引用してはいけない(古い数値の伝播を防ぐ)
- レポートの「PM所感」「来週の重点」はPMが手で埋める。AIに書かせない
- データ取得失敗の項目は `(取得失敗)` と明記し、無理に補完しない
- レポートの保管場所は `docs/reports/weekly/` で、ファイル名は `YYYY-MM-DD-weekly.md` で固定
CLAUDE.mdは、Claude Codeが起動時に自動で読み込むプロジェクト固有のメモリです。ここに「数値を幻覚させないための制約」を書いておくと、Skillの中身を都度確認しなくても自律的にルールを守ります。
ステップ4:実際の運用フロー
毎週月曜の朝、PMがやることは次の3アクションだけです。
- ターミナルで
claudeを起動し、/weekly-progressと入力 - 生成された
tmp/reports/{date}-weekly.mdを開き、空欄の「PM所感」「来週の重点」を埋める docs/reports/weekly/に移動・コミットし、Slackに共有リンクを貼る
慣れれば10分で終わります。重要なのは、所感を書くときに「数値はもうそこにある」状態でPMが思考を始められることです。月曜の認知リソースは、データ収集ではなく「来週どこに賭けるか」に使うべきものです。
期待効果と運用上の注意点
導入チームから報告される効果は次の3つです。
- 月曜午前のレポート作成時間が3時間→30分:データ収集が消えるため、所感と判断にだけ集中できる
- 数値の信頼性が上がる:MCP経由のため、PMが手集計でミスする余地がなく、ステークホルダーからの数字確認質問が減る
- レポートのフォーマットが安定する:Skillで固定されるため、読み手が毎週同じ場所を読めばよくなる
一方で、初期設定で気をつけるべき落とし穴も3つあります。
- MCPトークンの権限を最小化する:書き込み可能なトークンを渡すと、AIが意図せず操作する事故の温床になる
- Skillでフォーマットを変えたら全員に共有する:個人ごとにフォーマットがズレるとレポート整備の意味がなくなる
- 「データ取得失敗」を放置しない:取れなかった項目があるなら、原因を潰すか、フォーマットからその章を外す。空欄のまま運用しない
まとめ
- 数値はMCPで自動取得・所感はPMが書くという分業がClaude Code活用の本質
- Skillでフォーマットを固定すれば、レポートの品質が個人依存から仕組み依存に変わる
- CLAUDE.mdに「数値を幻覚させない制約」を書くことで、運用が崩れにくくなる
- 月曜午前を取り戻すと、PMの一週間の質が変わる
ここまでの手順は「動く形」を作るための入口です。実務でレポートを“読まれる形”に育てるには、KPI設計・差分の可視化・経営報告との接続といった運用設計が必要になります。
AIX-102『進捗・課題・リスク管理をAIで加速する運用設計』 では、本記事のレポート生成Skillをベースに、KPI連携・課題エスカレーション・リスク登録簿との連動まで含めた、PM運用全体の自動化設計を体系で学べます。月曜の3時間を“判断と計画”に振り直したいPMには、最短の導線になるはずです。