调研探索
当有深度研究 JSON 结果需要汇总成 Markdown…
适用于已有 `*/outline.yaml`、JSON 结果和 `fields.yaml`,需要将深度研究结果汇总为 Markdown 报告的场景。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 49/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 85/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
当有深度研究 JSON 结果需要汇总成 通用
解决思路
- 在当前工作目录查找 `*/outline.yaml`,读取其中的 `topic` 和 `output_dir` 配置,定位结果目录。
- 读取 output_dir 中所有 JSON 结果,提取适合目录展示的字段(数值型、短指标),例如 `github_stars`、`google_scholar_cites`、`swe_bench_score`、`user_scale`、`valuation`、`release_date`。
- 使用 `request_user_input` 询问用户:除条目名称外,TOC 中要展示哪些字段?并根据 JSON 中实际存在的字段提供动态选项列表。
- 在 `{topic}/` 目录生成 `generate_report.py`,脚本要求:读取 output_dir 中所有 JSON;读取 `fields.yaml` 获取字段结构;覆盖每个 JSON 的所有字段值;跳过包含 `[uncertain]` 的字段值;跳过 `uncertain` 数组中列出的字段;生成 markdown 报告,格式为目录(带锚点链接 + 用户选择的摘要字段)+ 详细内容(按字段分类);保存到 `{topic}/report.md`。
- TOC 格式要求:必须包含每个条目;每个条目显示编号、名称(锚点链接)、用户选择的摘要字段;示例:`1. [GitHub Copilot](#github-copilot) - Stars: 10k | Score: 85%`。
- 脚本技术:JSON 结构兼容性——支持扁平结构:字段直接在顶层 `{"name": "xxx", "release_date": "xxx"}`;支持嵌套结构:字段在分类子字典中 `{"basic_info": {"name": "xxx"}, "technical_features": {...}}`;字段查找顺序:顶层 -> 分类映射键 -> 遍历所有嵌套字典。
- 脚本技术:分类多语言映射——`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`。
- 脚本技术:复杂值格式化——list of dicts(如 `key_events`、`funding_history`):每个 dict 格式化为一行,kv 用 ` | ` 分隔;普通 list:短列表用逗号连接,长列表用换行展示;嵌套 dict:递归格式化,用分号或换行展示;长文本字符串(超过 100 字符):添加换行 `<br>` 或使用 blockquote 格式提升可读性。
- 脚本技术:额外字段收集——收集 JSON 中存在但 `fields.yaml` 未定义的字段,放入 `Other Info` 分类;过滤:内部字段 `_source_file`、`uncertain`;嵌套结构顶层键如 `basic_info`、`technical_features` 等;`uncertain` 数组:每个字段名单独一行展示,不要压缩为一行。
- 脚本技术:不确定值跳过——跳过条件:字段值包含 `[uncertain]` 字符串;字段名在 `uncertain` 数组中;字段值为 None 或空字符串。
- 执行脚本:运行 `python {topic}/generate_report.py`。
- 输出:`{topic}/generate_report.py` 和 `{topic}/report.md`。
适用边界 · 注意事项
- 没有 `*/outline.yaml` 或无法解析 `topic`/`output_dir` 时
- 结果不是 JSON,或缺少 `fields.yaml` 字段结构时
- 需要在报告中保留 `[uncertain]` 或 `uncertain` 数组中的不确定字段时