research-report について
JSON形式の調査結果をMarkdownレポートにまとめるスキルです。トピック設定とフィールド定義を読み込み、目次とカテゴリ別の詳細を作成し、不確かな値を除外します。
主な機能
- 01結果JSONとフィールド定義の読み込み
- 02目次に表示する指標の選択
- 03Pythonレポート生成スクリプトの作成
- 04入れ子や複雑な値の整形
- 05不確実または空の値の除外
活用シーン
- 01ディレクトリ内の調査結果の集約
- 02レポート目次への指標表示
- 03カテゴリ別Markdown詳細の生成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ weizhena/ deep-research-skills --skill research-reportインストール後、Claude Code で/research-reportを入力して読み込まれたか確認します。
詳細
Research Report - 要約レポート
トリガー
/research-report
ワークフロー
ステップ 1:結果ディレクトリの特定
現在の作業ディレクトリで */outline.yaml を探し、トピックと output_dir の設定を読み込みます。
ステップ 2:任意の要約フィールドを確認
すべての JSON 結果を読み込み、目次の表示に適したフィールド(数値、短い指標など)を抽出します。例:
- github_stars
- google_scholar_cites
- swe_bench_score
- user_scale
- valuation
- release_date
request_user_input を使用して、ユーザーに次の内容を尋ねます:
- 項目名以外に、目次に表示するフィールドはどれですか?
- JSON 内の実際のフィールドに基づく動的な選択肢リストを提示します
ステップ 3:Python 変換スクリプトを生成
{topic}/ ディレクトリに generate_report.py を生成します。スクリプトの要件:
- output_dir 内のすべての JSON を読み込む
- fields.yaml を読み込み、フィールド構造を取得する
- 各 JSON のすべてのフィールド値を網羅する
- 値に [uncertain] が含まれるフィールドをスキップする
- uncertain 配列に記載されているフィールドをスキップする
- Markdown レポート形式を生成する:目次(アンカーリンク + ユーザーが選択した要約フィールド)+ 詳細内容(フィールドカテゴリ別)
{topic}/report.mdに保存する
目次の形式要件:
- すべての項目を含めること
- 各項目に表示する内容:番号、名前(アンカーリンク)、ユーザーが選択した要約フィールド
- 例:
1. [GitHub Copilot](#github-copilot) - Stars: 10k | Score: 85%
スクリプトの技術要件(必ず遵守)
1. JSON 構造への対応 次の 2 種類の JSON 構造に対応します:
- フラット構造:フィールドがトップレベルに直接存在する
{"name": "xxx", "release_date": "xxx"} - ネスト構造:フィールドがカテゴリのサブ辞書内に存在する
{"basic_info": {"name": "xxx"}, "technical_features": {...}}
フィールドの検索順序:トップレベル → カテゴリのマッピングキー → すべてのネストされた辞書を走査
2. カテゴリの多言語マッピング fields.yaml のカテゴリ名と JSON キーは、中国語・中国語、中国語・英語、英語・中国語、英語・英語の任意の組み合わせが可能です。双方向マッピングを確立する必要があります:
CATEGORY_MAPPING = {
"Basic Info": ["basic_info", "Basic Info"],
"Technical Features": ["technical_features", "technical_characteristics", "Technical Features"],
"Performance Metrics": ["performance_metrics", "performance", "Performance Metrics"],
"Milestone Significance": ["milestone_significance", "milestones", "Milestone Significance"],
"Business Info": ["business_info", "commercial_info", "Business Info"],
"Competition & Ecosystem": ["competition_ecosystem", "competition", "Competition & Ecosystem"],
"History": ["history", "History"],
"Market Positioning": ["market_positioning", "market", "Market Positioning"],
}
3. 複雑な値のフォーマット
- 辞書のリスト(例:key_events、funding_history):各辞書を 1 行にフォーマットし、キーと値のペアを
|で区切る - 通常のリスト:短いリストはコンマで連結し、長いリストは改行して表示する
- ネストされた辞書:再帰的にフォーマットし、セミコロンまたは改行で表示する
- 長いテキスト文字列(100 文字超):読みやすいように
<br>で改行するか、引用形式を使用する
4. 追加フィールドの収集 JSON に存在するが fields.yaml で定義されていないフィールドを収集し、「その他の情報」カテゴリに追加します。次のフィルタリングに注意してください:
- 内部フィールド:
_source_file、uncertain - ネスト構造のトップレベルキー:
basic_info、technical_featuresなど uncertain配列:各フィールド名を別々の行に表示し、1 行にまとめない
5. 不確実な値のスキップ スキップ条件:
- フィールド値に
[uncertain]文字列が含まれる - フィールド名が
uncertain配列に含まれる - フィールド値が None または空文字列である
ステップ 4:スクリプトを実行
python {topic}/generate_report.py を実行します
出力
{topic}/generate_report.py- 変換スクリプト{topic}/report.md- 要約レポート