mcpField
R
research-report

research-report

github.com/weizhena生産性2.4k865 回インストール10 週間前に更新
リポジトリ

research-report について

JSON形式の調査結果をMarkdownレポートにまとめるスキルです。トピック設定とフィールド定義を読み込み、目次とカテゴリ別の詳細を作成し、不確かな値を除外します。

主な機能

  1. 01結果JSONとフィールド定義の読み込み
  2. 02目次に表示する指標の選択
  3. 03Pythonレポート生成スクリプトの作成
  4. 04入れ子や複雑な値の整形
  5. 05不確実または空の値の除外

活用シーン

  1. 01ディレクトリ内の調査結果の集約
  2. 02レポート目次への指標表示
  3. 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 - 要約レポート

コメント