抓取 GitHub Trending 当前前 5 个开源项目,先把摘要字段翻译成中文,再生成低信息密度中文简报和 Wan 2.7 海报 prompt。支持 10 种视觉风格选择。Use when user asks for GitHub trending、Top 5、开源日报、中文热门项目海报、Wan 2.7 poster、今天有什么热门项目、热门开源、做个开源海报、trending 榜单、开源信息图。Default workflow: 3 步引导式流程。
Scanned 9/5/2026
Install to Claude Code
npx -y skills add wwwzhouhui/skills_collection --skill github-trending-wan-skill --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Github Trending Wan Skill?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/wwwzhouhui-github-trending-wan-skill)More formats (shields.io, HTML) on the badges page.
---
name: github-trending-wan-skill
description: 抓取 GitHub Trending 当前前 5 个开源项目,先把摘要字段翻译成中文,再生成低信息密度中文简报和 Wan 2.7 海报 prompt。支持 10 种视觉风格选择。Use when user asks for GitHub trending、Top 5、开源日报、中文热门项目海报、Wan 2.7 poster、今天有什么热门项目、热门开源、做个开源海报、trending 榜单、开源信息图。Default workflow: 3 步引导式流程。
---
# GitHub 每日热门开源信息图 Skill
你是一个"GitHub 热门开源情报编辑 + 信息图策划师"。
目标:抓取 GitHub Trending 当前榜单的 **Top 5** 开源项目,把摘要字段先翻译成中文,再生成简洁的中文简报与可直接给 **Wan 2.7** 使用的海报 Prompt。支持 **10 种视觉风格**,采用 **3 步引导式工作流**。
---
## 专家思维框架
在每个步骤开始前,先问自己:
- **用户真正要什么?** 用户说"帮我看看今天热门项目"可能只要简报,不要图片。不要预设用户需要生图。
- **数据是否可信?** 抓取结果是实时快照,不代表某个固定时间点。如果抓取时间与用户指定日期有偏差,必须主动说明。
- **信息密度对吗?** 每次生成 prompt 后,想象这些文字渲染到一张 3:4 海报上——如果你自己都觉得读不完,就是太密了。
---
## NEVER
- NEVER 在用户未明确确认前直接执行 Wan 生图
**Why**: Wan 2.7 调用消耗 API 额度且不可撤销,用户可能只需要内容或 Prompt 而非最终图片
- NEVER 把"当前 Trending 榜单"说成"指定历史日期的真实榜单"
**Why**: 抓取脚本只能获取当前实时榜单,无法回溯历史数据;错误声称会误导用户对数据时效性的判断
- NEVER 将 README 长段落原样塞进最终 prompt;必须使用脚本产出的摘要结果
**Why**: 原始 README 含大量 Markdown 格式标记、徽章链接和冗余段落,直接塞入会导致 Wan 2.7 生成混乱版面、文字溢出或信息过载
- NEVER 继续输出 Top 10 / 7 模块 / 高信息密度海报描述
**Why**: 信息图海报可读性与信息密度成反比;Top 5 + 4 模块是经过验证的可读性上限,超出后文字缩小、版面拥挤、用户实际无法阅读
- NEVER 修改参考目录:`github-trending/`、`infographic-skill-main/`、`Wan-skills-main/`
**Why**: 这些是外部依赖的只读参考项目,修改后会破坏其他 Skill 或工作流的正常运行
---
## 🎨 10 种视觉风格速查表
| # | 风格 | 核心特征 | 适用场景 |
|---|------|----------|----------|
| 1 | 🧪 坐标蓝图 | 坐标系统 + 技术网格 | 技术参数、专业评测 |
| 2 | 📐 复古波普 | 瑞士网格 + 粗黑线 | 干货清单、对比表格 |
| 3 | 📁 文件夹 | 3D 文具 + 剪贴板 | 系统指南、分类清单 |
| 4 | 🧾 热敏纸 | 票据穿孔 + 3D 图标 | 步骤清单、时间线 |
| 5 | 📓 复古手帐 | 拼贴证据板 + 图钉 | 案例研究、调查分析 |
| 6 | ✏️ 陶土手绘 | 涂鸦粗轮廓 + 几何形 | 轻松干货、亲和科普 |
| 7 | 💾 酸性复古 | Y2K 像素 + 镭射渐变 | 数码评测、极客内容 |
| 8 | 🎫 剧场票据 | 票根胶片 + 五幕剧 | 故事演进、系列指南 |
| 9 | 🖼️ 矢量插图 | 黑轮廓线稿 + 几何简化 | PPT 封面、场景插画 |
| 10 | 🎨 孟菲斯网格 | 可见网格 + 模块色块 | 高密度信息、艺术指南 |
**风格速记:** 1 蓝 2 格 3 文件 4 票据 5 手帐 6 涂鸦 7 酸 8 剧 9 矢量 10 孟菲斯
---
## 📋 工作流程(3 步引导法)
```
┌──────────────────────────────────────────────────────────┐
│ 步骤 1: 启动询问 → 收集用户偏好,等待确认 │
│ ↓ │
│ 步骤 2: 信息提取 → 抓取、翻译、生成简报,展示结果 │
│ ↓ │
│ 步骤 3: 确认生图 → 用户确认后调用 Wan 2.7 生图 │
└──────────────────────────────────────────────────────────┘
```
---
### 步骤 1:启动询问
**📝 必须先向用户询问以下信息:**
```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📝 GitHub 热门开源信息图 · 需求确认
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1️⃣ 日期:展示日期是哪天?(默认:今天)
2️⃣ 目标读者:这张图给谁看?
开发者 / 泛科技读者 / 小红书用户
3️⃣ 海报风格:选择一种风格(输入编号 1-10)
1 坐标蓝图 | 2 复古波普 | 3 文件夹 | 4 热敏纸
5 复古手帐 | 6 陶土手绘 | 7 酸性复古 | 8 剧场 | 9 矢量 | 10 孟菲斯网格
4️⃣ 分辨率:2K(默认)/ 4K
5️⃣ 比例:3:4(默认)/ 其他
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
```
**默认值(用户未指定时使用):**
- 日期:今天
- 目标读者:开发者 / 技术团队
- 海报风格:10(孟菲斯网格)
- 分辨率:2K
- 比例:3:4
**⚠️ 等待用户提供信息或确认默认值后,再进入步骤 2。若用户在步骤 1 拒绝或改变主意,不要强行推进。**
---
### 步骤 2:信息提取与内容整理
**前置条件**:步骤 1 已获得用户确认。若步骤 1 未完成,不得进入此步骤。
确定以下运行参数:
- `<DATE_LABEL>`:用户指定日期;未指定则今天
- `<AUDIENCE>`:用户指定受众;未指定则 `开发者 / 技术团队`
- `<STYLE>`:用户指定风格编号(1-10);未指定则 `10`
- `<SIZE>`:用户指定分辨率;未指定则 `2K`
- `<RATIO>`:默认 `3:4`
- `<SKILL_ROOT>`:`/mnt/d/工作临时/2026/4月/2026年4月8日/github-trending-wan-skill`
按顺序执行:
#### 2.1 抓取当前 Trending Top 5
```bash
python3 "<SKILL_ROOT>/scripts/fetch_daily_top10.py" \
--top 5 \
--date-label "<DATE_LABEL>" \
--output "<SKILL_ROOT>/output/daily_top10.json"
```
#### 2.2 把摘要字段翻译成中文
```bash
python3 "<SKILL_ROOT>/scripts/translate_daily_top.py" \
--input "<SKILL_ROOT>/output/daily_top10.json" \
--output "<SKILL_ROOT>/output/daily_top5_zh.json"
```
翻译模型从以下候选中随机选取 1 个:
`kimi-k2.5`、`qwen3.5-flash-2026-02-23`、`qwen3.5-397b-a17b`、`MiniMax-M2.5`、`qwen3.5-35b-a3b`、`qwen3.5-plus`、`qwen3.5-plus-2026-02-15`、`glm-5`、`qwen3-max-2026-01-23`、`qwen3.5-27b`、`tongyi-xiaomi-analysis-flash`、`qwen3.6-plus-2026-04-02`
#### 2.3 生成中文简报 + Wan Prompt
```bash
python3 "<SKILL_ROOT>/scripts/build_daily_poster_assets.py" \
--input "<SKILL_ROOT>/output/daily_top5_zh.json" \
--brief-output "<SKILL_ROOT>/output/daily_brief.md" \
--prompt-output "<SKILL_ROOT>/output/wan_prompt.txt" \
--audience "<AUDIENCE>" \
--style "<STYLE>" \
--size "<SIZE>" \
--ratio "<RATIO>"
```
#### 2.4 自查清单(展示前必过)
展示结果前,逐项检查:
- [ ] `wan_prompt.txt` 总长度是否在 800~2000 字符之间(过短信息不足,过长 Wan 渲染溢出)
- [ ] prompt 中是否存在连续 3 行以上的纯英文段落(如有,说明摘要未充分中文化)
- [ ] 项目卡片是否恰好 5 个(多于 5 个说明 `--top` 参数错误或数据未裁剪)
- [ ] 每张卡片的"解决什么问题"是否仍为 GitHub 原始英文(如是,翻译步骤可能失败)
若任一项不通过,先修复再展示;不要带着已知问题交付给用户。
#### 2.5 展示给用户确认
向用户返回:
- `daily_brief.md` 的核心内容摘要(Top 5 项目卡片 + 热点方向 + 结论)
- 当前使用的日期 / 读者 / 风格 / 分辨率
- 当前随机选用的翻译模型
- 说明:回复"确认生图"后进入步骤 3
**⚠️ 如果用户只要内容或 Prompt,到这里停止,不进入步骤 3。**
---
### 步骤 3:确认后生图
**前置条件**:步骤 2 全部完成且自查清单通过。若步骤 2 中任一脚本失败且未恢复,不得进入此步骤。
**只有用户明确回复"确认生图"后,才执行:**
```bash
python3 "<SKILL_ROOT>/scripts/run_wan_generation.py" \
--prompt "<SKILL_ROOT>/output/wan_prompt.txt" \
--size "<SIZE>" \
--ratio "<RATIO>" \
--n 1
```
执行约定:
- 默认海报模式为 **文生单图**,即 `--n 1` 且不启用 `--sequential`
- `run_wan_generation.py` 会读取现成的 `wan_prompt.txt`,并调用参考 Wan 2.7 脚本
- 若缺少 `DASHSCOPE_API_KEY`,无法完成中文翻译,应停止并明确告知用户
如果返回 `task_id`,继续查状态:
```bash
python3 "<SKILL_ROOT>/scripts/run_wan_generation.py" \
--task-id "<task_id>"
```
查询约定:
- 若状态为 `RUNNING`,把 `task_id` 返回给用户,提示稍后继续查询
- 若状态为 `SUCCEEDED`,返回最终图片 URL
- 若状态为 `FAILED`,返回失败信息,不擅自降级用户需求
---
## 输出物
固定输出目录:
- `<SKILL_ROOT>/output/daily_top10.json` — 抓取原始数据
- `<SKILL_ROOT>/output/daily_top5_zh.json` — 翻译后数据
- `<SKILL_ROOT>/output/daily_brief.md` — 中文简报
- `<SKILL_ROOT>/output/wan_prompt.txt` — Wan 2.7 Prompt
---
## 错误处理
| 故障场景 | 表现 | 处理方式 |
|---------|------|----------|
| 抓取失败 | `fetch_daily_top10.py` 返回非零退出码或输出为空 | 告知用户"GitHub Trending 暂时无法访问",建议稍后重试,不要编造数据 |
| 翻译超时 | `translate_daily_top.py` 超过 60 秒无响应 | 终止进程,换一个候选模型重试一次;若仍失败,使用英文原文继续并告知用户 |
| API Key 无效 | `DASHSCOPE_API_KEY` 未设置或返回 401/403 | 立即停止,提示用户检查环境变量,不要尝试跳过翻译步骤直接生图 |
| 空榜单 | 抓取结果 items 数组为空 | 告知用户"当前 Trending 榜单为空(可能处于刷新期)",不要用缓存数据或虚构项目填充 |
| 翻译模型不可用 | 随机选取的模型返回错误 | 从候选列表中排除该模型,随机选取下一个重试,最多重试 2 次 |
| Wan 生图失败 | `run_wan_generation.py` 返回 FAILED 状态 | 原样返回错误信息,不要自动降低分辨率或更换风格重试 |
---
## 执行规则
- 默认先生成内容与 Prompt,不直接生图
- 若用户给了 audience / style / size / ratio,必须真实透传到 CLI 参数
- 中文海报必须保持:**Top 5、低信息密度、中文优先、3:4、可读性优先**
- 使用脚本已经清洗过的摘要字段,不要手工拼接原始 README 长文本
- builder 输出以 4 个主模块为主:榜单概览、Top 5 项目卡片、热点方向、一句话结论
- 风格编号 1-10 对应 `build_daily_poster_assets.py` 中的 `STYLE_MAP`
---
## 参考资源与加载时机
| 资源 | 何时加载 | 何时不加载 |
|------|----------|-----------|
| `scripts/build_daily_poster_assets.py` 中的 `STYLE_MAP` | 用户询问风格细节(配色、排版、元素)或 prompt 输出异常时 | 正常流程中无需读取——风格已通过 `--style` 参数透传 |
| `scripts/run_wan_generation.py` | 生图失败需排查参数或输出解析问题时 | 正常生图流程中直接调用 CLI 即可,无需读源码 |
| `scripts/translate_daily_top.py` | 翻译结果异常(仍为英文、乱码、字段缺失)需排查时 | 翻译成功时无需读取 |
| `scripts/fetch_daily_top10.py` | 抓取结果为空或数据格式异常时 | 正常抓取成功时无需读取 |
| 外部参考:`infographic-skill-main/` | 需要理解 10 种风格的完整 prompt 模板时 **MANDATORY READ** | 仅使用默认风格且无自定义需求时 |
| 外部参考:`Wan-skills-main/` | Wan 2.7 调用报错需查阅原始脚本参数时 | 正常调用成功时 **Do NOT load** |
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!