mcpField
R
research-report

research-report

github.com/weizhena生产力2.4k865 次安装9 周前更新
代码仓库

关于 research-report

将 JSON 研究结果整理为 Markdown 汇总报告的 Skill。它读取主题配置和字段定义,生成目录与分类详情,并排除不确定值。

主要功能

  1. 01读取结果 JSON 和字段定义
  2. 02允许选择目录展示指标
  3. 03生成 Python 报告脚本
  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

工作流

步骤 1:定位结果目录

在当前工作目录中查找 */outline.yaml,读取 topic 和 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 结构兼容性 支持两种 JSON 结构:

  • 扁平结构:字段直接位于顶层 {"name": "xxx", "release_date": "xxx"}
  • 嵌套结构:字段位于类别子字典中 {"basic_info": {"name": "xxx"}, "technical_features": {...}}

字段查找顺序:顶层 -> 类别映射键 -> 遍历所有嵌套字典

2. 类别多语言映射 fields.yaml 中的类别名称和 JSON 键可以是任意组合(CN-CN、CN-EN、EN-CN、EN-EN)。必须建立双向映射:

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):将每个字典格式化为一行,键值对之间用 | 分隔
  • 普通列表:短列表用逗号连接,长列表用换行显示
  • 嵌套字典:递归格式化,用分号或换行显示
  • 长文本字符串(超过 100 个字符):添加换行 <br>,或使用引用块格式以提高可读性

4. 额外字段收集 收集 JSON 中存在但 fields.yaml 未定义的字段,并放入“其他信息”类别。过滤时注意:

  • 内部字段:_source_file、uncertain
  • 嵌套结构的顶层键:basic_info、technical_features 等
  • uncertain 数组:每个字段名称单独显示一行,不要压缩成一行

5. 不确定值跳过规则 跳过条件:

  • 字段值包含 [uncertain] 字符串
  • 字段名称位于 uncertain 数组中
  • 字段值为 None 或空字符串
步骤 4:执行脚本

运行 python {topic}/generate_report.py

输出

  • {topic}/generate_report.py - 转换脚本
  • {topic}/report.md - 汇总报告

评论

支持 Markdown