Install
$ agentstack add skill-giantclam-auto-viral-article-writer-hot-topics ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Hot Topics
Use this skill to collect current topics across Chinese and global sources, then filter them by the user's configured preferences.
Use This For
- daily topic discovery
- source-aware trend collection
- pre-writing topic research
- feeding high-signal items into ViralKB
Do Not Use This For
- retrieving title formulas from ViralKB
- drafting articles directly
- generating images
- deep single-topic research (use
last30daysinstead)
Inputs
- optional keyword override
- optional source or platform override
- optional result limit
Outputs
- ranked topic list grouped by source
- tagged categories for each topic
- explicit separation between discussion heat and strategic importance when needed
- optional ViralKB ingestion summary
- optional topic framing that can seed an article brief
Workflow
Step 1: Topic Quality Pre-Flight — detect keyword traps BEFORE running searches
Mandatory. Check the topic for known failure classes. Running searches on a keyword-trap topic burns time and produces junk. Detecting the trap upfront costs one turn.
Known trap classes:
| Class | Pattern | Why it fails | Action | |-------|---------|--------------|--------| | Demographic shopping | gift for {age} year old {gender}, present for {demographic} | Real posts use relationship + hobbies, not literal age | Ask for hobbies/relationship/budget | | Numeric keyword trap | Topic contains a number that collides with unrelated content (42 = Jackie Robinson, 40 = 40th anniversary) | Number dominates retrieval, pulls unrelated content | Strip the number unless semantically load-bearing | | Overly-literal concept | how to use X, what is Y tutorial | Social posts use different vocabulary ("my Docker setup", not "how to use Docker") | Reframe to discussion phrasing | | Generic single-noun | bread, sneakers, coffee with no specific hook | Infinite corpus, signal is noise | Ask for specificity |
If topic matches a trap class: emit a visible one-liner and either ask a clarifying question OR reframe before proceeding.
If topic does NOT match any class: emit Pre-Flight: {topic type} - proceeding. Then proceed to Step 2.
Step 2: Entity Pre-Resolution — resolve who matters BEFORE searching
Before running searches on a named entity topic (person, brand, product, company):
- Resolve X/Twitter handles (if platform is available):
`` WebSearch("{TOPIC} X twitter handle site:x.com") WebSearch("{TOPIC} CEO/founder X twitter site:x.com") # for companies WebSearch("{TOPIC} creator founder X twitter site:x.com") # for products `` Extract handles and pass them to the search commands.
- Resolve GitHub repos (if topic is a product/project):
`` WebSearch("{TOPIC} github repo site:github.com") ` Extract owner/repo` for project-mode data.
- Resolve related subreddits / communities:
`` WebSearch("{TOPIC} subreddit site:reddit.com") `` Find active communities discussing this topic.
Why this matters: keyword search is shallow. "DeepSeek" as a bare keyword matches everything containing "DeepSeek." Resolving @deepseek-ai, deepseek-ai/deepseek, and r/LocalLLaMA first gives you precise targeting that bare search cannot achieve.
Skip this step if:
- Topic is a generic concept (no specific entity)
- User provided handles/repos directly
- Using
--quickdepth
Step 3: Collect Data — parallel channels
Collect from two channels in parallel:
A. opencli sources (if available):
- 小红书 (xiaohongshu)
- 知乎 (zhihu)
- B站 (bilibili)
- Twitter/X (twitter)
- GitHub Trending
B. RSS / API sources:
- Hacker News (front page RSS)
- Reddit (subreddit feeds)
- BBC News (tech RSS)
Failover behavior:
- If opencli is unavailable for a source, mark it as
unavailableand continue with remaining sources - Do not block on a single failing source; run all channels in parallel and merge results
Step 4: Cross-Source Deduplication — merge same story from different platforms
When the same story appears in multiple places:
- Merge into one entry, not three separate items
- Track which platforms confirmed it
- Attribution:
[Platform1] · [Platform2] · +N more
Do NOT count repeated reposts as independent confirmation. A story appearing in 5 B站 reposts is still one story, not five.
Step 5: Rank with Engagement Scoring — not just discussion volume
Rank results using TWO dimensions:
Dimension 1 — Discussion Heat (what people are actively talking about):
- HN: points + comment count
- Reddit: upvotes + comment count
- Twitter/X: likes + retweets + views
- 小红书: likes +收藏 +评论
- 知乎: 热度值(显示在列表中)
- B站: 播放量 + 弹幕数
Dimension 2 — Strategic Importance (regardless of volume):
- New model releases or API capabilities
- New enterprise/platform integrations
- Pricing or availability changes
- Major partnerships or acquisitions
- Capability expansions that change what users can do
Key rule: For a general "today's hot topics" answer, allow strategically important product updates to outrank noisier but less consequential discussion threads.
Tag each entry with:
- Primary category
- Engagement signals (e.g., "🔥 89⬆ · 11💬" for HN, "❤️ 4.1k" for 小红书)
- Source platform(s)
Step 6: Research Sufficiency Check
Before surfacing a topic as especially strong, confirm at least one of:
- Clear original source exists
- Multiple independent signals point to the same event
- Enough concrete detail to support a writing angle
If a topic is thin, tag it with a confidence caveat.
Step 7: Optional ViralKB Ingestion
For topics that qualify for downstream writing:
- Tag with recommended article angle
- Note likely audience
- Note HKR viability (Happy / Knowledge / Resonance)
Ranking Rules Summary
| Situation | Action | |-----------|--------| | HN 100⬆ but a model release got 20⬆ | Model release outranks if strategically important | | Same story on 3 platforms | Merge, tag multi-platform | | Single-source topic with weak discussion | Add confidence caveat | | Demographic trap query | Ask clarifying question first |
Article Brief Seeding
When a topic is strong enough for downstream writing, return enough structure to seed an article brief:
- topic
- possible angle
- likely audience
- HKR viability notes
- candidate hook
- source set summary
- risk notes if the topic is still thin
Output Format
Structure the ranked list as:
## 讨论热度优先
| 话题 | 来源 | 信号 |
|-----|------|-----|
| ... | ... | ... |
## 战略重要性优先
| 话题 | 来源 | 信号 |
|-----|------|-----|
| ... | ... | ... |
Tag each item with:
[AI工具]/[模型更新]/[AI应用]/[算法突破]/[AI出海]category badge- Engagement signal (🔥 ⬆ + 💬 count)
- Multi-platform indicator if applicable
Categories
- AI工具 / AI Tools
- 模型更新 / Model Updates
- AI应用 / AI Applications
- 算法突破 / Algorithm Breakthroughs
- AI出海 / AI Global Expansion
Fallback Guidance
- If
opencliis unavailable, continue with RSS and make the reduced coverage explicit. - If coverage is reduced, say so and frame output as partial rather than fully representative.
- If user preferences are missing, use sane defaults and suggest running
setuplater. - If ViralKB ingestion fails, still return the ranked topic list.
- If the topic is a named entity and opencli is unavailable, use WebSearch to resolve handles before running structured searches.
Relationship with last30days
Use hot-topics for: daily discovery — "what's happening today across AI?"
Use last30days for: deep research — "what is the complete picture of this specific topic over the last 30 days?"
The two skills are complementary. hot-topics feeds the discovery layer; last30days handles the investigation layer.
References
references/article-brief-seeding.mdreferences/ranking-examples.mdreferences/source-priority.mdreferences/research-sufficiency.mdreferences/topic-scoring.md
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: GiantClam
- Source: GiantClam/auto-viral-article-writer
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.