Philosophy: README 只是门面,真正的价值藏在 Issues、Commits 和社区讨论里。
text
[项目名] → [1. 定位 Repo] → [2. 多源采集] → [3. 分析研判] → [4. 结构化输出]
用 web_search 搜索 site:github.com <project_name> 确认完整 org/repo
用 search-layer(Deep 模式 + 意图感知)补充获取社区链接和非 GitHub 资源:
bash
python3 skills/search-layer/scripts/search.py \
--queries "<project_name> review" "<project_name> 评测 使用体验" \
--mode deep --intent exploratory --num 5
用 web_fetch 抓取 repo 主页获取基础信息(README、Stars、Forks、License、最近更新)
⚠️ GitHub 页面抓取规则(强制):GitHub repo 页面是 SPA(客户端渲染), web_fetch 只能拿到导航栏壳子, 禁止用 web_fetch 抓 github.com 的 repo 页面。一律使用 GitHub API:
curl -s -H "Authorization: token {PAT}" -H "Accept: application/vnd.github.v3.raw" "https://api.github.com/repos/{owner}/{repo}/readme"curl -s -H "Authorization: token {PAT}" "https://api.github.com/repos/{owner}/{repo}"curl -s -H "Authorization: token {PAT}" "https://api.github.com/repos/{owner}/{repo}/issues?state=all&sort=comments&per_page=10"curl -s -H "Authorization: token {PAT}" "https://api.github.com/repos/{owner}/{repo}/commits?per_page=10"curl -s -H "Authorization: token {PAT}" "https://api.github.com/repos/{owner}/{repo}/git/trees/{branch}?recursive=1"PAT 见 TOOLS.md。
以下来源 按需检查,有则采集,无则跳过:
来源URL 模式采集内容建议工具GitHub Repogithub.com/{org}/{repo}README、About、Contributorsweb_fetchGitHub Issuesgithub.com/{org}/{repo}/issues?q=sort:commentsTop 3-5 高质量 Issuebrowser中文社区微信/知乎/小红书深度评测、使用经验content-extract技术博客Medium/Dev.to技术架构分析web_fetch / content-extract讨论区V2EX/Reddit用户反馈、槽点search-layer(Deep 模式)
search-layer v2 支持意图感知评分。github-explorer 场景下的推荐用法:
场景命令说明项目调研(默认)python3 skills/search-layer/scripts/search.py --queries "<project> review" "<project> 评测" --mode deep --intent exploratory --num 5多查询并行,按权威性排序最新动态python3 skills/search-layer/scripts/search.py "<project> latest release" --mode deep --intent status --freshness pw --num 5优先新鲜度,过滤一周内竞品对比python3 skills/search-layer/scripts/search.py --queries "<project> vs <competitor>" "<project> alternatives" --mode deep --intent comparison --num 5对比意图,关键词+权威双权重快速查链接python3 skills/search-layer/scripts/search.py "<project> official docs" --mode fast --intent resource --num 3精确匹配,最快社区讨论python3 skills/search-layer/scripts/search.py "<project> discussion experience" --mode deep --intent exploratory --domain-boost reddit.com,news.ycombinator.com --num 5加权社区站点
意图类型速查: factual(事实) / status(动态) / comparison(对比) / tutorial(教程) / exploratory(探索) / news(新闻) / resource(资源定位)
不带
--intent时行为与 v1 完全一致(无评分,按原始顺序输出)。
降级规则:Exa/Tavily 任一 429/5xx → 继续用剩余源;脚本整体失败 → 退回 web_search 单源。
当遇到以下情况时, 必须 从 web_fetch 升级为 content-extract:
mp.weixin.qq.com, zhihu.com, xiaohongshu.com。web_fetch 返回的 Markdown 极其凌乱。web_fetch 因反爬返回空内容或 Challenge 页面。调用方式:
bash
python3 skills/content-extract/scripts/content_extract.py --url <URL>
content-extract 内部会:
web_fetch 探针,失败再 fallback 到 MinerU-HTMLok, markdown, sources 等字段)基于采集数据进行判断:
严格按以下模板输出, 每个模块都必须有实质内容或明确标注"未找到"。
标题必须链接到 GitHub 仓库(格式: # [Project Name](https://github.com/org/repo),确保可点击跳转)
标题前后都统一空行(上一板块结尾 → 空行 → 标题 → 空行 → 内容,确保视觉分隔清晰)
Telegram 空行修复(强制):Telegram 会吞掉列表项( - 开头)后面的空行。解决方案:在列表末尾与下一个标题之间,插入一行盲文空格 ⠀(U+2800),格式如下:
text
⠀ 下一个标题
这确保在 Telegram 渲染时标题前的空行不被吞掉。
4. **所有标题加粗**(emoji + 粗体文字)
5. **竞品对比必须附链接**(GitHub / 官网 / 文档,至少一个)
6. **社区声量必须具体**:引用具体的帖子/推文/讨论内容摘要,附原始链接。不要写"评价很高"、"热度很高"这种概括性描述,要写"某某说了什么"或"某帖讨论了什么具体问题"
7. **信息溯源原则**:所有引用的外部信息都应附上原始链接,让读者能追溯到源头
markdown
```markdown
# [{Project Name}]({GitHub Repo URL})
**🎯 一句话定位**
{是什么、解决什么问题}
**⚙️ 核心机制**
{技术原理/架构,用人话讲清楚,不是复制 README。包含关键技术栈。}
**📊 项目健康度**
- **Stars**: {数量} | **Forks**: {数量} | **License**: {类型}
- **团队/作者**: {背景}
- **Commit 趋势**: {最近活跃度 + 项目阶段判断}
- **最近动态**: {最近几条重要 commit 概述}
**🔥 精选 Issue**
{Top 3-5 高质量 Issue,每条包含标题、链接、核心讨论点。如无高质量 Issue 则注明。}
**✅ 适用场景**
{什么时候该用,解决什么具体问题}
**⚠️ 局限**
{什么时候别碰,已知问题}
**🆚 竞品对比**
{同赛道项目对比,差异点。每个竞品必须附 GitHub 或官网链接,格式示例:}
- **vs [GraphRAG](https://github.com/microsoft/graphrag)** — 差异描述
- **vs [RAGFlow](https://github.com/infiniflow/ragflow)** — 差异描述
**🌐 知识图谱**
- **DeepWiki**: {链接或"未收录"}
- **Zread.ai**: {链接或"未收录"}
**🎬 Demo**
{在线体验链接,或"无"}
**📄 关联论文**
{arXiv 链接,或"无"}
**📰 社区声量**
**X/Twitter**
{具体引用推文内容摘要 + 链接,格式示例:}
- [@某用户](链接): "具体说了什么..."
- [某讨论串](链接): 讨论了什么具体问题...
{如未找到则注明"未找到相关讨论"}
**中文社区**
{具体引用帖子标题/内容摘要 + 链接,格式示例:}
- [知乎: 帖子标题](链接) — 讨论了什么
- [V2EX: 帖子标题](链接) — 讨论了什么
{如未找到则注明"未找到相关讨论"}
**💬 我的判断**
{主观评价:值不值得投入时间,适合什么水平的人,建议怎么用}
web_search + web_fetch,browser 作为备选search-layer v2 Deep 模式 + --intent exploratory(Brave + Exa + Tavily 三源并行去重 + 意图感知评分),单源失败不阻塞主流程web_fetch 失败/403/反爬页/正文过短,或来源域名属于高风险站点(如微信/知乎/小红书)时:改用 content-extract(其内部会 fallback 到 MinerU-HTML),拿到更干净的 Markdown + 可追溯 sources输出报告前, 必须逐条检查以下项目,全部通过才可发送:
# [Project Name](GitHub URL) 格式,可点击跳转**🎯 ...**)前后各有一个空行⠀ 行(防止 Telegram 吞空行)[#号 标题](完整URL) 格式[名称](GitHub/官网链接)[来源: 标题](URL) 格式本 Skill 依赖以下 OpenClaw 工具和 Skills:
依赖类型用途web_search内置工具Brave Search 检索web_fetch内置工具网页内容抓取browser内置工具动态页面渲染(备选)search-layerSkill多源搜索 + 意图感知评分(Brave + Exa + Tavily + Grok),v2.1 支持 --intent / --queries / --freshness``content-extractSkill高保真内容提取(反爬站点降级方案)