Morning Briefing
Step 1 — Pull user interests from memory
CODEBLOCK0
Do this first, before fetching stories — the results determine how stories are ranked. Extract any topics, technologies, or themes found. If nothing relevant comes back, fall back to HN ranking order.
Step 2 — Fetch top HN stories
CODEBLOCK1
(Path is relative to the project root — openclaw installs this skill at skills/hn-morning-brief/.)
Returns JSON with: title, article_url, hn_url, domain, author, points, num_comments.
Step 3 — Rank and filter
Score each story by combining two signals:
- - Relevance to user interests (from memory) — a story the user cares about is worth more regardless of score
- HN points — use as a tiebreaker and quality signal when interests are unclear
Surface the 8–12 highest-scoring stories. If memory search returned no clear interests, rank by points only.
Step 4 — Present briefing
CODEBLOCK2
Diving Deeper
When the user picks a story:
- 1. Fetch and summarize the article — read the article URL and write a 3–5 sentence summary of the key points. Do this even if the user just says "more on #3" — they want the content, not just the link.
- Show both links:
- Article:
{article_url}
- HN Discussion:
{hn_url} (often where the most interesting debate happens)
- 3. Offer to go further: "Want me to search for more context on this?"
Gotchas
- -
article_url is the original article. hn_url is the HN discussion thread. Never swap them — linking to the HN page when the user wants the article is a bad experience. - If the article is a PDF or appears paywalled, say so and summarize from the title, domain, and any available description instead of silently failing.
- If
memory_search returns no clear interests, rank by points and don't guess — invented interests will surface irrelevant stories.
晨间简报
步骤 1 — 从记忆中提取用户兴趣
memory_search(interests topics preferences technology news)
在获取故事之前先执行此步骤——结果将决定故事的排序方式。提取找到的任何主题、技术或话题。如果没有返回相关内容,则回退到 HN 排名顺序。
步骤 2 — 获取 HN 热门故事
bash
python3 skills/hn-morning-brief/scripts/fetch_hn.py --limit 20
(路径相对于项目根目录——openclaw 将此技能安装在 skills/hn-morning-brief/。)
返回 JSON 格式数据,包含:title、articleurl、hnurl、domain、author、points、num_comments。
步骤 3 — 排序与筛选
通过结合两个信号对每个故事进行评分:
- - 与用户兴趣的相关性(来自记忆)——用户关心的故事无论分数如何都更有价值
- HN 点赞数——在兴趣不明确时作为平局决胜因素和质量信号
展示得分最高的 8-12 个故事。如果记忆搜索未返回明确兴趣,则仅按 points 排序。
步骤 4 — 呈现简报
HN 晨间简报 — {今日日期}
为您精选 {N} 个故事
- 1. {标题} {域名} · ⬆ {点赞数} · 💬 {评论数}
{一句话背景或为什么有趣}
→
文章 ·
HN 讨论
- 2. ...
说深入了解 #N或告诉我更多关于 [标题]以获取完整摘要。
深入阅读
当用户选择某个故事时:
- 1. 获取并总结文章——阅读文章 URL 并撰写 3-5 句话的关键点摘要。即使用户只说更多关于 #3也要执行此操作——他们想要的是内容,而不仅仅是链接。
- 展示两个链接:
- 文章:{article_url}
- HN 讨论:{hn_url}(通常是最有趣辩论发生的地方)
- 3. 提供进一步探索选项:需要我搜索更多相关背景信息吗?
注意事项
- - articleurl 是原始文章。hnurl 是 HN 讨论帖。切勿混淆——当用户想要文章时链接到 HN 页面会带来糟糕的体验。
- 如果文章是 PDF 或显示付费墙,请说明情况,并根据标题、域名和任何可用描述进行总结,而不是默默失败。
- 如果 memory_search 未返回明确兴趣,则按 points 排序,不要猜测——虚构的兴趣会展示不相关的故事。