---
name: cross-repo-investigate
description: >
  複数リポジトリを横断して調査・影響分析を行う。
  「横断調査」「影響調査」「クロスリポ」「cross-repo」「複数リポジトリで調べて」
  「他のリポジトリに影響ないか」「APIの利用箇所を全リポで探して」などで使用。
  リポジトリ間の依存関係やAPI呼び出し、DBスキーマの影響範囲を調査し、
  結果をObsidian VaultにMarkdownレポートとして出力する。
argument-hint: <リポジトリ名カンマ区切り> <調査指示>
---

# Cross-Repo Investigate

複数リポジトリを並列に調査し、統合レポートを生成するスキル。

## 引数

```
$ARGUMENTS = "<リポジトリエイリアス1>,<エイリアス2>,... <調査指示>"
```

例: `素材登録,taco,予約 予約のDBスキーマ変更が他リポジトリに影響しないか調査`

## 手順

### Step 1: 引数パース

`$ARGUMENTS` を解析する:
- 最初のスペースまでをカンマで分割 → リポジトリエイリアスのリスト
- 最初のスペース以降 → 調査指示（プロンプト）

引数が空または不正な場合は、使い方を表示して終了:

```
使い方: /cross-repo-investigate <リポジトリ名カンマ区切り> <調査指示>
例: /cross-repo-investigate 予約,taco,決済 予約のDBスキーマ変更が他に影響しないか
```

### Step 2: エイリアス解決

このスキルと同じディレクトリにある `repos.yml` を Read ツールで読み込む。
repos.yml はリスト形式で、各エントリは `path` と `aliases` を持つ。
指定されたエイリアスに一致するエントリの `path` を取得する。

複数エイリアスが同じpathに解決された場合は、重複を排除して1つのAgentのみディスパッチする（例: `予約,booking` → 同じpathなので1つだけ調査）。

未知のエイリアスがあった場合は、全エントリのaliasesを展開してエラー表示する。

### Step 3: 並列調査の実行

**リポジトリごとに Agent tool で Explore subagent を並列ディスパッチする。**

全てのAgentを**1つのメッセージ内で同時に**呼び出すこと（逐次ではなく並列）。

各Agentに渡すプロンプト:

```
以下のリポジトリを徹底的に調査してください。thoroughness: "very thorough"

## 調査対象
- リポジトリ名: {エイリアス名}
- パス: {絶対パス}

## 調査指示
{ユーザーの調査指示}

## 調査方法
- Grep, Glob, Read ツールの path 引数に「{絶対パス}」を指定して探索すること
- まず README.md や主要な設定ファイル（package.json, pyproject.toml, Cargo.toml 等）を読んで概要を把握する
- 調査指示に関連するファイル、関数、クラス、テーブル定義を具体的に特定する
- 関連コードは行番号付きで引用する

## 出力形式
以下の形式で報告すること:

### 概要
（リポジトリの主要技術スタック・構造の簡潔な説明）

### 調査結果
（調査指示に対する具体的な発見。関連ファイルパス・行番号・コード断片を含める）

### 外部依存・影響ポイント
（他リポジトリへの依存や影響の可能性があるポイント:
  - API呼び出し（エンドポイントURL、クライアントコード）
  - 共有データベーステーブル
  - 共通ライブラリ・パッケージ
  - メッセージキュー・イベント
  - 環境変数・設定値の共有）
```

### Step 4: 結果集約とレポート生成

全Agentの結果が返ってきたら:

1. 各リポジトリの調査結果を整理する
2. リポジトリ間の依存関係・影響範囲を横断的に分析する
3. 以下のテンプレートで `03_Product/investigations/YYYY-MM-DD-{テーマ}.md` に出力する
   - `{テーマ}` は調査指示から短い日本語キーワード（10文字以内）を生成する
   - 同名ファイルが存在する場合は末尾に `-2`, `-3` と連番を付ける

#### 出力テンプレート

```markdown
---
created: {今日の日付 YYYY-MM-DD}
tags: [investigation, cross-repo]
repos: [{調査したリポジトリエイリアスのカンマ区切りリスト}]
---

# 調査: {調査テーマ}

## サマリ

{横断的な調査結果のまとめ。結論を先に書く。影響の有無を明確に記載。}

## リポジトリ別調査結果

{各リポジトリのAgentの結果をここに配置。リポジトリ名を### 見出しにする}

## 影響分析

{リポジトリ間の依存関係・影響範囲の分析:
- どのリポジトリがどのリポジトリに依存しているか
- 変更時に影響を受ける具体的な箇所
- リスクの高さ（高/中/低）と理由
- 推奨される対応策}
```

### Step 5: 完了報告

レポートファイルのパスをユーザーに伝える。
