# Github Trending

> When you need to collect trending GitHub repositories in AI/LLM/Agent domains

- Skill: `huangjia2019/github-trending` (Agent Skill)
- Install (CLI): `npx skillmds@latest add huangjia2019/github-trending`
- Raw SKILL.md: https://api.skillmd.com/api/skills/huangjia2019/github-trending/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: huangjia2019 (https://skillmd.com/u/huangjia2019)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/huangjia2019/github-trending

---


# GitHub Trending 采集技能

## 触发场景

当用户要求采集 GitHub 上 AI/LLM/Agent 相关的热门仓库时，自动激活此技能。

## 采集步骤

### 1. 构造搜索请求

使用 GitHub Search API 搜索最近 7 天内的热门仓库：

```
GET https://api.github.com/search/repositories
```

**查询参数**：
- `q`: 组合以下关键词（OR 连接）：
  - `AI`, `LLM`, `"large language model"`, `agent`, `RAG`
  - `MCP`, `"model context protocol"`, `"agentic"`
  - 加上时间过滤：`created:>{7天前的日期}` 或 `pushed:>{7天前的日期}`
- `sort`: `stars`
- `order`: `desc`
- `per_page`: `30`

**请求头**：
```
Accept: application/vnd.github.v3+json
Authorization: Bearer ${GITHUB_TOKEN}
```

### 2. 过滤结果

从返回的仓库中，按以下条件过滤：

- Star 数 >= 50（过滤掉低质量仓库）
- 有英文 description（无描述的仓库通常质量较低）
- 非 fork 仓库（`fork: false`）
- 排除以下类型：awesome-list（纯链接集合）、课程作业、个人笔记

### 3. 提取元数据

对每个通过过滤的仓库，提取以下信息：

```json
{
  "id": "{owner}/{repo}",
  "title": "{repo name}",
  "description": "{repo description}",
  "url": "{html_url}",
  "stars": "{stargazers_count}",
  "forks": "{forks_count}",
  "language": "{language}",
  "topics": ["{topics array}"],
  "license": "{license.spdx_id}",
  "created_at": "{created_at}",
  "updated_at": "{pushed_at}",
  "open_issues": "{open_issues_count}"
}
```

### 4. 增强信息（可选）

对 Star 数 Top 5 的仓库，额外获取 README 内容：

```
GET https://api.github.com/repos/{owner}/{repo}/readme
Accept: application/vnd.github.v3.raw
```

将 README 的前 500 字存入 `readme_excerpt` 字段，用于后续 Analyzer 生成更准确的摘要。

### 5. 输出

将采集结果保存为 JSON 文件：

- 文件路径：`knowledge/raw/github-trending-{YYYY-MM-DD}.json`
- 顶层包含 `source`, `collected_at`, `query`, `count`, `items`
- 使用 2 空格缩进

## 错误处理

| 错误 | 处理方式 |
|------|----------|
| HTTP 401 | 检查 GITHUB_TOKEN 是否设置 |
| HTTP 403 (rate limit) | 读取 `X-RateLimit-Reset`，报告剩余等待时间 |
| HTTP 422 (bad query) | 简化查询条件后重试 |
| 网络超时 | 等待 5 秒后重试，最多 3 次 |

## 质量标准

- 采集条目数：15-30 条为正常范围
- 少于 10 条：关键词可能需要扩展，报告给用户
- 多于 50 条：过滤条件可能太宽松，提高 Star 阈值

