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 標籤暗示「我想聽取大家對我作品的意見」,這會引發更挑剔的閱讀心態。僅在專案確實新穎時使用「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:在開始之前,先問使用者一個問題
在草擬前,先問:
「兩個簡單的問題:
- 您要最佳化的是分數(觸及率)還是留言(討論)?
- 這個專案是做什麼的 — 一句話,技術性,不要任何形容詞。」
在得到兩個答案之前,不要繼續。
步驟 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)。在連結歷久不衰的舊內容時使用。
- 使用長破折號(–)作為副標題格式:「產品名稱 – 功能介紹」。不要用連字號(-)。
草擬三種變體:
- 最短可能(目標少於 35 字)— 刪除所有非必要內容
- 故事角度 — 角色 + 行動 + 利害關係
- 技術角度 — 以有趣的工程決策開頭
然後套用長度測試:計算每個變體的字數。標記任何超過 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 字(請計算)
- 無行銷用形容詞
- 是故事還是主題?(故事 = 較佳)
- 如果建造者的觀點有加分,使用第一人稱
- 無驚嘆號
內文(如果有的話):
- 以「我做了…」或「在過去 N 個月…」開頭
- 至少包含一個具體的技術名稱或架構決策
- 少於 300 字
- 無連結
- 以邀請回饋作結,而非行動呼籲
- 零個行銷用語(請檢查步驟 5 的清單)
貼文類型:
- 如果使用 Show HN 前綴:是否也草擬了純標題的替代方案?
- 如果目標是留言:是提問還是具爭議性的框架?
- 如果目標是分數:是陳述句,而非提問?
步驟 7:呈現輸出
格式完全如下。前後不要有任何評論。
## HN 貼文
### 建議標題
[標題 — 最短、最強的變體]
### 替代標題
1. [變體 2]
2. [變體 3]
---
### 內文
[內文,如果步驟 4 決定不寫內文,則寫「不建議 — 僅有標題即足夠。」]
---
### 備註
- 目標:[分數 / 留言] — 根據步驟 1 使用者的回答
- 使用的貼文類型:[純標題 / Show HN / Ask HN / Tell HN]
- 標題長度:[N 字]
- 最佳發布時間:週二至週四,美國東部時間上午 8–10 點
- 發布後:在最初兩小時內回覆每一則留言
- 24 小時內不要在其他地方分享連結 — HN 會懲罰連環投票
步驟 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]
# 根據使用者專案的相關關鍵字進行篩選
keyword = "您的關鍵字"
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"\n總計符合:{len(matches)}")
使用結果來:
- 檢查過去 48 小時內是否有幾乎相同的貼文被提交(避免重複)
- 查看當前在此類別中哪些標題模式表現良好
- 確定此主題領域的分數基準線
如果使用完整爬蟲,結果也會自動附加到 hn_log.csv 檔案。
參考資料:來自資料集的頂尖表現者
這些是前 250 篇中的真實貼文。研究它們的標題模式。
| 分數 | 標題 |
|---|---|
| 1941 | Claude Opus 4.7 |
| 1688 | Google broke its promise to me – now ICE has my data |
| 1244 | Qwen3.6-35B-A3B: Agentic coding power, now open to all |
| 1192 | Someone bought 30 WordPress plugins and planted a backdoor in all of them |
| 1141 | DaVinci Resolve – Photo |
| 990 | Codex for almost everything |
| 982 | Stop Flock |
| 909 | A new spam policy for "back button hijacking" |
| 893 | GitHub Stacked PRs |
| 819 | Tell HN: Fiverr left customer files public and searchable |
| 668 | I wrote to Flock's privacy contact to opt out of their domestic spying program |
| 619 | Measuring Claude 4.7's tokenizer costs |
| 561 | God sleeps in the minerals |
| 503 | Want to write a compiler? Just read these two papers (2008) |
最佳 Show HN 標題(依分數排列): 341 | Show HN: Smol machines – subsecond coldstart, portable virtual machines 199 | Show HN: PanicLock – Close your MacBook lid disable TouchID → password unlock 187 | Show HN: Every CEO and CFO change at US public companies, live from SEC 177 | Show HN: I made a calculator that works over disjoint sets of intervals 152 | Show HN: MacMind – A transformer neural network in HyperCard on a 1989 Macintosh
最高留言對分數比率(適用於以討論為目標的貼文): 1.91× | Why is IPv6 so complicated? 1.43× | Ask HN: Building a solo business is impossible? 1.20× | Ohio prison inmates built computers and hid them in ceiling 1.13× | Ask HN: Who is using OpenClaw? 1.05× | The future of everything is lies, I guess: Where do we go from here?