🗂️

多リポ Issue を 1 リポに集約する「ideation-hub パターン」

に公開

困りごと: 多リポ管理の Issue 散在

サービスを 3〜5 個のリポジトリで構成しているとよくある問題:

  • バックエンドリポに Issue
  • 管理画面リポに Issue
  • 顧客向け Web リポに Issue
  • モバイルアプリリポに Issue
  • 共通ドキュメントリポに Issue

これだと:

  1. 全体の進捗が見えない(どのリポに何があるか把握できない)
  2. 重複 Issue が立つ(複数リポにまたがる機能を別々に立ててしまう)
  3. AI も把握できない(Claude Code が複数リポの Issue を横断調査するのが面倒)
  4. 優先順位が付けにくい(リポ毎の優先度しか見えない)

解決策: ideation-hub リポジトリ

全リポの Issue を集約する専用リポを作る、という運用パターンです。命名は何でも良いですが、本記事では ideation-hub と呼びます。

「企画リポ」と「実装リポ」を分離し、企画は ideation-hub に集約、実装は各リポで行う、という構成です。

例え話: 図書館の検索カウンター

複数の書庫(リポジトリ)に本(コード)が分散していても、検索カウンター(ideation-hub) が 1 箇所にあれば、利用者は迷わず本を探せます。
書庫を直接彷徨い歩かせるより、カウンターで案内してもらう方が効率的、という考え方です。

仕組み

1. Issue は ideation-hub にだけ立てる

機能・バグ・改善などすべての Issue を ideation-hub リポに集約します。実装リポでは Issue 機能を使わない(または使うとしても内部技術タスクのみ)。

2. PR から Issue を参照する

実装リポの PR で、ideation-hub の Issue をクロスリポ参照で紐付けます。

# backend-repo のコミットメッセージ or PR 本文
Closes <org>/ideation-hub#42

# または
Refs <org>/ideation-hub#42

GitHub は別リポへの参照もリンクとして扱ってくれるので、ideation-hub 側の Issue から関連 PR が一覧で見えるようになります。

3. 命名規則: 略称 + 番号

実装リポの PR タイトルや commit メッセージには ideation-hub の Issue 番号を入れる規約を作ると、後で追跡しやすい。

feat(notify): プッシュ通知を家族へ送信 (ih#42)
fix(api): バリデーションエラーの修正 (ih#58)

ih#42 のように略称を決めると、行末でも視認性が高い。

「現場の声 → プロダクト化」の動線を作る

ideation-hub の真価は、事業側・CS の現場で拾った声を、開発の意思決定の場に最短経路で届けることにあります。

Claude を「現場の通訳」にする

CS や営業の現場では「お客様に〇〇を言われた」という生の声があります。これを Claude(co-work モード等のチャット環境) で要約・整理し、/customer-voice のような skill で ideation-hub の Issue に変換するフローです。

[顧客の声]              [Claude で整理]              [ideation-hub]
"アプリが重い"   ───►   再現条件を抽出          ───►   Issue: "起動時パフォーマンス改善"
"〇〇が分かりにくい" ──►   類似要望を集約          ───►   Issue: "オンボーディング UX 改善"
"△△機能が欲しい" ──►   類似 Issue 検索 + マージ ───►   Issue 既存に投票追加

ポイントは:

  • CS/営業は「テキストで投げる」だけで済む(GitHub の使い方を覚えなくて良い)
  • Claude が要件の言語化・重複排除・既存 Issue との突合を引き受ける
  • ideation-hub に積まれる時点でプロダクトのバックログとして整備された状態

意思決定の場が ideation-hub になる

集約された Issue を見て、PO/PdM と開発リーダーが意思決定します。

ロール やること
PO/PdM 顧客価値・優先度・スコープ判断(Go/No-Go)
開発リーダー / CTO 技術的実現可能性・コスト評価
CS/営業 顧客文脈の補足・現場の温度感
AI(subagents) 多角レビュー・既存実装との整合性チェック

/idea-review/prioritize で、Issue ごとに AI が技術評価コメントを残し、人間がそれを踏まえて判断する、という流れになります。

CS が言葉で投げてから 数分で「優先度判定可能な Issue」になる — これが現場感を失わずにプロダクト化できる仕組みです。

「実務」と「意思決定」の役割分担

この運用に切り替えると、人間と AI の役割が明確になります。

作る判断・止める判断・優先順位付けといった「意思決定」だけが人間の仕事として残り、その重要度は相対的に上がります。

「AI が代替するのは作業、人間が担うのは判断」という整理が、ideation-hub の運用を通じて自然に実現されます。

利点

A. 全体俯瞰

ideation-hub の Issue 一覧 = プロダクトのバックログになります。経営者・PdM・開発者が同じ画面を見て話せる。

B. AI が把握しやすい

Claude Code に「現在のバックログから優先順位の高い順に 5 件出して」と聞けば、ideation-hub だけ見れば済みます。

/prioritize /feature-idea /idea-review のような skill は、集約リポでの実行を前提に設計できます。

# Claude Code で実行
/prioritize          # ideation-hub の全 Issue を優先度評価
/feature-idea ...    # ideation-hub に Issue を立てる
/idea-review #42     # ideation-hub の Issue #42 を Go/No-Go 判定

C. 複数リポにまたがる機能を 1 つの Issue で扱える

「通知機能を追加したい」という 1 つの目的で、BE と FE 両方の作業が必要なケース:

ih#42 通知機能の追加
   ├─ PR <org>/backend-repo#150  (API + DB マイグレーション)
   └─ PR <org>/admin-web#88      (設定画面)

両 PR が Closes <org>/ideation-hub#42 で紐付くので、Issue クローズと共に両方が完了したと分かります。

D. PR レビューが軽くなる

実装 PR は技術的な内容に集中できます(要件は ideation-hub に書いてある)。PR 本文は「Closes ih#42」とだけ書いて、レビュアーは Issue で要件を確認する流れ。

ディレクトリ構成例

ideation-hub/
├── README.md           ← 運用ルールを書く
├── CLAUDE.md           ← Claude Code 用のプロジェクト指示
├── SERVICE.md          ← サービス全体像(ドメイン用語・主要フロー)
├── DESIGN.md           ← デザインガイド
├── docs/               ← 営業資料・既存ドキュメント
│   ├── product-intro.md
│   └── sales-deck.md
├── specs/              ← 機能仕様
│   └── notification-spec.md
├── decisions/          ← 設計判断の記録(ADR)
│   └── 0001-notification-arch.md
├── mocks/              ← UI モック(GitHub Pages で公開)
│   └── notification-settings.html
├── scripts/            ← Bot コメント等の共通スクリプト
│   └── gh-bot-comment.py
└── .claude/
    ├── agents/         ← 役割特化エージェント
    │   ├── pm.md
    │   ├── cto.md
    │   └── ...
    └── skills/         ← custom skill
        ├── feature-idea/
        ├── develop-issue/
        ├── close-issue/
        ├── prioritize/
        └── ...

ポイント:

  • CLAUDE.md で Claude Code に関連リポのパス・規約を伝える
  • mocks/ を GitHub Pages で公開すれば Issue から URL 参照可能
  • scripts/ に Bot コメント投稿等を置けば、複数 skill から再利用

CLAUDE.md の例

## 関連リポジトリ

本リポジトリと同じ親ディレクトリ(`../`)に配置。

| リポジトリ | ローカルパス | 用途 |
|-----------|-------------|------|
| backend-repo | `../backend-repo/` | バックエンド(Go / PostgreSQL) |
| admin-web | `../admin-web/` | 管理画面(Next.js) |
| customer-web | `../customer-web/` | 顧客向け Web(Next.js) |
| mobile-app | `../mobile-app/` | モバイル(Flutter) |

## 関連リポジトリ調査前の準備

各リポを最新化:

```bash
git pull origin main
for repo in backend-repo admin-web customer-web mobile-app; do
  (cd "../$repo" && git checkout main && git pull origin main)
done

Issue 管理

全リポジトリの Issue は <org>/ideation-hub に集約する。
各リポの PR からは Closes <org>/ideation-hub#<番号> で紐付ける。


## Bot コメントによる役割演出

ideation-hub の Issue にエージェント別のコメントをつける際、**GitHub App の Bot 経由**で投稿すると視覚的に分かりやすくなります。

```python
# scripts/gh-bot-comment.py
# 引数: Issue 番号
# 標準入力: コメント本文
# → GitHub App として投稿(個人アカウントではなく)

skill から Bot コメントを投げる際のフォーマット:

<img src="https://api.dicebear.com/9.x/personas/svg?seed=<Seed>" width="24"> **<名前>(<役割>)**

<コメント本文>
エージェント Seed 名前 役割
pm Yuki 結城 はるか PM
cto Takeshi 堺 剛志 CTO
uiux-designer Miku 水瀬 みく UI/UX Designer
be-engineer Kenta 黒田 健太 Backend Engineer
fe-engineer Riku 藤原 りく Frontend Engineer
qa-engineer Haruto 森 はると QA Engineer

アバター付きでコメントが並ぶと、Issue が「会議録」のように見えて、関係者全員が状況を把握しやすくなります

運用ルール

実際に運用する際の Tips:

マイルストーン = スプリント

2 週間スプリントなら、Sprint-2026-04-1 Sprint-2026-04-2 のようなマイルストーンを作って、Issue を割り当てます。

ラベルで属性管理

ラベル 用途
idea アイデア段階。技術評価が必要
feature 機能追加
bug バグ修正
refactor リファクタリング
priority:high 優先度高
affects:backend affects:admin 影響範囲

優先度評価の自動化

/prioritize skill で全 Issue を一気に優先度評価できます:

/prioritize
 Issue を取得
 Issue ICE スコア(Impact × Confidence × Ease)で評価
 スコア順にソート
 上位を Bot コメントで通知

注意点

過度な集約は逆効果

「実装リポでも内部 Issue を立てたい」という需要は残ります(リファクタリング・技術的負債管理など)。機能・要件レベルの Issue だけ集約し、純粋な技術タスクはそれぞれのリポに残す、という線引きが必要です。

Issue 番号の重複

各リポでも Issue 機能を有効にしている場合、#42 がリポ毎に存在します。クロスリポ参照では必ず <org>/<repo>#<num> のフルパスで書く運用にしましょう。

Bot コメントの認証

GitHub App の Private Key 管理が必要です。~/Downloads/<app-name>.private-key.pem のようにローカルに置き、scripts/gh-bot-comment.py で読み込む形が一般的。

まとめ

  • 多リポを跨ぐ Issue は ideation-hub という集約リポにまとめる
  • 実装リポの PR は Closes <org>/ideation-hub#<num> で紐付け
  • ideation-hub の CLAUDE.md / SERVICE.md / DESIGN.md が AI の知識源
  • skill と subagent はこの集約リポで定義 → 全リポを横断調査可能に
  • Bot コメントで Issue が「会議録」のように見える

次回(#5)はIssue 駆動開発を Claude Code で完全自動化するで、ideation-hub から実装 PR まで全自動で進めるフローを解説します。

Discussion