mcpField
G
github-trending-analyzer

github-trending-analyzer

github.com/jackjin1997生产力1353 次安装19 周前更新
代码仓库

关于 github-trending-analyzer

这项技能指导 Agent 收集、分类并汇总 GitHub 热门仓库,支持 Markdown、HTML 或两种格式,并包含备用搜索查询、去重及将所需报告保存到 Obsidian 的流程。

主要功能

  1. 01支持 Markdown 和 HTML 报告
  2. 02热门数据脚本及 API 备用方案
  3. 03仓库清单整理与去重
  4. 04大型列表采用两级分类
  5. 05将报告保存到 Obsidian

适用场景

  1. 01制作每日、每周或每月趋势报告
  2. 02比较不同热门周期中的仓库
  3. 03在 Obsidian 中保存分类后的仓库报告

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/jackjin1997/clawforge --skill github-trending-analyzer

安装后在 Claude Code 中输入/github-trending-analyzer确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
hierarchical-classification.md
pinterest-design.md
scripts/
fetch_trending.sh

详细介绍

GitHub 趋势分析器

全面、分类汇总 GitHub 上最新的热门仓库。

步骤 0:询问输出格式

在进行任何操作之前,先询问用户:

你想要哪种输出格式?

  1. 📝 Markdown — 在对话中展示 + 存入 Obsidian
  2. 🎨 HTML — Pinterest 风格网页 + 存入 Obsidian
  3. 📝+🎨 两者都要 — 两个都要

(直接回复 1/2/3 或 md/html/both)

如果用户已在命令参数中指定格式(例如 html、md、both),则跳过提问,直接继续。若用户没有明确偏好,则默认使用 Markdown。

步骤 1:获取数据

Shell 脚本可能因 GitHub HTML 变更而失败。请使用以下备用策略:

  1. 先尝试运行脚本:scripts/fetch_trending.sh daily|weekly|monthly
  2. 如果结果为空,则回退到使用 GitHub Search API 的 gh api:
    • 每日代理指标(过去 7 天内推送过代码的高星仓库):
      gh api "search/repositories?q=stars:>1000+pushed:>YYYY-MM-DD&sort=stars&order=desc&per_page=30"
      
    • 每周(过去 7 天内创建的新仓库,按星标数排序):
      gh api "search/repositories?q=created:>YYYY-MM-DD&sort=stars&order=desc&per_page=30"
      
    • 每月(过去 30 天内创建的新仓库,按星标数排序):
      gh api "search/repositories?q=created:>YYYY-MM-DD&sort=stars&order=desc&per_page=30"
      
    • 今日最热门(今天推送过代码的高星仓库):
      gh api "search/repositories?q=stars:>5000+pushed:>YYYY-MM-DD&sort=updated&order=desc&per_page=25"
      
    • 全新仓库(过去 2 天内创建):
      gh api "search/repositories?q=created:>YYYY-MM-DD&sort=stars&order=desc&per_page=20"
      
  3. 使用 --jq 提取:full_name、language、stargazers_count、description、created_at

步骤 2:完整清单与去重

  • 列出发现的每一个项目,不要遗漏。
  • 标注同时出现在多个时间范围内的项目(例如“每日 + 每月”)。

步骤 3:深度分类(两级层级)

当项目总数 > 30 时,使用两级分类体系——单层分类会变成卡片墙。项目少于 30 个时,使用单层分类即可。

方法:显式的 full_name → (macro, sub) 映射

基于关键词启发式分类(if 'skill' in desc and ...)会让约 20% 的项目落入无用的“其它”类别。在这个规模(≤ 200 个项目)下,逐个项目显式映射可实现 100% 覆盖,也更容易维护。规范模式请参见 references/hierarchical-classification.md。

推荐的 7 个宏观主题

这些主题仅供起步参考——请根据当天实际呈现的数据进行调整:

  • 🤖 AI 原生开发栈 — Skills、AI 编码 CLI、Agent harness、大模型平台、AI 工作区、评估/可观测性、MCP/SDK
  • 🎨 模型与创意生成 — 大模型、多模态生成、模型硬件
  • 🛡️ 安全与防御 — 防御/威胁建模、供应链/扫描、OSINT、双重用途漏洞
  • 🛠️ 工程与生产力 — macOS/iOS、终端、Web、数据集成、业务/SaaS 替代品
  • 🔬 研究与学习资源 — 教育资源、awesome 清单、RAG/知识系统
  • 🌳 平台与经典基础设施 — 前端框架、系统/内核、通用开发工具
  • 🌎 其它 — 可疑/Game exploit、无描述、游戏移植
根据数据形成子类

不要预先固定子类,让数据来决定分类方式。例如,在 2026-06-16 的运行中,列出 19 个项目后,Skills 宏观类别自然分成了 5 个子类(创意/媒体、写作/语言、工作流/方法论、研究/学术、通用集合)。避免过度设计:每个宏观类别划分为 3-7 个子类最合适。

不设“其它”兜底类别

如果“其它”超过 8 个项目,就必须将它们归入有名称的类别,即使类别较窄(例如 ⚠️ 可疑/Game exploit、❓ 无描述/不明、🎮 游戏移植)。这样能提高可疑项目的可见度,而不是降低它们的曝光。

步骤 4:添加超链接

每个项目都必须包含完整的 GitHub URL:[user/repo](https://github.com/user/repo)

步骤 5:战略洞察

指出 3-5 个高层次趋势,并用一句话概括当天的整体氛围。

步骤 6:输出

根据用户选择的格式:

Markdown(选项 1)

在对话中输出:

# GitHub Trending 全景分析(YYYY-MM-DD)

## 📅 Part 1:完整热门列表
### 🔴 每日热门(Daily)  — table
### 🟡 每周热门(Weekly) — table
### 🟢 每月热门(Monthly)— table

## 🏗️ Part 2:分类分析
(One table per category)

## 💡 Part 3:战略洞察
(3-5 insights + vibe summary)
HTML(选项 2)

按照 references/pinterest-design.md 中的设计规范,生成一个独立的 HTML 文件。使用 open <path> 在浏览器中打开。

对于较长的报告(≥ 6 个宏观章节),按照设计文档的规范添加浮动迷你目录——固定在右侧的面板,带有滚动定位和可折叠的子分组。避免使用占满整行的目录:它会占用首屏空间。

两者(选项 3)

在对话中显示 Markdown,并生成 HTML 文件。

步骤 7:保存到 Obsidian

生成后,保存到 Obsidian 库:

  • 库路径:读取 ~/Library/Application Support/obsidian/obsidian.json,选择可访问的库。
  • 文件夹:GitHub-Trending/
  • Markdown:GitHub-Trending/YYYY-MM-DD.md,并添加 frontmatter:
    ---
    date: YYYY-MM-DD
    type: github-trending
    tags: [github, trending, AI, open-source]
    ---
    
  • HTML:GitHub-Trending/YYYY-MM-DD.html
  • 只保存用户请求的格式。
  • 如果无法访问库(权限错误),保存到工作目录并告知用户。

语言

如果用户将 中文 作为参数传入,则所有内容均使用中文输出。否则默认使用英文。

评论

支持 Markdown