description:Search, browse, and annotate News Hub articles via the News Hub API. Use this skill whenever the user wants to discover trending news, search articles by keyword/source/category/tags/marks, read an article's full detail (summary, original, translation), or add/remove key-value marks for later retrieval and analysis. A lightweight read + annotate client — no harvesting, no pushing, no browser. Triggers on phrases like "检索新闻", "搜索文章", "查看文章", "文章详情", "添加标记", "标注", "热点", "热门", "hot news", "trending", "search articles", "article detail", "marks", "discover trending", "标签列表", "按标记检索".
description:Search, browse, and annotate News Hub articles via the News Hub API. Use this skill whenever the user wants to discover trending news, get a daily briefing, search articles by keyword/source/category/tags/marks, read an article's full detail (summary, original, translation), add/remove key-value marks for later retrieval, generate research reports on hot topics, or manage user interest preferences. A lightweight read + annotate + briefing client — no harvesting, no pushing, no browser. Triggers on phrases like "检索新闻", "搜索文章", "查看文章", "文章详情", "添加标记", "标注", "热点", "热门", "每日简报", "今天有什么新闻", "daily briefing", "热点推荐", "研究报告", "research report", "选题", "追踪事件", "我的偏好", "兴趣领域", "hot news", "trending", "search articles", "article detail", "marks", "discover trending", "标签列表", "按标记检索".
---
# News Hub Feed Skill
Search and browse articles stored in News Hub, read full article details (summary / original / translation), and manage key-value **marks** for annotation. This skill is a **pure API consumer** — it never harvests, pushes, or launches a browser. Its sole purpose is rapid hot-topic discovery and post-hoc annotation for later retrieval and analysis.
Search and browse articles stored in News Hub, read full article details (summary / original / translation), manage key-value **marks** for annotation, get **daily briefings** with hot-topic discovery, and generate **research reports**. This skill is a **pure API consumer** — it never harvests, pushes, or launches a browser. Its purpose is rapid hot-topic discovery, personalized recommendations, and post-hoc annotation for later retrieval and analysis.
> **Skill root** = the directory containing this `SKILL.md`. Prefix every command with `cd "<skill-root>" &&`, or scripts fail with `MODULE_NOT_FOUND`.
...
...
@@ -13,20 +13,31 @@ Search and browse articles stored in News Hub, read full article details (summar
| Remove a mark | `node scripts/marks.js remove <id> <key>` |
| List article marks | `node scripts/marks.js list <id>` |
| List mark keys | `node scripts/marks.js keys` |
| List mark values | `node scripts/marks.js values <key>` |
| Search by marks | `node scripts/marks.js marked --marks 已读:是,重要:高` |
| List all tags (read-only) | `node scripts/tags.js` |
> **All commands must be prefixed with `cd "<skill-root>" &&`**. Scripts live in `scripts/` — always reference them as `node scripts/search.js`, never `node search.js`.
| Show user preferences | `node scripts/profile.js show` |
| Save research report | `node scripts/report.js save --title <title> --articles <csv> --stdin` |
> **All commands must be prefixed with `cd "<skill-root>" &&`**. Scripts live in `scripts/` — always reference them as `node scripts/digest.js`, never `node digest.js`.
---
...
...
@@ -85,7 +96,7 @@ This skill only needs the `api` block in `config.json` (no chromium, no vault, n
@@ -154,6 +159,173 @@ Marks are **App-isolated** key-value pairs — only the current App's marks are
---
## Daily Briefing(每日简报)
**Trigger**: when the user asks "今天有什么新闻", "每日简报", "热点推荐", "daily briefing", or starts a session wanting to catch up on news.
The daily briefing is an **interactive agent-led workflow**. Scripts handle data collection; the agent handles presentation, conversation, and follow-up.
### Step 1. Collect briefing data
```bash
node scripts/digest.js --json
```
This fetches articles from the last 7 days (up to 500 for analysis), computes:
- **Top categories** (Top 5, with 3 latest articles each)
- **Top tags** (Top 10)
- **Top keywords** (extracted from titles, Top 10)
> **Personalization**: next time the briefing runs, `digest.js` automatically matches the user's saved interests and tracked events, making recommendations more relevant over time.
---
## Research Report(研究报告)
**Trigger**: when the user picks a topic from the briefing (or any search) and wants a deep-dive report.
### Step 1. Identify relevant article IDs
From the briefing or search results, the agent identifies articles related to the chosen topic. The user may also specify additional keywords or articles.
### Step 2. Batch-fetch article details
```bash
node scripts/report.js fetch 101,98,95,89 --json
```
Fetches full article details (summary + translation by default) for all specified IDs. Use `--fields summary,original,translation` to also get the original text. The `--json` output is an array of article objects ready for the agent to synthesize.
### Step 3. Agent synthesizes the report
The agent reads the fetched articles and writes a structured Markdown report:
The script adds frontmatter (date, title, article IDs, timestamp) and saves to `reports/YYYY-MM-DD_<title>.md`. The briefing history entry for today is updated with the report path.
> The agent can also write the Markdown to a temp file and use `--content <path>` instead of `--stdin`.
---
## User Preferences(用户偏好)
User preferences are stored in `profile.json` (gitignored, auto-generated on first use). They power the personalized recommendations in daily briefings.
> **Agent responsibility**: proactively suggest tracking events when the user shows interest in a topic during briefings or report generation. The more preferences the user accumulates, the better the personalized recommendations become.