テックエイド
AI・業務自動化

Claude Codeで週次進捗レポートを自動生成|PMの月曜午前を取り戻す実装レシピ

#Claude Code #週次レポート #進捗管理 #PM自動化 #MCP
Claude Codeで週次進捗レポートを自動生成|PMの月曜午前を取り戻す実装レシピ

月曜の朝、コーヒーを淹れる前に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つです。

  1. データ取得MCP:JIRA・GitHub・Slackの3経路を、Claude Codeから読み取り専用で繋ぐ
  2. レポート生成Skill:取得データを所定のフォーマットに整形し、所感欄だけ空けたMarkdownを生成する
  3. 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: readPull requests: readのみ、JIRAは閲覧専用ロール、Slackはchannels:historyusers: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アクションだけです。

  1. ターミナルで claude を起動し、/weekly-progress と入力
  2. 生成された tmp/reports/{date}-weekly.md を開き、空欄の「PM所感」「来週の重点」を埋める
  3. 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には、最短の導線になるはずです。