My_harness auto-researcher

install
source · Clone the upstream repo
git clone https://github.com/WeiJun0507/my_harness
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/WeiJun0507/my_harness "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.cursor/skills/auto-researcher" ~/.claude/skills/weijun0507-my-harness-auto-researcher && rm -rf "$T"
manifest: .cursor/skills/auto-researcher/SKILL.md
source content

Auto-Researcher Skill

定位:不只是搜索引擎,而是一个会思考的研究助手。 搜集资料是手段,输出有深度的分析结论 + 维护持续成长的知识图谱才是目标。


整体流程

用户问题
   ↓
① 问题解析  ────────────────── 检查知识图谱是否有关联已有研究
   ↓
② 多策略搜索(Web / GitHub / 深度抓取)
   ↓
③ 相关性验证  ──── 不合格 → 调整关键词重搜(最多 3 轮)
   ↓
④ 🧠 深度分析推理
   ├─ 架构建议
   ├─ 风险评估
   └─ 技术成熟度评级
   ↓
⑤ 知识图谱更新
   ├─ 写入本次研究文件
   ├─ 跨主题关联分析 + 打 Tag
   └─ 更新全局知识图谱索引
   ↓
⑥ 生成最终答复(结论 + 建议 + 风险 + 关联知识)

Step 1:问题解析

结构化拆解用户问题,并在开始搜索前先查阅知识图谱

- 核心主题:       (e.g. 语音播放、WebRTC、状态管理)
- 问题类型:       架构设计 | 实现方案 | 踩坑排查 | 选型对比 | 概念理解
- 技术栈偏好:     从问题中提取,若无则不限
- 期望深度:       快速结论 | 详细实现 | 完整方案
- 关键词组:       3-5 组,主关键词 + 修饰词的组合

知识图谱预检(搜索前必做): 读取

references/_knowledge_graph.md
,查找:

  • 是否有完全匹配的已有研究 → 可直接复用或增量更新
  • 是否有相关 tag 的已有研究 → 作为本次分析的背景知识载入
  • 列出将要关联的已有节点

Step 2:多策略搜索

策略 A:Web Search

"{主题} architecture design"
"{主题} best practices {年份}"
"{主题} pitfalls lessons learned"
"{主题} 架构设计 踩坑"(中文补充)

策略 B:开源项目探索

site:github.com "{主题}" stars:>500
"{主题}" awesome list
"{主题}" library comparison benchmark

策略 C:深度内容抓取

对命中的高质量 URL 使用

web_fetch
,重点提取:

  • 架构图描述与设计决策理由
  • 核心代码实现逻辑
  • 作者踩过的坑与解决路径
  • 已知限制和社区反馈

来源优先级

优先级内容类型
🔴 高官方文档、知名开源项目(Stars > 1k)、大厂技术博客
🟡 中Stack Overflow 高分回答、知名开发者博客
🟢 低论坛讨论、未经验证的个人笔记

Step 3:相关性验证

每条结果四维打分(满分 10 分):

维度满分标准
主题相关性4是否直接回答核心问题
技术深度2是否包含具体实现细节
时效性22年内=2分,3-5年=1分,更早=0分
可信度2官方/大厂/知名开发者=2分,其他=1分

阈值:≥7 收录 | 4-6 备用(标注 secondary)| <4 丢弃

重搜策略(最多 3 轮)

轮次 1:换同义词、加技术栈限定词
轮次 2:切换策略(如 Web → GitHub 专项)
轮次 3:放宽至上层概念或相关技术
超 3 轮 → 告知用户,给出当前最佳结果

Step 4:🧠 深度分析推理

这是 auto-researcher 区别于普通搜索的核心能力。 基于收集到的所有合格资料,执行以下三层分析:


4.1 架构建议

不只是堆砌资料,而是结合资料主动给出落地建议

## 架构建议

### 推荐方案
基于调研资料,推荐采用 [方案名] 的原因是:
- 理由 1(引用来源)
- 理由 2(引用来源)

### 核心架构要素
- 组件 A:职责 + 推荐实现方式
- 组件 B:职责 + 推荐实现方式

### 关键设计决策
| 决策点 | 推荐选择 | 依据 |
|--------|---------|------|
| ... | ... | ... |

### 分阶段落地建议
- 阶段 1(MVP):...
- 阶段 2(优化):...
- 阶段 3(扩展):...

4.2 风险评估

从社区反馈、Issues、博客踩坑中提炼真实风险:

## 风险评估

| 风险点 | 等级 | 描述 | 缓解策略 |
|--------|------|------|---------|
| 性能瓶颈 | 🔴 高 | 大文件时内存占用... | 使用流式处理... |
| 兼容性问题 | 🟡 中 | iOS 14 以下... | fallback 方案... |
| 依赖维护 | 🟢 低 | 该库更新频率低 | 评估 fork 成本... |

### 社区已知坑点
- 坑 1:描述 + 解决方案(来源:xxx)
- 坑 2:描述 + 解决方案(来源:xxx)

4.3 技术成熟度评级

对每个涉及的方案/库打标:

## 技术成熟度

| 方案/库 | 成熟度 | 判断依据 |
|---------|--------|---------|
| ExoPlayer | 🟢 生产可用 | Google 官方维护,广泛使用 |
| AVAudioEngine | 🟢 生产可用 | Apple 官方,iOS 8+ |
| SoundTouch.js | 🟡 谨慎使用 | 社区维护,Issues 较多 |
| WebCodecs API | 🔵 实验性 | 浏览器支持率 ~70% |

成熟度标签定义:
🟢 生产可用  — 稳定、活跃维护、大规模使用案例
🟡 谨慎使用  — 功能可用但存在已知问题或维护风险
🔵 实验性    — 新技术,API 可能变动,需关注兼容性
🔴 已废弃    — 不建议新项目使用

Step 5:知识图谱更新

5.1 写入本次研究文件

文件命名

references/{topic-slug}_{YYYYMMDD}.md

文件结构:

---
topic: {用户原始问题}
topic_slug: {topic-slug}
searched_at: {ISO 时间}
tags: [tag1, tag2, tag3]
related_topics: [other-topic-slug-1, other-topic-slug-2]
maturity_summary: {整体成熟度评估}
---

# {主题} 研究报告

## TL;DR
(3-5句话的极简结论,方便快速回顾)

## 架构建议
(来自 Step 4.1)

## 风险评估
(来自 Step 4.2)

## 技术成熟度
(来自 Step 4.3)

## 核心资料

### 1. [资料标题]
**来源**: URL | **评分**: X/10 | **类型**: 架构说明 / 实现代码 / 踩坑经验
**摘要**: ...
**核心要点**: ...
**注意事项**: ...

## 开源项目推荐
| 项目 | Stars | 成熟度 | 适用场景 |
|------|-------|--------|---------|

## 延伸阅读(secondary 级)
- [标题](URL) — 简述

5.2 跨主题关联分析 + 打 Tag

每次研究完成后,执行关联分析:

Tag 体系(自动从资料内容中提取):

技术领域 tag:  #audio #video #networking #storage #ui #security ...
架构模式 tag:  #streaming #event-driven #mvc #pipeline #cache ...
平台 tag:      #ios #android #web #react-native #flutter ...
问题类型 tag:  #performance #compatibility #architecture #pitfall ...
成熟度 tag:    #production-ready #experimental #deprecated ...

关联发现规则

共享 2+ 个相同 tag → 建立"相关"关联
一方是另一方的子集话题 → 建立"属于"关联  
一方解决另一方的已知风险 → 建立"互补"关联
两者是同类方案 → 建立"对比"关联

5.3 更新全局知识图谱索引

每次研究后更新

references/_knowledge_graph.md

# 知识图谱索引

> 最后更新:{时间} | 总节点数:N | 总关联数:M

## 节点列表

| Topic Slug | 主题 | Tags | 研究日期 | 成熟度 | 关联节点 |
|------------|------|------|---------|--------|---------|
| audio-playback-architecture | 语音播放架构 | #audio #streaming #ios #android | 2025-06-01 | 🟢 | media-streaming, audio-codec |
| media-streaming | 媒体流处理 | #streaming #video #audio #pipeline | 2025-05-20 | 🟢 | audio-playback-architecture |

## 关联关系图

### audio-playback-architecture
- 🔗 相关:`media-streaming`(共享 #audio #streaming)
- 🔗 属于:`media-pipeline-design`(子话题)
- 🔗 互补:`audio-buffer-management`(解决其缓冲区风险点)
- 🔗 对比:`web-audio-api`(同类方案,不同平台)

### media-streaming
- 🔗 相关:`audio-playback-architecture`
- ...

## Tag 索引

### #audio
- audio-playback-architecture(2025-06-01)
- audio-codec-comparison(2025-05-15)

### #streaming
- media-streaming(2025-05-20)
- audio-playback-architecture(2025-06-01)

Step 6:生成最终答复

向用户输出结构化的研究结论:

1. 📋 TL;DR — 3句话核心结论
2. 🏗️ 架构建议 — 推荐方案 + 关键设计决策
3. ⚠️ 风险与坑点 — 最重要的 3 条风险
4. 📊 技术成熟度 — 涉及的方案/库的状态
5. 🔗 关联知识 — 本次研究与知识图谱中已有主题的关联(如有)
6. 📁 完整报告 — 已存入 references/{filename}

关联知识展示示例

🔗 发现与已有研究的关联:
  - media-streaming(2025-05-20)与本主题共享 #audio #streaming,
    其中关于"HLS 分片缓冲策略"的内容可直接应用到本方案。
  - audio-codec-comparison 评估了 AAC vs Opus,
    可作为本架构编解码层选型的参考。

文件结构总览

auto-researcher/
├── SKILL.md
└── references/
    ├── _knowledge_graph.md          # 全局知识图谱索引(核心)
    ├── _search_log.md               # 搜索过程日志
    ├── {topic-slug}_{YYYYMMDD}.md   # 各次研究报告
    └── README.md                    # 目录说明

使用原则

  • 分析优于堆砌:给出观点和建议,而不只是复制粘贴资料摘要
  • 知识复用优先:每次研究前必须先查图谱,已有结论优先复用
  • 关联主动发现:不要等用户问"这两个有什么关系",主动建立关联
  • 不照抄原文:所有入库内容经过理解和总结,注意版权
  • 中英文双搜:技术问题同时搜索中英文,覆盖更广
  • 时效性标注:超过 6 个月的已有研究,复用时需提醒用户可能需要更新