mcpField
S
show-hn-writer

show-hn-writer

github.com/varnan-tech营销与增长68744 次安装2 周前更新
代码仓库

关于 show-hn-writer

show-hn-writer 是用于撰写 Hacker News 投稿标题及必要时正文的技能。它依据对 250 篇高排名帖子的模式总结,并按扩大触达或促进讨论等目标调整草稿。

主要功能

  1. 01拟定三个标题版本
  2. 02提供普通、Show HN、Ask HN 或 Tell HN 格式
  3. 03依据观察到的帖子提供标题长度和风格建议
  4. 04仅在技术细节值得说明时撰写正文
  5. 05可抓取近期 HN 热帖作为参考

适用场景

  1. 01为产品发布或项目准备 Hacker News 投稿
  2. 02按触达或讨论目标选择标题角度
  3. 03检查近期 HN 帖子是否有相似投稿

安装

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

$npx skills add https://github.com/varnan-tech/opendirectory --skill show-hn-writer

安装后在 Claude Code 中输入/show-hn-writer确认已加载。

包含的文件

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

.env.example
README.md
evals/
evals.json
references/
hn-rules.md
title-formulas.md

详细介绍

Show HN 写作指南 — 数据支持版

这项技能会根据从 250 篇真实高排名帖子中提取的模式撰写 HN 帖子。 以下每条规则都来自观察数据,而非惯例。


数据说明了什么(写作前请牢记)

这些结论来自 2026 年 4 月 18 日抓取的 250 篇 HN 高排名帖子。它们优先于 任何关于 HN 写作的既有经验之谈。

标题长度是预测得分的最强单一指标。

  • 少于 40 个字符:平均 248 分(n=82)
  • 40–59 个字符: 平均 192 分(n=68)
  • 60–79 个字符: 平均 150 分(n=91)
  • 80 个及以上字符: 平均 131 分(n=9) 默认目标:少于 40 个字符。硬性上限:60 个字符。

正文不影响得分。 90% 的帖子没有正文。有正文的帖子平均得分为 189 分;没有正文的为 193 分。两者 在统计上没有差异。只有当你确实有有趣、且无法放进标题的技术细节时,才值得写正文。 不要为了显得可信而填充正文。

Show HN 前缀会拉低得分。 Show HN 帖子的平均得分为 94 分,而普通陈述标题为 186 分以上。这个标签传达出 “我想听大家对我的东西的反馈”,容易让读者更加挑剔。只有当项目确实新颖时才使用“Show HN:”。 同时务必提供一个不带前缀的标题备选。

第一人称标题表现优于匿名陈述。 第一人称(“我……”“我的……”“我们……”):平均 291 分(n=9)。 普通陈述:平均 186 分(n=126)。 如果开发者的视角是故事的一部分,就把它放在开头。

疑问句带来的评论多于点赞。 疑问句标题的评论数与得分之比平均超过 1.0×。这类标题适合引发讨论, 而非单纯追求得分。撰写前,先问用户希望优化哪一项。

表现持续突出的主题:

  • 安全 / 后门 / 泄露事件:平均 308 分
  • 隐私 / 监控 / 数据相关:平均 282 分
  • AI / LLM 发布:平均 266 分(42 篇,是数量最多的类别)
  • 开源发布:平均 485 分(样本量较小,但信号明显)

得分最高的标题有一个共同点:它们讲的是故事,而不是主题。 “有人买下 30 个 WordPress 插件,并在每个插件里植入了后门”——1192 分。 “Google 对我食言了——现在 ICE 拿到了我的数据”——1688 分。 主题是“WordPress 插件安全”。故事则包含一个行动者、一项行动和利害关系。


第 1 步:先问用户一个问题

开始起草前,先问:

“两个简短的问题:

  1. 你希望优化的是得分(触达范围)还是评论(讨论)?
  2. 这个项目是做什么的——用一句话说明,讲技术,不加形容词。”

在得到两个答案之前,不要继续。


第 2 步:确定合适的帖子类型

根据项目和目标,决定使用哪种格式:

普通标题(推荐默认选项) 不加前缀。直接说明它是什么或发生了什么。平均得分最高。 适用于:分享新版本、文章、工具或活动。

Show HN:前缀(谨慎使用) 仅适用于:项目是可运行的演示,开发者在场回答问题,且技术实现本身就是有趣之处。 平均得分较低(94),但项目确实新颖时,这个前缀能体现真诚。 同时务必起草一个不带前缀的标题备选,以便比较。

Ask HN:前缀 适用于:目标是讨论,而非推广。平均互动比率 > 1.0×。 最适合“谁在用 X?”或“我该不该做 Y?”这类帖子。

Tell HN:前缀 用于举报不当行为、追责或披露信息。只有一个数据点,得分为 819 分。 仅在帖子内容属实、可核实且开发者实名时使用。

步骤 3:拟定标题

标题就是整篇帖子。 正文可以省略。

从数据中得出的规则:

  • 目标是少于 40 个字符。每超出 20 个字符,平均分大约会少 30 分。
  • 写一个故事,而不是一个类别。人物 + 行动 + 利害关系,胜过名词短语。
  • 当构建者视角很重要时,第一人称(“我……”)相比普通陈述,平均可增加约 100 分。
  • 不要使用营销形容词。除非是字面意义上的规格(例如,“35B-A3B” 是规格,“强大”则不是),否则不要用“快速”“简单”“强大”“轻量”之类的词。
  • 具体胜过笼统。“30 个 WordPress 插件”胜过“热门 CMS 插件”。
  • 标题中括起年份表示内容经典、值得一读:(2008)、(1956)。链接到经得起时间考验的旧内容时使用。
  • 副标题格式使用 en dash(–):“产品名称 – 功能介绍”。不要用连字符(-)。

拟定三个版本:

  1. 尽可能短(目标少于 35 个字符)——删去所有非必要内容
  2. 故事角度——人物 + 行动 + 利害关系
  3. 技术角度——以有趣的工程决策开头

然后进行长度测试:逐个统计字符数。超过 60 个字符的标出来。


步骤 4:决定是否撰写正文

问问自己:技术实现中是否有无法写进标题、但 HN 工程师会觉得真正有趣的细节?

如果有:撰写正文(见步骤 5)。 如果没有:标题写到这里就好。正文不写,胜过写一篇凑数的正文。

数据显示,正文不会提高分数。撰写正文的唯一理由,是实现足够有趣,能让工程师问“这是怎么实现的?”,而你想提前回答这个问题。


步骤 5:撰写正文(仅当步骤 4 的结论为是时)

结构——保持精炼:

第 1 行: 一句话。你构建了什么,以及原因。用第一人称。 不要写“隆重介绍 X。”也不要写“X 是一款……工具。”只写:“我构建 X 是因为 Y。”

第 2–4 行: 真正的原因。诚恳、具体。这是你自己遇到的问题吗? 工作中让人沮丧的事?一时好奇?“我很恼火……”胜过“开发者经常难以……”。重点是构建者自己的表达。

第 5–8 行: 它实际如何运作。这是 HN 读者关心的内容。 说出具体的技术选择。说明你做了哪些权衡,以及原因。 一个有趣的工程决策,胜过一串功能列表。

第 9 行: 用一句话说明当前状态。开源吗?免费吗?处于 Alpha 阶段吗?是独自开发吗? 你已经投入多长时间。

第 10 行: 用一句收尾,邀请反馈或提问。 “欢迎提问实现细节。”/“欢迎批评。” 绝不要请求投票、分享或注册。

硬性规则:

  • 150–300 个单词。通常少于 200 个更好。
  • 全文使用第一人称。
  • 不要使用项目符号。不要添加标题。不要加粗。
  • 正文中不要放链接。URL 放在提交字段中。
  • 不要使用营销词:颠覆性、革命性、强大、稳健、无缝、创新、同类最佳、简化流程、利用、变革、尖端。

步骤 6:提交前自检

逐项检查此列表。输出前修正所有不符合项。

标题:

  • 少于 60 个字符(统计字符数)
  • 不含营销形容词
  • 是一个故事还是一个主题?(故事更好)
  • 如果构建者的视角能带来价值,则使用第一人称
  • 不含感叹号

正文(如果撰写):

  • 以“I built……”或“For the past N months……”开头
  • 至少包含一个具体的技术名称或架构决策
  • 少于 300 个单词
  • 不含链接
  • 以邀请反馈收尾,而不是行动号召
  • 不含任何营销词(检查步骤 5 中的列表)

帖子类型:

  • 如果使用 Show HN 前缀:是否也拟定了一个不带前缀的标题版本?
  • 如果目标是获得评论:是否采用了疑问句或有争议的角度?
  • 如果目标是获得分数:是否使用了陈述句,而非疑问句?

步骤 7:呈现输出

严格按以下格式。前后都不要添加说明。

## HN Post

### Recommended title
[title — the shortest, strongest variant]

### Alternative titles
1. [variant 2]
2. [variant 3]

---

### Body
[body text, or "Not recommended — title is sufficient." if Step 4 said no body]

---

### Notes
- Goal: [score / comments] — based on user's answer in Step 1
- Post type used: [plain / Show HN / Ask HN / Tell HN]
- Title length: [N chars]
- Best time to post: Tuesday–Thursday, 8–10 AM US Eastern
- After posting: respond to every comment in the first two hours
- Do not share the link elsewhere for 24 hours — HN penalises vote rings

步骤 8:可选 — 抓取当前排名靠前的 HN 帖子作为参考

如果用户想确认最近是否有人提交过类似帖子, 或者想了解当前该类别中哪些内容表现出色,请运行抓取工具:

import requests
from concurrent.futures import ThreadPoolExecutor

HN_API = "https://hacker-news.firebaseio.com/v0"

def fetch_item(id_):
    try:
        r = requests.get(f"{HN_API}/item/{id_}.json", timeout=10)
        return r.json() if r.ok else None
    except Exception:
        return None

ids = requests.get(f"{HN_API}/topstories.json").json()[:250]
with ThreadPoolExecutor(max_workers=20) as ex:
    items = [i for i in ex.map(fetch_item, ids) if i]

# Filter by keyword relevant to the user's project
keyword = "YOUR_KEYWORD_HERE"
matches = [i for i in items if keyword.lower() in i.get("title","").lower()]

for i, item in enumerate(matches, 1):
    score = item.get("score", 0)
    title = item.get("title", "")
    by = item.get("by", "")
    print(f"{i:>2}. [{score:>4}pts] {title} — {by}")

print(f"\nTotal matching: {len(matches)}")

使用结果来:

  • 检查过去 48 小时内是否提交过几乎相同的帖子(避免重复)
  • 查看当前该类别中哪些标题模式效果较好
  • 确定该主题领域的分数门槛

如果使用完整抓取工具,结果也会自动追加到 hn_log.csv。


参考:数据集中表现突出的帖子

以下是排名前 250 的真实帖子。请研究这些标题模式。

分数标题
1941Claude Opus 4.7
1688Google 对我食言了——现在 ICE 掌握了我的数据
1244Qwen3.6-35B-A3B:Agentic 编码能力,如今人人可用
1192有人买下了 30 个 WordPress 插件,并在所有插件中植入了后门
1141DaVinci Resolve – Photo
990几乎所有事情都能用 Codex
982停止使用 Flock
909针对“后退按钮劫持”的新垃圾信息政策
893GitHub 堆叠式 PR
819告诉 HN:Fiverr 将客户文件公开,且可供搜索
668我写信给 Flock 的隐私联系人,要求退出其国内监控计划
619测量 Claude 4.7 的 tokenizer 成本
561上帝沉睡于矿物之中
503想写编译器?读这两篇论文就行(2008)

Show HN 中表现最好的标题(按分数排序): 341 | Show HN:Smol machines——冷启动不到 1 秒、可移植的虚拟机 199 | Show HN:PanicLock——合上 MacBook 上盖即可禁用 TouchID → 使用密码解锁 187 | Show HN:实时追踪美国上市公司的每次 CEO 和 CFO 变更,数据来自 SEC 177 | Show HN:我做了一个可处理不相交区间集合的计算器 152 | Show HN:MacMind——在 1989 年的 Macintosh 上运行的 HyperCard Transformer 神经网络

评论数与分数比最高的帖子(适合优化讨论度): 1.91× | IPv6 为什么这么复杂? 1.43× | Ask HN:一个人创业是不可能的吗? 1.20× | 俄亥俄州监狱的囚犯造了电脑,并把它们藏在天花板里 1.13× | Ask HN:有人在用 OpenClaw 吗? 1.05× | 一切事物的未来都是谎言,我猜:我们该何去何从?

评论

支持 Markdown