← 返回 Skills 市场
482
总下载
1
收藏
1
当前安装
3
版本数
在 OpenClaw 中安装
/install hn-daily-brief
功能描述
Generate and deliver a Hacker News daily report (Top-N) with article summaries and multi-view comment synthesis, in user-selected language, with optional fil...
使用说明 (SKILL.md)
HN Daily
Release Notes
- v0.8.2: Refresh publication for latest HN Daily Brief packaging and worker-oriented execution workflow.
- v0.8.1: Tighten anti-padding controls for final write-up (ban repeated boilerplate tails, enforce anti-template validation before send).
- v0.8.0: Run scheduled HN jobs in isolated cron sessions (
sessionTarget=isolated,payload.kind=agentTurn) to avoid blocking main chat; keep 3-job retry ladder idempotent. - v0.7.0: Add concurrent retry profile for schedule reliability (primary run + immediate retry + delayed retry) with idempotent completion checks to avoid timeout-caused misses.
- v0.6.0: Brand rename for distribution as "HN Daily Brief" + full copy cleanup to English-only wording.
- v0.5.1: Language cleanup for public distribution (English-first docs; localized markers still supported).
- v0.5.0: First public release.
Parameters
language: output language (default: current user conversation language)topN: number of items (default: 10)style:strict | lite(default: strict)outputDir: output directory (default:/home/ubuntu/.openclaw/workspace/output/hn-daily/)persist: whether to save file + update index (default: true)reminderTime: cron time in user timezone, oroff
First-load behavior
- On first load (or when user changes params), show effective params once and confirm.
- Otherwise, reuse last confirmed params.
Mandatory execution order
- Retry preflight check (required for retry jobs):
- If this run is a retry/compensation run, first check whether today's report already exists and is complete (at minimum includes
## Top 10). - If already complete, return
NO_REPLYand stop (idempotent exit).
- If this run is a retry/compensation run, first check whether today's report already exists and is complete (at minimum includes
- Always fetch fresh inputs for this run (required):
- Re-pull current HN Top-N items, article snippets, and comments at run time.
- Do not reuse previous report body as source input.
- Collect materials via script (data collection only, never user-facing):
scripts/generate_hn_daily.py --style \x3Cstyle> --top \x3CtopN> --language \x3Clanguage> --outdir /tmp/hn-daily-draft --materials /tmp/hn-daily-draft/HN-materials.json- Script must only output
HN-materials.json(no user-facing report body). - Use
HN-materials.jsonas the only source for final writing.
- LLM generation (required, prompt-driven quality):
- Use a single strict prompt template to generate final report in selected
language. - All content quality constraints (summary depth, comment synthesis style, anti-template wording) must be enforced by prompt, not by script templates.
- No “summarize then translate”; generate directly in target language.
- Use a single strict prompt template to generate final report in selected
- Re-check completion before send (required for retry jobs):
- If another concurrent run has already persisted a complete report, do not send duplicate content; return
NO_REPLY.
- If another concurrent run has already persisted a complete report, do not send duplicate content; return
- Send full final report body to current chat.
- If
persist=true, write final report to\x3CoutputDir>/HN-daily-YYYY-MM-DD.mdand update\x3CoutputDir>/HN_DAILY_INDEX.md.
Success criteria (strict)
persist=false: success = full report body delivered in chat.persist=true: success = chat delivery + file write + index update.- Under concurrent retry profile: success can be achieved by primary run or any retry run; retries must skip if the report is already complete.
- If any required condition fails, treat run as failed (do not claim completion).
Output rules
- Send only report body to user (no receipts/status metadata).
- Never send script draft markdown directly; user-facing report must come from LLM rewrite over materials JSON.
- Output must use one language only: the selected
languagefor the run (no bilingual/mixed-language output). - Real markdown newlines only; never output literal
\in user-visible content. - Strict source/comment separation (mandatory):
Source summarymust summarize only the original article/source content (title/url/snippet and source facts).Comment viewpoint synthesismust summarize only HN comments (comments_raw).- Do not put community reactions, usernames, or comment conclusions into
Source summary. - Do not use source-only facts as a substitute for missing comment viewpoints.
- If source content is missing/blocked/too short, mark explicitly:
source is short / info limited; do not fill the gap with comments.
- Top-N structure per item:
- Title
- Link
- HN link
- Heat
- Source summary
- Comment viewpoint synthesis
Length rules (by selected language)
- Default hard rule: source summary must be >=300 chars in zh (>=200 words in en; equivalent depth for others).
- Elastic exception: only when source content is genuinely short/information-limited, summary may be shorter than default target.
- Comment viewpoint summary target: zh>=80 chars (equivalent depth for others), with the same short-source exception.
- When exception is used, explicitly mark "source is short / info limited" (or equivalent in selected language), prioritize verifiable facts + discussion context + actionable implications, and keep concise but information-dense output.
- Never inflate length with generic filler text.
- Hard anti-padding rule: do not append reusable stock tails (e.g., identical “this reflects ...” sentence) across viewpoints/items.
- If the same tail sentence appears in 3+ comment viewpoints, the report is invalid and must be rewritten.
- Platform/channel constraints must NOT reduce content quality: if a single message exceeds platform limits (e.g., Telegram 4096 chars), split into multiple sequential messages rather than compressing or shortening summaries/viewpoints to fit.
Comment synthesis rules
- Must be in selected
language. - Multi-perspective (not binary pro/con).
- Per item, output 5 comment viewpoints when available.
- If username exists in source comment, it must be preserved in output.
- Only use "insufficient comments" when no usable comments are available.
- Summarize viewpoints; do not paste long raw quotes.
Scheduling rules (concurrent retry profile)
- If
reminderTime != off, create/update a 3-job retry ladder automatically (no duplicates):- Primary run at
reminderTime(e.g.HN Daily 06:50) - Immediate retry at
reminderTime + 1m(e.g.HN Daily 06:51 Retry) - Delayed retry at
reminderTime + 15m(e.g.HN Daily 07:05 Retry)
- Primary run at
- All HN cron jobs must run in isolated sessions:
sessionTarget="isolated"payload.kind="agentTurn"- Never schedule HN generation on
sessionTarget="main".
- Keep cron payload execution-oriented (not passive reminder), including idempotent checks and send/persist requirements.
- All retry jobs must be idempotent via completion checks (see Mandatory execution order step 1 and step 5).
- Keep job names aligned with schedule and retry role.
- Rationale: cron has no built-in on-failure callback; this retry ladder is the required equivalent for timeout/failure recovery, and isolated execution avoids blocking normal user chat.
Prompt template requirements (must include)
- Generate directly in selected
language. - Source summary length must meet selected-language threshold.
- Each comment viewpoint summary must meet selected-language threshold.
- Summaries must be article-specific and fact-based; avoid reusable boilerplate.
- Enforce source/comment boundary explicitly in prompt:
- Source summary uses only article/source material.
- Comment viewpoints use only HN comments.
- Never mix the two sections.
- Forbid repeated generic closers in comment viewpoints; every viewpoint must end with item-specific substance, not a shared stock sentence.
- Comment section must synthesize viewpoints (not raw quote dumping), with usernames when available.
Pre-send quality gate (mandatory)
- Validate final report before sending:
- zh summary default >=300 chars per item;
- zh comment viewpoint default >=80 chars per viewpoint.
- Recommended command:
scripts/validate_report.py --report \x3Cfinal_report_path> --language \x3Clanguage> --ban-phrase "这也反映了社区对可执行细节与长期影响的关注" --ban-phrase-max 0 --max-repeated-tail 2
- If an item/viewpoint is below default threshold, it must explicitly include a short-source marker (e.g.
source is short / info limited). - If anti-padding checks fail (banned phrase repetition or repeated tail sentence), rewrite and re-check.
- If gate fails, rewrite and re-check; do not send failing report.
Guardrail
- If prompt-driven LLM generation path is not available/validated, keep cron disabled until fixed.
- If primary + both retries all fail on the same day, send a concise failure alert to the current chat with the first actionable error cause (do not silently drop the run).
安全使用建议
This skill appears internally consistent and implements exactly what it says: it fetches Hacker News items and article pages, writes a structured materials JSON, and expects the LLM to produce the user-facing report. Before installing, consider: (1) it will make outbound HTTP requests to the HN API and to article URLs — if you run this in a restricted environment, allow those domains or change execution policies; (2) it writes files to the configured outputDir (default is inside the agent workspace) — change the path if you want files elsewhere or restrict write permissions; (3) the skill can be invoked by the agent (default), so decide whether you want autonomous scheduled runs in your environment; (4) the code is small and uses only the Python standard library, but you can review/step-through the two scripts to satisfy privacy or content concerns. If you want higher assurance, run the scripts in a sandboxed environment or set persist=false so outputs are only delivered in-chat.
功能分析
Type: OpenClaw Skill
Name: hn-daily-brief
Version: 0.8.2
The skill bundle is a well-structured tool for generating Hacker News daily reports. It uses Python scripts (generate_hn_daily.py and validate_report.py) to fetch data from the official HN API and enforce strict quality/length constraints on the output. The SKILL.md instructions include robust error handling, idempotency checks for scheduled tasks, and security-conscious execution settings (isolated sessions for cron jobs). No evidence of data exfiltration, malicious execution, or harmful prompt injection was found.
能力评估
Purpose & Capability
Name/description (HN daily report with summaries and comment synthesis) match the included scripts and SKILL.md. The Python scripts fetch HN data and article snippets, produce a materials JSON, and validate final reports — all coherent with the stated purpose. No unrelated credentials, binaries, or config paths are requested.
Instruction Scope
SKILL.md instructs collecting fresh HN top-N, building materials JSON, running an LLM to produce the final report, and optionally persisting files. The included scripts implement only the data-collection/materials-writing and validation steps. The skill fetches external web pages (article snippets) and writes output files to a workspace directory — expected for this functionality.
Install Mechanism
There is no install spec (instruction-only with two small Python scripts). The scripts use only Python stdlib modules and perform no downloads or external package installs. This is low-risk and proportionate.
Credentials
The skill requires no environment variables or credentials. It performs network requests to public HN API and article URLs (expected). Default outputDir points to an agent workspace, which is reasonable; users can override it if they prefer a different path.
Persistence & Privilege
always:false (not force-enabled). The skill writes files only to the configured outputDir and updates an index file when persist=true — behavior described in SKILL.md and implemented in scripts. It does not modify other skills or system-wide settings.
如何使用
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install hn-daily-brief - 安装完成后,直接呼叫该 Skill 的名称或使用
/hn-daily-brief触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v0.8.2
v0.8.2: refresh publication; align with worker-oriented execution workflow and latest packaging
v0.7.0
Add concurrent retry profile (T, T+1m, T+15m) with idempotent completion checks and timeout-miss recovery guardrail.
v0.6.0
Rename for distribution and remove remaining non-English copy from skill files.
元数据
常见问题
HN Daily Brief 是什么?
Generate and deliver a Hacker News daily report (Top-N) with article summaries and multi-view comment synthesis, in user-selected language, with optional fil... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 482 次。
如何安装 HN Daily Brief?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install hn-daily-brief」即可一键安装,无需额外配置。
HN Daily Brief 是免费的吗?
是的,HN Daily Brief 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
HN Daily Brief 支持哪些平台?
HN Daily Brief 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 HN Daily Brief?
由 liu7yong(@liu7yong)开发并维护,当前版本 v0.8.2。
推荐 Skills