プロダクトバックログ
弊社ではプロダクトバックログをNotionとリポジトリの.docsディレクトリで二重管理し、開発の計画と実行はGitHub Issueで行います。Notion・リポジトリ・GitHubの3つをそれぞれの得意な領域で使い分けることで、開発中の速度と製品管理の両方を確保します。
ツールの棲み分け
Notion — プロダクトバックログの管理
Notionはタイムライン、カレンダー、ボードなど複数のビューを持つため、プロダクトバックログの全体像を把握するのに適しています。一方でAPIが遅く、開発中にリアルタイムで参照するには不向きです。
Notionにはバックログの要約とメタデータのみを保持します。本文(仕様や背景の詳細)はNotionのブロック書き込みが遅いため管理しません。
リポジトリの.docsディレクトリ — バックログの本文
プロダクトバックログの本文はリポジトリの.docsディレクトリにMarkdownで管理します。各ファイルのfrontmatterにnotion-page-idとnotion-reference-idを記録し、Notionのレコードとの同期を可能にします。
---
notion-page-id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
notion-reference-id: "TASK-002"
---
製品開発における意思決定やプロダクトバックログなど、コードから読み取れない情報をここに残します。開発の計画(Issueの内容)はリポジトリには残しません。
GitHub Issue — 開発の計画と実行
GitHub CLIは高速なため、IssueをデータベースとしてClaudeCodeから直接読み書きします。Issueには開発の目的と計画を記録し、セッションが変わっても作業が引き継がれるようにします。ローカルにファイルを増やす必要もありません。
IssueにはNotionのTASK-002のようなIDを含めます。プルリクにも同じIDを含めることで、Notion側で自動的にプルリクが関連付けされます。
開発の流れ
プロダクトバックログからIssueを作成し、1セッション1Issueで開発を進めます。
/notion-backlogでNotionからプロダクトバックログを取得する/backlogでバックログをリポジトリの.docsディレクトリに作成する- コードや仕様を分析し、開発が衝突しないIssueを作成する
/issueで担当するIssueを参照し、開発を開始する/prでプルリクを作成する。別セッションからプルリクを再開することもできる
計測結果
2026-02-21にIssue 77件、PR 30件のリポジトリで計測した結果です。
Issueの取得
| 件数 | body | 時間 | データ量 |
|---|---|---|---|
| 100件 | あり | 0.8秒 | 44KB |
| 100件 | なし | 0.8秒 | 5KB |
| 10件 | あり | 0.6秒 | 14KB |
PRの取得
| 件数 | body | 時間 | データ量 |
|---|---|---|---|
| 100件 | あり | 1.0秒 | 99KB |
| 10件 | あり | 0.5秒 | 21KB |
Notion MCPとの比較
| 操作 | gh CLI | Notion MCP |
|---|---|---|
| 一覧取得(100件) | 約1秒 | 非対応(1件ずつfetch) |
| 1件取得(body付き) | 約0.5秒 | 2〜3秒 |
| 認証切れ | なし(ローカルトークン) | 頻繁に発生 |
| 一括操作 | 可能 | 不可 |
GitHub CLIの特徴
- 100件でも10件でも取得時間はほぼ同じ(0.5〜1秒)。APIのラウンドトリップが支配的で、件数による差は小さい
- body付きでもなしでも速度はほぼ変わらない。データ量は増えるが転送時間への影響は軽微
--jsonオプションで必要なフィールドだけ取得できる