UI はローカライズ済みです。スキルの紹介と説明文書は選択した言語へ AI が自動翻訳し、コード・コマンド・パス・専門用語は原文のままです。原作者の文書が優先されます。
スキルを探す
開発・技術 · SKILL.md

github-daily-trending

github-daily-trending

黑马发现引擎 · 多源项目选题 → 公众号文章全流程工具。 当用户说"今天GitHub有什么"、"帮我找选题"、"写公众号"、"生成今日推送"、"黑马"、"找项目"时触发。 覆盖:多源采集 → 分类探索 → 黑马报告 → 用户选题 → 输出文章 → 存档 → 互动反馈。

Independent GitHub snapshot · Automated classification · Original documentation governs

スキルの説明

GitHub

name: github-daily-trending description: > 黑马发现引擎 · 多源项目选题 → 公众号文章全流程工具。 当用户说"今天GitHub有什么"、"帮我找选题"、"写公众号"、"生成今日推送"、"黑马"、"找项目"时触发。 覆盖:多源采集 → 分类探索 → 黑马报告 → 用户选题 → 输出文章 → 存档 → 互动反馈。

黑马发现引擎 · 公众号全流程

核心理念

黑马项目:关注度不高,但真实地解决了某一个场景的问题。

不是热度排行,是场景发现。每天探索不同分类,覆盖不同领域,推送有差异化。

工作流总览

定时任务触发(每日 06:50 UTC)
  → 判断今日类型:日报 / 周六周报 / 月末月报
  → 多源采集
  → 黑马候选池(10条,不同分类)
  → 格式化推送报告
  → 用户选题
  → 六段式文章输出
  → 存档 + 互动反馈
  → **模型调用记录报告(见下方)**

报告类型与触发规则

日期条件报告类型内容发送
平常日(周一~周五)黑马日报今日 10 条黑马项目✅ 发送
每周六黑马周报本周 10 条黑马项目✅ 发送
每月最后一天黑马月报本月 10 条黑马项目✅ 发送
每周六(且是月末最后一天)黑马月报(优先)本月 10 条仅发月报

注意:当"周六"与"月末最后一天"重叠时,只发月报,不发周报。


Step 1:每日采集

采集工具

  • OpenClaw CDP Browser:GitHub Trending 页面(JS 渲染,必须用 CDP,不能用 requests)
  • Python urllib:HN Algolia API、Dev.to API、GitHub REST API(查项目创建时间)

数据源矩阵

① GitHub Trending(3个页面)

维度URL说明
今日https://github.com/trending无参数
本周-Allhttps://github.com/trending?since=weekly本周全语言
本月-Allhttps://github.com/trending?since=monthly本月全语言

GitHub Trending CDP 抓取 SOP(必须遵守!)

⚠️ 核心原则:每个维度用新开 Tab + browser open,绝对不要在已有 Tab 里 navigate!

原因:在已有 Tab 里 navigate 到新 URL 会触发 GitHub 反爬保护,导致 ERR_CONNECTION_TIMED_OUT 卡死。

抓取步骤(按日期条件抓):

  1. browser start
  2. 每天都要抓今日:Tab1: browser open → https://github.com/trending → 等待 snapshot 返回(约 18 秒)
  3. 如果今天是周六:追加 Tab2: browser open → https://github.com/trending?since=weekly
  4. 如果今天是月末最后一天:追加 Tab3: browser open → https://github.com/trending?since=monthly
  5. browser stop

关键参数:timeoutMs: 25000ms。

⚠️ navigate 必死:在同一个 Tab 里用 navigate 切换 URL = 必卡死。只能用 open 开新 Tab。

⚠️ 注意:

  • ?since=daily 返回 0 条,今日用无参数 URL
  • ?since=weekly / ?since=monthly 只在主页面有效

② HN Show HN(重要!项目源)

这是黑马软件/产品项目的最佳来源。发帖者发布自己做的东西,不是讨论新闻。

标签API URL说明
Show HNhttps://hn.algolia.com/api/v1/search?tags=show_hn&hitsPerPage=30主力项目源,有真实项目链接
Ask HNhttps://hn.algolia.com/api/v1/search?tags=ask_hn&hitsPerPage=10洞察真实需求,不是项目,价值低

Show HN 过滤规则: 只保留有外部项目链接的内容(排除纯 HN 讨论帖),优先 GitHub 链接。

③ Dev.to(项目/工具文章源)

标签API URL说明
showdevhttps://dev.to/api/articles?per_page=10&tag=showdev用户发布的工具/项目
opensourcehttps://dev.to/api/articles?per_page=10&tag=opensource开源项目介绍
clihttps://dev.to/api/articles?per_page=10&tag=cliCLI 工具
toolshttps://dev.to/api/articles?per_page=10&tag=tools效率工具

④ Product Hunt RSS(产品发布源)

用途URL
主页 Feedhttps://www.producthunt.com/feed
  • 格式:Atom XML(application/atom+xml)
  • 条目数:50 条
  • 特点:产品都是历史热门,但都是真实发布的产品,描述质量高
  • 用途:补充有「产品感」的软件产品,和 HN Show HN 互为补充
  • ⚠️ 注意: PH RSS 里很多是付费/SaaS 产品,写文章时需确认是否开源或可免费使用。

⑤ GitHub REST API(新项目挖掘)

用途URL 模板
按 topic 找新项目https://api.github.com/search/repositories?q=topic:{topic}+created:>{date}&sort=stars&per_page=5
按语言找新项目https://api.github.com/search/repositories?q=language:{lang}+created:>{date}&sort=stars&per_page=5

日期格式:YYYY-MM-DD,查询近 30 天内创建的项目。

常用 topic:tui, cli-tool, devtool, agent, ai-agent, automation, privacy-tool

⑥ 其他补充源

源类型说明
TechCrunch RSShttps://techcrunch.com/feed/科技产品新闻
LobstersHTML https://lobste.rs开发者社区小众项目

⑥ HuggingFace / ModelScope 模型动态

源方式说明
HuggingFaceTavily 搜索 HuggingFace trending model release热门模型、近期新发布
ModelScopeTavily 搜索 ModelScope hot model new LLM国内大模型动态
  • 采集方式:使用 Tavily 英文搜索获取近24小时模型动态
  • 注意:HuggingFace 和 ModelScope 官网 API 在当前环境网络不通,优先用搜索方式获取
  • 如果搜索无结果,标记为空,不要反复重试

⚠️ 已知陷阱

sub-agent 数据不准:delegate_task 的子 agent 调用 GitHub REST API 时可能返回错误数据(例如把 Swift 项目报成 Go、把 4491 stars 报成 47 stars)。所有项目数据必须用 terminal/curl 直接调用 GitHub API 二次验证,不得直接信任子 agent 返回的原始 API 结果。


采集策略(每日轮换)

10 个探索分类,每天覆盖 3-4 个,确保不重复推送相同领域:

分类主源探索方式
🔁 AI 基础设施GH API topic:agent找 Agent/ML 框架
🛠️ 开发者工具GH API topic:devtool找新 CLI/编辑器插件
🚀 效率工具Dev.to #tools找自动化/提速工具
📦 开源项目HN Show HN找真实发布的开源项目
🌐 垂直场景HN Show HN(过滤)找医疗/教育/硬件项目
💡 概念验证HN Show HN(低票)找新出现的 Demo/原型
🔧 基础设施GH API 新项目找数据库/缓存/网络工具
🎨 创意/媒体Dev.to #showdev找设计/音视频工具
🔒 安全/隐私HN Show HN(过滤)找安全/加密工具
📱 终端/桌面GH API topic:tui找 TUI/终端/桌面工具

轮换逻辑: 每天随机选 3-4 个分类,确保 3 天内覆盖所有 10 个分类。

黑马拉分算法

def blackhorse_score(total_stars, period_stars, is_new=False):
    """黑马分数:新项目加权 + 小项目加成"""
    if total_stars < 5000:   mult = 2.0   # 最强黑马相
    elif total_stars < 20000: mult = 1.5   # 较强黑马相
    elif total_stars < 100000: mult = 1.0  # 正常
    else:                    mult = 0.8   # 大项目压制
    
    base = int(period_stars * mult)
    
    # 新项目加权(创建 <30 天)
    if is_new:
        base = int(base * 1.5)
    
    return base

Step 2:推送选题报告

⚠️ 【时区警告 必读】 本任务由 cron 调度在 isolated session 中执行,session 内部默认 UTC 时区。 必须先执行以下命令获取北京时区的真实日期,再判断报告类型:

date -d '+8 hour' '+%Y-%m-%d'
date -d '+8 hour' '+%u'  # 1=周一 ~ 7=周日
  • %u 为 1-5 → 黑马日报(平常日)
  • %u 为 6 → 黑马周报(周六)
  • 每月最后一天 → 黑马月报(月末) 绝对不要直接用 UTC 日期判断。

推送规则(三种报告)

  • 黑马日报:平常日(周一~周五),10 条今日黑马项目
  • 黑马周报:每周六,10 条本周(since=weekly)黑马项目
  • 黑马月报:每月最后一天,10 条本月(since=monthly)黑马项目
  • 优先级:月报 > 周报(月末周六只发月报);周六且非月末发周报

报告样式一:黑马日报(平常日)

🌙 **黑马日报 · 直隶按察使**
📅 {{date}} · 平常日
━━━━━━━━━━
🔍 数据:GitHub Trending · HN Show HN · Dev.to · GH API
🎯 今日探索:{{分类列表}}

━━ 🏆 TOP 10 黑马项目 ━━━

{% for item in items %}
{{loop.index}}️⃣ 【{{item.category}}】{{item.name}}
💬 {{item.description}}
📊 ⭐{{item.total_stars}} | {% if item.today_stars %}+{{item.today_stars}} ⭐ {% endif%}{% if item.growth_rate %}{{item.growth_rate}}{% endif %}
🔗 {{item.url}}
🏷️ {% if item.source=='hn-showhn' %}HN{% else %}{{item.source}}{% endif %}
💡 {{item.angle}}

{% endfor %}

━━ 📌 选题优先级 ━━━
🥇 最高优先:{{top1.name}} — {{top1.reason}}
🥈 次高优先:{{top2.name}} — {{top2.reason}}
🥉 第三优先:{{top3.name}} — {{top3.reason}}

━━━━━━━━━━
💬 回复序号(1-10)选择项目开写
 「全部」生成完整10篇
━━━━━━━━━━

报告样式二:黑马周报(每周六)

🌅 **黑马周报 · 直隶按察使**
📅 {{date}} · {{week_range}}(本周)
━━━━━━━━━━
🔍 数据:GitHub Trending 本周 · HN Show HN · Dev.to
📌 说明:本周黑马 = 2026年{{week_num}}周增长最快的开源项目

━━ 🏆 本周 10 条黑马 ━━━

{% for item in items %}
{{loop.index}}️⃣ 【{{item.category}}】{{item.name}}
💬 {{item.description}}
📊 ⭐{{item.total_stars}} | {% if item.week_stars %}+{{item.week_stars}} 本周新增{% endif %}
🔗 {{item.url}}
💡 {{item.angle}}

{% endfor %}

━━ 📌 本周黑马趋势洞察 ━━━
{{trend_summary}}

━━━━━━━━━━
💬 回复序号(1-10)选项目开写
━━━━━━━━━━

报告样式三:黑马月报(每月最后一天)

🌕 **黑马月报 · 直隶按察使**
📅 {{date}} · {{month}} 月报
━━━━━━━━━━
🔍 数据:GitHub Trending 本月 · HN Show HN · Dev.to
📌 说明:本月黑马 = {{month}}月增长最快的开源项目

━━ 🏆 本月 10 条黑马 ━━━

{% for item in items %}
{{loop.index}}️⃣ 【{{item.category}}】{{item.name}}
💬 {{item.description}}
📊 ⭐{{item.total_stars}} | {% if item.month_stars %}+{{item.month_stars}} 本月新增{% endif %}
🔗 {{item.url}}
💡 {{item.angle}}

{% endfor %}

━━ 📌 {{month}}月黑马全景 ━━━
{{month_summary}}

━━━━━━━━━━
💬 回复序号(1-10)选项目开写
━━━━━━━━━━

推送规范(通用)

  • 每日/每周/每月 10 条,不允许少
  • 选 blackhorse_score 最高 + 增长率高的项目
  • 每个项目必须标注分类标签和数据来源
  • 项目简介:1句话说明项目是干什么的
  • 切入点提示:为什么值得写(解决什么场景问题)
  • 差异化要求:同分类项目不连续出现,确保多分类覆盖

Step 3:输出文章(内容 + HTML)

⚠️ 技能协调:github-daily-trending 负责内容写作(六段式),zhili-publish 负责微信 HTML 渲染(内联样式、mmbiz 图)。写完文章后必须加载 zhili-publish 生成微信草稿,禁止直接发布 markdown 或未按内联样式转换的 HTML。

标题公式

数字 + 感叹 + 核心洞察 + 团队/语言背景 + 未来感结尾
例:「49k stars!把终端变成 AI 开发环境:Warp 让我重新理解了什么叫"下一代 IDE"」

六段式结构

一、痛点/现状切入

  • 描述 3 种常见现状(各 1-2 句),用一句话总结核心问题
  • 结尾直接点出项目要解决什么
  • 关键:要有具体场景,让读者"对号入座"

二、项目介绍 + 核心概念

  • 第一句:一句话定位(项目名 + 团队 + 核心定位)
  • 第二句:一句话描述(用"一句话描述:XXX"的句式)
  • 数据卡片:Stars / Forks / License / 语言
  • 核心概念列表(加粗):每个概念名 + 定义 + 举例
  • 典型工作流图示:[步骤1] → [步骤2] → [步骤3]

三、怎么用?

  • 环境要求
  • 快速上手 3 步(代码块)
  • 实战案例(失败→介入→成功完整弧线)

四、技术亮点

    1. 2. 3. 4. 5. 编号
  • 每条:加粗标题(一句话概括)+ 正文(2-3句解释原理)

五、行业观察

  • 描述行业现状或争议
  • 给不同立场的信息
  • 一句锐利结论收尾(加粗)
  • 关键:要有立场,不只是客观陈述

六、总结

  • 核心判断(加粗)
  • 列表总结项目价值
  • 收尾金句(类比或洞察)
  • Star号召固定句式 + 项目地址 + 数据来源固定格式

必须元素清单

元素格式
数据卡片**GitHub**: url | **Stars**: Xk | **Forks**: X | **语言**: XXX
GitHub链接数据卡片同行
核心概念列表• **概念名(加粗)**:定义 + 举例
工作流图示[步骤1] → [步骤2] → ...
实战案例弧线• **第N次尝试(状态)**:动作 + 结果
技术亮点**1. 标题**:解释
收尾金句有洞察力的判断句
Star号召如果你觉得这个 XXX 有意思,欢迎 Star 支持开源 🧬
数据来源`📌 数据来源:GitHub Trending,YYYY-MM-DD

⚠️ 内容写作 → HTML 转换规则(必须遵守)

六段式内容写完后,交给 zhili-publish 技能生成微信 HTML,自己不要手动拼 HTML。但写作时要注意:

内容写法(六段式)微信 HTML 要求
**粗体文字**必须转换为 <strong style="color:#e63946;">粗体文字</strong>,禁止保留 **
• **概念名**:描述概念名加粗用 <strong>,列表符号 • 直接写文字不要用 <ul>
1. 2. 3. 4. 5. 技术亮点编号列表在 HTML 中用 **1. 标题**:解释 的 <p> 段落,不可用 <ol>
代码块用三个反引号包裹,HTML 阶段会转换为 <pre><code>...</code></pre>

⚠️ 最高频踩坑——** Markdown 粗体残留**:写作时写 **文字** 是给内容加粗的正确方式,但进入 HTML 阶段如果直接写入 HTML 文件,会变成字符串 **文字** 而不是 <strong>文字</strong>。发布前必须 grep -n '\*\*' /tmp/article.html 确认返回空。

生成微信草稿的完整流程见 zhili-publish 技能。


Step 4:存档记录

文章发出后:

  1. 更新 references/article-index.md
  2. 存档文章到 articles/YYYY-MM-DD-[项目名].md

Step 5:互动数据反馈优化

收到互动数据后:

  1. 读取 references/article-index.md 找到文章
  2. 读取 references/profiles/account-zhili.md
  3. 分析数据,更新 index
  4. 将优化建议追加到 references/profiles/account-zhili.md 和 MEMORY.md
  5. 调整后续推荐逻辑

Step 6:定时任务配置

时间任务说明
每天 06:50 UTC采集 + 判断日期类型判断今日是日报/周报/月报
06:55 UTC推送报告根据类型发送对应报告
每周六 06:50采集 + 周报推送本周黑马 10 条
每月最后一天 06:50采集 + 月报推送本月黑马 10 条

同天不重复规则:

  • 周六 + 月末最后一天 → 只发月报,不发周报
  • 月末非周六 → 发月报
  • 周六非月末 → 发周报
  • 平常日 → 发日报

任务完成汇报规范(每次推送后必须执行)

每次任务完成后,在最后一条飞书汇报消息的末尾追加以下格式:

**本次任务模型调用记录**

| 调用项 | 模型/工具 |
|--------|----------|
| 文章生成(如有) | MiniMax-M2.7-highspeed |
| GitHub Trending 采集 | CDP Browser |
| 项目数据验证 | GitHub REST API |
| 封面图生成 | Python PIL (Pillow) |
| 微信草稿箱发布 | WeChat Draft API |

**本次任务全部完成 ✅**

(如有具体产出,追加说明,例如「共完成 N 篇:项目名1 + 项目名2」)

数据文件:

  • trending/YYYY-MM-DD.json(原始采集)
  • trending/report-YYYY-MM-DD.json(结构化报告)
  • articles/YYYY-MM-DD-[项目名].md(文章存档)
  • references/article-index.md(文章索引)

参考文件

  • 完整格式规范:references/format-guide.md
  • 账号画像:references/profiles/account-zhili.md(直隶按察使)
保存したスキル