Back to skills
SKILL.md
Promote
ASecurityPromote an open-source project across CN & EN channels — reads the repo, generates per-channel tailored copy, auto-submits issue/PR-type channels via gh, assists the rest. Use when the user wants to 宣传/推广/publicize/launch/submit their open-source project, or asks "帮我把这个项目投到阮一峰周刊/HelloGitHub/Show HN".
- 930 stars
- 0 votes
- 0 copies
- 2 views
- Added September 6, 2026
Works with
Security analysis
100/100Pro scans all 20 files and shows the line behind each finding
npx -y skills add ccplugins/awesome-claude-code-plugins --skill promote --agent claude-codeAre you the author of Promote?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/ccplugins-promote)---
name: promote
description: Promote an open-source project across CN & EN channels — reads the repo, generates per-channel tailored copy, auto-submits issue/PR-type channels via gh, assists the rest. Use when the user wants to 宣传/推广/publicize/launch/submit their open-source project, or asks "帮我把这个项目投到阮一峰周刊/HelloGitHub/Show HN".
---
# promote — 开源项目一键合规宣传
核心原则:**一键 ≠ 一键全发**。渠道分三级自动化,越权发帖 = spam = 毁项目声誉。
## 流程
### 1. 项目画像(必做,一切文案的源头)
**硬性前置闸门,任一不过就停下问用户,不进入后续步骤:**
- `gh repo view <owner>/<repo>` 必须成功(仓库公开可达)。本地路径则检查 `git remote -v` 有 GitHub remote 且已 push——**稿件里的每个链接都必须真实可达,绝不写入死链**
- LICENSE 文件真实存在才可声明协议;README 说 MIT 但没有 LICENSE 文件 → 提醒用户先补
然后读 README 全文、描述、topics、star 数、最近活跃度,提炼:一句话定位(它是什么+替代/优于什么)、目标人群、3 个差异化亮点、演示素材(截图/GIF/demo URL)。
README 薄的判定(缺任一项即问用户补齐,不要编):① 一句话说清它是什么 ② 安装/使用方法 ③ 至少一个具体使用场景或示例。
### 2. 渠道选择
读 `channels/` 下所有渠道文件的 frontmatter,按项目画像过滤:
- 语言匹配:投 EN 渠道的条件 = 有英文 README(或 README 本身是英文);不满足时该渠道仍可列出但标注「需先补英文文档」,用户坚持投则明示风险后照办
- 门槛匹配(如渠道要求 star 数 / 入门级 / dev-tool 类目)
- 检查 `PROMO-LOG.md`(项目根目录):**同一渠道 30 天内有任何记录(含 rejected)即跳过**,冷却期从最新一条记录的日期起算
用 AskUserQuestion 列出推荐渠道(含自动化等级标注)让用户勾选;用户明确说"全投"则投所有合规匹配渠道。
### 3. 逐渠道生成定制稿
对每个选中渠道,读其 `channels/<id>.md` 全文,**严格按其 format_spec 生成**:
- 禁止一稿多投:每渠道的标题风格、篇幅、语气、结构都不同(阮一峰自荐 ≠ Show HN 标题 ≠ V2EX 分享创造帖)
- 文案原则:说人话、给事实(能做什么、和现有方案差在哪),禁营销腔/AI 味(震惊体、emoji 堆砌、buzzword)
- **去 AI 味终审(必做)**:装了 deslop 类 skill 就调用它过一遍;没装则至少执行硬规则:禁破折号(——)、禁「不是…而是…」否定对比句、弯引号换直角引号「」、删段末总结句、删互联网黑话
- **配图(必做)**:几乎所有渠道带图命中率都更高。优先级:① 项目已有截图/GIF 直接用 ② 真实运行录屏/截图(终端工具录一段 demo)③ 用可用的图像生成能力(imagegen/codex 出图/自绘 SVG 转 PNG)设计一张说明产品原理的宣传图。图片提交到项目仓库(如 `docs/assets/`)用 raw.githubusercontent.com URL 引用,别用外部图床。渠道规格标注图片必备的(如 ruanyf-weekly),无图不投
- 全部稿件先写入 `promo-drafts/<channel-id>.md` 落盘;**文件首行固定为 `Title: <标题>`**(即使该渠道标题走 `gh --title` 参数不进 body),复盘时才对得上号
### 4. 分级执行
按渠道 frontmatter 的 `automatable` 字段:
- **full**(issue/PR 型):先 `gh auth status` 确认已登录(未登录 → 让用户 `gh auth login`,停在这里)→ 展示最终稿 → 用户确认一次 → `gh` CLI 提交 → 记录返回 URL。失败就报错停,不换渠道兜底。
- **assisted**(网页表单型):给出最终稿 + 提交 URL + 逐字段填写指引;有浏览器工具可代填但提交按钮由用户点。
- **manual-only**(社区发帖型):只交稿件 + 建议发帖时间(见渠道文件)+ 红线提醒。**任何情况下不代发**。
### 5. 记录与复盘
把本次投递写入目标项目根目录 `PROMO-LOG.md`,固定表格 schema(机器可读,下次运行先读它):
```markdown
| channel | date | draft | url | status |
|---|---|---|---|---|
| ruanyf-weekly | 2026-07-02 | promo-drafts/ruanyf-weekly.md | https://github.com/ruanyf/weekly/issues/NNN | submitted |
```
- `date` 用 ISO(YYYY-MM-DD);`status` ∈ draft / submitted / published / rejected
- 30 天冷却按该渠道最新一行的 date 计算,任何 status 都算
## 红线(任何渠道通用)
- 不伪造用户身份发言;不注册马甲;不安排互赞互顶(HN voting ring 会连坐封域名)
- 同一渠道 30 天内不重复投同一项目
- 渠道规则与本 skill 冲突时,以渠道最新规则为准(提交前 spot-check 渠道规则页是否变化)
Files in this skill
- SKILL.md
- channels/_template.md
- channels/appinn.md
- channels/awesome-claude-code.md
- channels/awesome-list.md
- channels/dev-newsletters.md
- channels/devto.md
- channels/eleduck.md
- channels/gitee-gvp.md
- channels/githubdaily.md
- channels/hellogithub.md
- channels/indiehackers.md
- channels/jike.md
- channels/launch-boards.md
- channels/lobsters.md
- channels/oschina.md
- channels/product-hunt.md
- channels/reddit.md
- channels/ruanyf-weekly.md
- channels/show-hn.md
Attribution
Comments
Loading comments…
Newsletter
Get the weekly list of safe new skills, and the ones we pulled.