---
name: github-weekly-trending
description: 解读用户粘贴的 GitHub 每周 Trending 或开源项目榜单内容，基于用户提供的候选项目、项目 README、GitHub 项目页和 DeepWiki 生成适合公众号发布的 Markdown 文章，并输出到当前项目 markdown 目录。用于 GitHub 周榜解读、每周开源热点、热门开源项目分析、公众号开源项目推荐。
---

# GitHub 每周热门项目解读

## 目标

读取用户粘贴的 GitHub Trending 周榜或开源项目榜单内容，筛选值得关注的开源项目，先建立可验证的项目事实卡，再生成适合公众号发布的中文 Markdown 文章。

工作流：

`用户粘贴榜单内容 -> README / GitHub 项目页 -> DeepWiki -> 项目事实卡 -> 公众号文章 -> 当前项目 markdown 目录 -> 事实校验`

## 触发条件

用户询问以下内容时使用本技能：

- GitHub 每周热门项目
- GitHub Trending 周榜解读
- 每周开源热点分析
- 热门开源项目介绍
- 公众号开源项目推荐文章
- 本周值得关注的开源项目

## 数据来源优先级

| 来源 | 用途 | 可靠性要求 |
| --- | --- | --- |
| 用户粘贴的榜单内容 | 获取候选项目、语言、本周热度、简介、用户关注点 | 必须记录用户提供内容的时间和可解析字段 |
| GitHub 仓库页 | stars、license、默认分支、release、issue、贡献活跃度 | 以页面当前展示为准 |
| README / 官方文档 | 项目定位、核心能力、安装方式、官方示例 | 项目功能事实的主要来源 |
| DeepWiki MCP | 架构、代码组织、模块关系、实现机制 | 用于辅助理解，不单独作为商业采用或性能结论来源 |
| 官方博客 / 官方案例 / release note | 采用案例、路线图、重要变更 | 有明确链接才可引用 |

禁止把未验证信息写成事实。尤其不要编造公司采用案例、benchmark 结果、创始团队动机、融资信息、客户信息、性能优劣。

## 输出文件

默认输出 Markdown 文件：

```text
markdown/github-weekly-trending-YYYY-WW.md
```

其中 `YYYY` 为年份，`WW` 为 ISO 周数，例如 `2026-W15`。

在当前项目根目录下创建或复用 `markdown/` 目录。如用户指定路径或文件名，按用户要求执行。

## 操作步骤

### Step 1 - 解析用户粘贴的榜单内容

不要主动访问 `https://github.com/trending?since=weekly&spoken_language_code=` 获取榜单。以用户粘贴的内容作为候选项目输入。

内部记录：

- 处理时间和时区
- 输入来源、原始 URL、榜单类型、语言过滤或日期等来源元数据只用于事实校验，不写入最终文章，除非用户明确要求展示
- 若来源元数据缺失，只在内部事实卡中记为未知；最终文章不要写“用户未提供”等过程性表述

从用户粘贴内容中解析候选项目：

- 项目名称：`owner/repo`
- 项目简介
- 主要语言
- 当前 stars
- 用户粘贴内容中展示的本周新增 stars 或热度指标
- 仓库地址

当用户只提供 `owner/repo` 或类似 `owner / repo` 的项目名时，自动补齐：

- 标准项目名：去掉 `/` 两侧空格，规范为 `owner/repo`
- GitHub 仓库地址：`https://github.com/owner/repo`
- DeepWiki MCP `repoName` 参数：使用同一个标准项目名 `owner/repo`

示例：用户提供 `microsoft / markitdown` 时，记录项目名为 `microsoft/markitdown`，仓库地址为 `https://github.com/microsoft/markitdown`，并在 DeepWiki MCP 中使用 `repoName: "microsoft/markitdown"`。

注意：“本周新增 stars”或热度指标以用户粘贴内容为准，不等同于完整历史审计数据。

如果用户粘贴内容无法解析出足够候选项目，先向用户请求补充榜单内容。不要自行抓取 GitHub Trending 页面替代用户输入。

### Step 2 - 筛选项目

默认选择 3 个主项目深度解读。用户指定数量时按用户要求执行。

优先选择：

- 周榜排名靠前
- 用户粘贴内容中本周新增 stars 或热度指标明显
- README 和文档信息充分
- 有清晰使用场景
- 对中文开发者或中国技术社区有参考价值

谨慎选择：

- 刚初始化、代码和文档很少的项目
- 没有 license 的项目
- README 只有愿景、缺少可验证功能的项目
- 主要信息来自营销页面而非代码或文档的项目

可以增加 2-5 个“简短观察”项目，但不要把每个项目都写成完整深度分析。

### Step 3 - 获取 README 和项目基础信息

优先通过 GitHub 仓库页识别默认分支和 README 文件。

README fallback 顺序：

1. GitHub 仓库首页渲染 README
2. `https://raw.githubusercontent.com/{owner}/{repo}/{default_branch}/README.md`
3. `README.rst`、`README.adoc`、`README.txt`
4. 仓库中的 `docs/` 或 README 指向的官方文档

同时记录：

- License
- 最近 release 或 tag
- 最近提交活跃度
- open issues / pull requests 的大致状态
- 官方文档地址，若存在

### Step 4 - 使用 DeepWiki 辅助理解

对每个主项目使用 DeepWiki MCP：

- `read_wiki_structure`：先查看可用文档结构
- `read_wiki_contents`：读取项目整体说明
- `ask_question`：针对架构、核心模块、实现机制、适用场景提问

建议提问：

- 这个项目的核心架构是什么？
- 主要模块如何协作？
- 它解决的核心技术问题是什么？
- 和常见同类方案相比，设计差异在哪里？
- 有哪些适合从代码或文档中验证的最佳实践？

DeepWiki 结论必须和 README、代码结构或官方文档交叉检查。不要仅凭 DeepWiki 写企业采用、商业化、融资、性能 benchmark。

### Step 5 - 建立项目事实卡

写文章前，先为每个主项目建立事实卡。事实卡可以不出现在最终文章中，但文章必须基于事实卡生成。

每张事实卡包含：

- 仓库：`[owner/repo](https://github.com/owner/repo)`
- 官方一句话定位
- 主要语言
- stars 和用户粘贴内容中的本周新增 stars 或热度指标
- license
- 最近 release / 活跃度摘要
- 核心能力：3-5 条，必须来自 README 或官方文档
- 架构摘要：来自 DeepWiki，并和仓库资料交叉验证
- 适用场景：区分事实和推断
- 已验证来源链接
- 不确定信息：明确列出，不得在正文中扩写成事实

### Step 6 - 生成文章

文章结构：

```markdown
# 主标题：项目名或本周趋势 + 核心价值

> 副标题：一句话说明本周看点

## 导言

## 本周趋势总览

## 一图看懂本周热点

## 项目一：owner/repo

### 项目定位
### 核心能力
### 架构或工作流图
### 为什么会火
### 适用场景
### 局限与风险

## 项目二：owner/repo

...

## 其他值得关注的项目

## 总结

## 参考资料
```

导言只保留面向读者的文章信息：

- `处理时间：YYYY-MM-DD HH:MM:SS 时区`
- 紧接 1-2 段本周趋势判断，例如“本周榜单的核心信号很明确：...”。

导言不要写输入来源、榜单原始 URL、榜单日期范围、语言过滤条件等过程性字段，除非用户明确要求。

最终文章全文禁止出现以下过程性表述或同类变体：

- “用户粘贴内容显示”
- “用户粘贴”
- “用户未提供”
- “用户粘贴周榜”
- “本文的候选项目只来自... ”
- “没有主动抓取... ”
- “按原样记录”

需要表达热度来源时，改写为面向读者的自然表述，例如“本周榜单热度为 ...”“榜单数据显示 ...”“当前 GitHub 页面显示 ...”。

每个主项目必须包含：

- 项目定位：2-3 句话说明它解决什么问题，基于 README 或官方文档
- 核心能力：表格列出 3-5 个主要功能，只写可验证能力
- 架构或工作流图：优先使用 Mermaid，基于 README、官方文档、DeepWiki 交叉验证后的模块关系绘制；信息不足时省略
- 为什么会火：结合榜单热度表现、技术趋势、开发者痛点分析，并明确区分事实和推断
- 适用场景：给出 2-3 个具体场景；若是推断，使用“适合用于”，不要写成“已经用于”
- 局限与风险：项目成熟度、文档完整度、生态依赖、license 或运维风险

## 图表规则

用 Mermaid 或 SVG 增强可读性，但不要为了装饰强行加图。默认优先使用 Mermaid，因为 Markdown 可维护、便于公众号二次编辑。

建议包含：

- 1 张“本周热点总览”图：展示候选项目 -> 筛选维度 -> 主项目 -> 简短观察项目。
- 每个主项目最多 1 张架构或工作流图：展示输入、核心模块、输出、外部依赖。
- 复杂竞品对比可以用 Mermaid quadrantChart、flowchart 或简洁表格，不要重复表达同一信息。

Mermaid 使用规则：

- 使用 `flowchart LR` 或 `flowchart TD` 表达流程、架构、模块关系。
- 使用简短节点文本，避免长句挤压版面。
- 节点内容必须来自 README、官方文档、代码结构或 DeepWiki 交叉验证结果。
- 对推断关系使用节点或图标题标注“推断”，不要画成确定事实。

SVG 使用规则：

- 仅当用户要求可直接发布的视觉图，或 Mermaid 无法表达清楚时使用内联 SVG。
- SVG 必须简洁、可复制到 Markdown，不依赖外部图片资源。
- 不要使用复杂渐变、装饰性图形或无法在公众号编辑器稳定显示的效果。

示例 Mermaid：

```mermaid
flowchart LR
  Input[本周榜单] --> Filter[筛选: 热度 / 文档 / 场景]
  Filter --> Main[3 个主项目深度解读]
  Filter --> Brief[2-5 个简短观察]
  Main --> Verify[README / GitHub / DeepWiki 交叉验证]
  Verify --> Article[Markdown 文章]
```

以下模块仅在有可靠来源时添加：

- 真实采用案例
- 竞品性能对比
- 可运行代码示例
- 创始团队或背后公司动机

如果没有可靠公开来源，写“未找到可靠公开来源”，不要补写。

## 竞品对比规则

竞品对比只比较可验证维度：

- 官方定位
- 核心功能
- 主要语言
- 部署方式
- License
- GitHub 活跃度
- 生态成熟度的可观察指标，例如 release、插件、文档、社区讨论

不要写无来源支持的性能结论。不要使用“全面领先”“碾压”“业界最佳”等不可验证表达。

## 代码示例规则

优先引用 README 或官方文档中的最小示例。

分级处理：

- 已本地运行：说明运行环境和结果
- 未本地运行但来自官方文档：标注“基于官方文档示例整理”
- 自行整理的伪代码或概念示例：明确标注“示意代码”

不要为了满足格式强行给每个项目写代码示例。

## 写作风格

- 面向有基础技术认知的中文开发者
- 专业、直接、避免夸张营销语
- 短句为主，少用长从句
- 多解释“为什么值得关注”，少堆功能清单
- 标题使用 `##` 和 `###`，避免超过 3 级标题
- 表格保持简洁，列数不要过多
- 事实和推断分开表达

## 质量校验

提交前逐项检查：

- [ ] 记录了处理时间、时区和用户粘贴内容中的来源信息
- [ ] 未主动抓取 GitHub Trending 页面作为候选项目来源
- [ ] 所有仓库地址可访问
- [ ] stars、license、语言信息来自 GitHub 当前页面或用户粘贴内容，并区分来源
- [ ] README / 官方文档链接可访问
- [ ] DeepWiki 结论没有被单独用作商业采用或性能事实
- [ ] 公司采用案例、benchmark、融资、团队动机都有可靠来源；否则删除或标注未知
- [ ] 竞品对比只包含可验证维度
- [ ] 代码示例标注了来源和验证状态
- [ ] Mermaid 或 SVG 图表只表达已验证事实或明确标注的推断，节点文本简短可读
- [ ] Markdown 标题层级、表格、链接格式正确
- [ ] 输出文件位于当前项目 `markdown/` 目录，除非用户指定其他路径
- [ ] 全文默认 3000-6000 字；若超过，优先压缩项目数量和重复背景介绍

## 失败和不确定情况

- 如果用户没有粘贴榜单内容，向用户请求输入，不要自行抓取 Trending 页面。
- 如果用户粘贴内容缺少 stars、本周新增 stars、语言等字段，可以用 GitHub 仓库页补充当前字段；缺少的榜单热度字段保持未知。
- 如果某项目 README 信息不足，降级为“简短观察”，不要做深度解读。
- 如果 DeepWiki 没有覆盖该项目，以 README、官方文档和仓库信息为主。
- 如果无法验证某个事实，保留不确定性，不要为了文章完整而补事实。
