---
name: concept-researcher
description: 特定の概念・技術・ライブラリなどについてリサーチし、markdownファイルにまとめるスキル。「〇〇について調べて」「〇〇のリサーチをして」「〇〇についてまとめて」「〇〇を深掘りしたい」「〇〇の概要を知りたい」「〇〇って何？」といった場面で使う。軽い概要から深い調査まで、深さを自動判断または明示的に指定できる。何かを調べてmarkdownに残したい、知識を整理したいと言われたら積極的にこのスキルを使うこと。
argument-hint: "[quick|deep] トピック名"
---

# Concept Researcher

特定の概念・技術・ライブラリなどについてリサーチし、markdownファイルとしてカレントディレクトリに残すスキル。

## 深さのレベル

2つのモードがある。ユーザーが明示的に指定した場合はそれに従い、指定がなければプロンプトの内容から自動判断する。

### Quick モード

**いつ使うか**: 概要を知りたい、ざっくり理解したい、特定の関数やAPIの使い方を知りたい場合。
「〇〇って何？」「〇〇の概要教えて」「〇〇の使い方調べて」のような軽いリクエスト。

**自動判断の手がかり**: 「概要」「ざっくり」「簡単に」「使い方」「何？」といった表現、または対象が単一の関数・API・小さな概念の場合。

**やること**:

1. Web検索、公式ドキュメント、Context7（利用可能なら）などで情報を収集する
2. カレントディレクトリに `{topic}.md` を1ファイル作成する

**出力フォーマット**:

````markdown
# {トピック名}

## 概要

- 〇〇は△△するためのライブラリ
- □□という問題を解決する

## 主な特徴

- 特徴1の説明。
  - 補足があればインデントで
- 特徴2の説明

## 基本的な使い方

- `functionName(arg)` で〇〇できる
- コード例:
  ```ts
  const result = doSomething();
  ```

## 関連情報

- [公式ドキュメント](URL)
- 関連: 〇〇, △△
````

**文体のルール**:

- 1項目は長くても2行以内に収める
- 「。」で文が終わったら改行して次の箇条書きにする
- 長い説明文を書くのではなく、短い箇条書きを積み重ねる

セクション構成はトピックに応じて柔軟に増減してよい。例えば「類似技術との比較」「背景・経緯」など。

### Deep モード

**いつ使うか**: 対象を深く理解したい、体系的に整理したい、複数の側面から調べたい場合。
「〇〇を深掘りしたい」「〇〇について詳しく知りたい」「〇〇を体系的にまとめて」のようなリクエスト。

**自動判断の手がかり**: 「深掘り」「詳しく」「体系的に」「しっかり」「じっくり」といった表現、または対象が広い概念・設計思想・アーキテクチャなど多面的な理解が必要なもの。

**やること**:

#### フェーズ1: 初期リサーチ

1. 対象について広くリサーチする
2. カレントディレクトリに `{topic}/` ディレクトリを作成し、`overview.md` を書く
3. overview.mdの末尾に「深掘りできそうなポイント」をリストアップする
4. ユーザーに提示して、どこを深掘りしたいか聞く

#### フェーズ2: 深掘り

1. ユーザーが興味を示したポイントについて、より詳しくリサーチする
2. トピックごとに個別のmarkdownファイルを `{topic}/` ディレクトリ内に作成する
3. 必要に応じて overview.md にリンクを追加する
4. ユーザーにさらに深掘りしたい点がないか確認する

フェーズ2は何度でも繰り返せる。ユーザーが満足するまで、あるいは調べ尽くすまで続ける。

Deepモードでも文体はQuickモードと同じルールを適用する（短い箇条書き、1項目2行以内、「。」で改行）。深さは文の長さではなく、トピックの網羅性と掘り下げの粒度で表現する。

**ディレクトリ構成の例**:

```

React Server Components/
├── overview.md # 全体像と深掘りポイントのリスト
├── レンダリングモデル.md # レンダリングモデルの詳細
├── データ取得パターン.md # データ取得パターン
└── SSRとの比較.md # SSRとの比較

```

## リサーチソースの選択

対象に応じて適切なソースを自動選択する。

| 対象                             | 優先ソース                            |
| -------------------------------- | ------------------------------------- |
| ライブラリ・フレームワーク       | Context7 → Web検索 → 公式ドキュメント |
| プログラミング概念・設計パターン | Web検索 → 技術ブログ・論文            |
| プロジェクト内の技術             | ローカルコード読解 → Web検索で補完    |
| 一般的なトピック                 | Web検索                               |

複数のソースを並行して調べられる場合は、サブエージェントを活用して効率的にリサーチする。

## ファイル命名規則

- ファイル名・ディレクトリ名はユーザーが使ったトピック名をそのまま使う（例: `React Query.md`, `型クラス/`）
- markdownの中身は日本語で書く

## 注意点

- Quickモードでも情報が薄すぎないようにする。箇条書きでも、各項目に十分な説明を付ける
- Deepモードのフェーズ1で出すoverview.mdは、それ自体が独立して読める品質にする
- 情報源のURLは可能な限りmarkdown内に残す（後から参照できるように）
- 既にカレントディレクトリに同名のファイル/ディレクトリがある場合は、上書きするか確認する
- コード例を含める場合は、動作する最小限の例を心がける
