Agent skill

Cheat Trends

by XBuilderLAB in XBuilderLAB/cheat-on-content

从配置的热点源(HN / Reddit / YouTube trending / B 站热门 / 等)抓今天的热门话题,去重 + 粗打分 + 写入 candidates.md。绝大部分人没有候选池——这是让"我没素材"问题在 onboarding 第二步就消失的钥匙。触发词:"抓热点"/"fetch trends"/"今天有什么可做的"/"trending now"/"找选题"。

MITAuto-check: notesEducation

Install Cheat Trends

skills CLI
$ npx skills add XBuilderLAB/cheat-on-content --skill cheat-trends -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install XBuilderLAB/cheat-on-content cheat-trends --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/XBuilderLAB/cheat-on-content.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/cheat-trends .claude/skills/cheat-trends && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
cheat-trends
GitHub stars
7.2k
Token cost
~1.4k tokens
SKILL.md length
369 words
Files
1
Skills in repo
16
Repo updated
First seen
Licence
MIT

At a glance

从配置的热点源(HN / Reddit / YouTube trending / B 站热门 / 等)抓今天的热门话题,去重 + 粗打分 + 写入 candidates.md。绝大部分人没有候选池——这是让"我没素材"问题在 onboarding 第二步就消失的钥匙。触发词:"抓热点"/"fetch trends"/"今天有什么可做的"/"trending now"/"找选题"。

  • Works in 7 steps: 读启用的 adapters → 2: 对每个 adapter 调 fetch + normalize → 去重 → …
  • Education work in your project
  • SKILL.md covers Overview, Constants, Inputs and Workflow, plus 4 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Cheat Trends is an agent skill from XBuilderLAB/cheat-on-content. 从配置的热点源(HN / Reddit / YouTube trending / B 站热门 / 等)抓今天的热门话题,去重 + 粗打分 + 写入 candidates.md。绝大部分人没有候选池——这是让"我没素材"问题在 onboarding 第二步就消失的钥匙。触发词:"抓热点"/"fetch trends"/"今天有什么可做的"/"trending now"/"找选题"。

Its SKILL.md is about 1.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Education. It works with Reddit and YouTube. The repository describes itself as: You're reading this. The skill predicted it. A workflow that turns every post into a calibrated experiment—score, blind-predict, retro, evolve. The future doesn't reward effort… The licence is MIT.

When your agent uses it

  • Education work in your project

Example prompts

  • “问题在 onboarding 第二步就消失的钥匙。触发词:”
  • “fetch trends”
  • “今天有什么可做的”
  • “/cheat-trends”

Requirements

  • Python 3
  • Pre-approved tools (allowed-tools): Bash(*), Read, Write, Edit, Glob, WebFetch, Skill

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. 读启用的 adapters
  2. 2: 对每个 adapter 调 fetch + normalize
  3. 去重
  4. 粗打分
  5. 排序 + 询问
  6. 落盘
  7. 状态更新

What it can do on your machine

Read from SKILL.md and the folder at commit 2d8211e. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash(*)
    • Read
    • Write
    • Edit
    • Glob
    • WebFetch
    • Skill

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are python, jsonl and json).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Cheat Trends loads about 1.4k tokens when it runs. Until then it costs about 52 tokens; SKILL.md has 369 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~52
When it runs · the whole SKILL.md, loaded when a task matches
~1.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Bash(*), Read, Write, Edit, Glob, WebFetch, Skill

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from XBuilderLAB/cheat-on-content at commit 2d8211e, republished under its MIT licence (© XBuilderLAB). 369 words, ~1,443 tokens.

Download SKILL.mdSave it as .claude/skills/cheat-trends/SKILL.md (or your agent's skills folder).
name
cheat-trends
description
从配置的热点源(HN / Reddit / YouTube trending / B 站热门 / 等)抓今天的热门话题,去重 + 粗打分 + 写入 candidates.md。**绝大部分人没有候选池——这是让"我没素材"问题在 onboarding 第二步就消失的钥匙**。触发词:"抓热点"/"fetch trends"/"今天有什么可做的"/"trending now"/"找选题"。
allowed-tools
Bash(*), Read, Write, Edit, Glob, WebFetch, Skill
argument-hint
[— sources: <comma-separated>] [— max-per: 20]

多 adapter 模式:读各 trend-sources adapter 的输出 → 去重 → 粗打分 → 写入 candidates.md。

Overview

[用户:抓热点]
  ↓
[Phase 0: 读 .cheat-state.json 拿 enabled adapters]
  ↓
[Phase 1: 对每个 adapter 调 fetch]
  ↓
[Phase 2: normalize 到 candidate-schema]
  ↓
[Phase 3: 去重(vs candidates / predictions / trends-history)]
  ↓
[Phase 4: 对每个新 item 粗打分(调 cheat-score 内联逻辑)]
  ↓
[Phase 5: 排序 + 询问用户哪些加入 candidates.md]
  ↓
[Phase 6: 写入 + 更新 trends-history.jsonl 缓存]

Constants

  • TREND_SOURCES = ["manual-paste"] — 启用的 adapter 列表(默认仅 manual-paste,最稳)
  • LOOKBACK_HOURS = 24 — 抓最近 N 小时的热点
  • MAX_PER_SOURCE = 20 — 每个 adapter 最多 N 条
  • DEDUPE = true — 去重开关
  • AUTO_SCORE = true — 抓回来后自动调 cheat-score 粗打分
  • MIN_COMPOSITE_TO_SUGGEST = 6.0 — 低于此分的不推荐用户加入候选池(仍写入 trends-history 避免下次重复推)

💡 调用时覆盖:/cheat-trends — sources: manual-paste,aihot,weibo-hot — max-per: 10

Inputs

必填来源
.cheat-state.json默认 sources
adapters/trend-sources/<name>.md各 adapter 的实现描述
candidates.md去重对照
predictions/*.md去重对照(已发的不再推)
.cheat-cache/trends-history.jsonl历史抓取去重缓存

Workflow

Phase 0: 读启用的 adapters
python
# 伪代码
state = read('.cheat-state.json')
enabled_adapters = args.sources or state.get('enabled_trend_sources', ['manual-paste'])

如 enabled_adapters 为空 → 输出引导:

你目前没有启用任何热点源。

最快配法:
- 临时跑:/cheat-trends — sources: manual-paste,aihot
- 永久启用:编辑 .cheat-state.json 的 enabled_trend_sources 数组

可用 adapter(详见 adapters/trend-sources/):
- manual-paste(默认,永远能用)
- aihot(AI 热点聚合,无需 key)
- weibo-hot(微博热搜,无需 key)
- zhihu-hot(知乎热榜,无需 key)
- trendradar-mcp(TrendRadar MCP 服务,需配置)
Phase 1-2: 对每个 adapter 调 fetch + normalize

对每个 adapter,读其 adapters/trend-sources/<name>.md 中描述的 fetch 接口(实际是 Bash 调底层 Python / shell / WebFetch):

Adapter实现机制
manual-paste询问用户:"粘贴你今天的候选 URL/标题列表(每行一条)" → 解析每行,对 URL 做 WebFetch 拓展 snippet
aihot读 adapters/trend-sources/aihot.md 描述的 fetch 接口
weibo-hot读 adapters/trend-sources/weibo-hot.md 描述的 fetch 接口
zhihu-hot读 adapters/trend-sources/zhihu-hot.md 描述的 fetch 接口
trendradar-mcp读 adapters/trend-sources/trendradar-mcp.md 描述的 fetch 接口

每个 adapter 输出符合 candidate-schema.md 的 items。

优雅降级:单 adapter 失败(API key 缺失 / 端点 503 / cookie 失效)→ skip 该 adapter,不抛异常,在汇总里说明:

✅ aihot: 拉到 18 条
✅ weibo-hot: 拉到 15 条
✅ zhihu-hot: 拉到 12 条
⚠️  trendradar-mcp: 跳过(MCP 服务未配置——配置见 adapters/trend-sources/trendradar-mcp.md)
Phase 3: 去重

按 candidate-schema.md 的"去重协议":

  1. 对每个 item 算 id(sha256(source_type + normalized_title + url_path)[:12])
  2. 检查 candidates.md 已含此 id → 跳过
  3. 检查 predictions/*.md 已含此 id → 跳过
  4. 检查 .cheat-cache/trends-history.jsonl 已含此 id 且 rejected_at != null → 跳过

去重统计写到汇总报告里。

Phase 4: 粗打分

AUTO_SCORE=true 时,对每条新 item:

  1. 用 item 的 snapshot_text 作为输入
  2. 按当前 rubric 给 7 维打分(不调 /cheat-score 子 skill 走 IO;inline 复用打分逻辑)
  3. 算 composite
  4. 给一句 rationale

注意:粗打分 ≠ 正式预测。预测必须基于最终稿(用户改过的),这里的打分只是"是否值得展开写"的粗筛。

AUTO_SCORE=false 时,items 写入 candidates.md 时 composite=null,需要后续手动 /cheat-score。

Phase 5: 排序 + 询问

按 composite 降序,过滤掉 composite < MIN_COMPOSITE_TO_SUGGEST 的:

🔥 抓热点完成。各源拉取统计:
- manual-paste: 5 条(用户输入)
- aihot: 18 条
- weibo-hot: 15 条
跳过 trendradar-mcp(MCP 服务未配置)

去重后剩 27 条新 item。
粗打分后 12 条 composite ≥ 6.0:

| # | 标题 | source | composite | bucket | rationale |
|---|---|---|---|---|---|
| 1 | 为什么我们都讨厌主动联系朋友 | aihot | 8.4 | 30-100w | ER+QL 双 5,AB 普适 |
| 2 | "她不一样"的一千种变体 | weibo-hot | 8.1 | 30-100w | MS 候选维度高 |
| 3 | ...... |

哪些加入 candidates.md?
- 全部加 → 回 "all"
- 选几个 → 回 "1, 3, 5"
- 都不要 → 回 "none"(这些会被记到 trends-history 避免下次重复推)
Show full SKILL.md (148 more words)Show less
Phase 6: 落盘

用户响应后:

  1. 选中的 items → 按 candidate-schema.md 的"Markdown 表示"格式追加到 candidates.md
  2. 所有抓回来的 items(不管选中与否)→ append 到 .cheat-cache/trends-history.jsonl:
    jsonl
    {"id": "...", "title": "...", "source": "...", "snapshot_at": "...", "rejected_at": null|"<ISO>", "fetched_at": "<ISO>"}
Phase 7: 状态更新
json
{
  "last_trends_run_at": "<ISO>",
  "last_trends_added_count": 5
}

Key Rules

  1. 不抛异常。单 adapter 失败 → skip + 报告。多 adapter 全失败 → 报错"所有源都失败",附排查指引
  2. manual-paste 永远在。即使其他所有 adapter 都坏了,manual-paste 模式必须能跑——它是兜底
  3. 去重是硬约束。同 id 不重复推;用户拒绝过的 6 个月内不再推
  4. 粗打分要诚实标注。在 candidates.md 的 entry 里标 composite (rough, snapshot-based),避免与 prediction 的精打分混淆
  5. 不直接进 predictions/。trends 只产 candidates,predict 是另一个动作

Refusals

  • 「直接抓抖音热门 feed,不用 cookie」 → 拒绝。抖音反爬极严,无 cookie 必失败;引导到 douyin-session adapter 配置文档
  • 「跳过去重,把所有抓到的都写进去」 → 拒绝。会污染候选池,下次 recommend 时排序失效
  • 「跳过粗打分,直接写 raw 标题」 → 允许(AUTO_SCORE=false),但提示用户后续需要 /cheat-score 才能进 recommend 池

Integration

  • 上游:用户配置 .cheat-state.json 的 enabled_trend_sources 数组
  • 下游:/cheat-recommend 直接读 candidates.md 排序——trends 写完,recommend 立刻看到
  • 与 /cheat-init:onboarding Q4 选"没有候选池"的用户被引导到这里
  • 与 /cheat-status:status 看板显示"上次抓热点:X 天前 / 待清理候选池:Y 条"

Adapter 实现注意事项

每个 adapters/trend-sources/<name>.md 必须文档化以下:

  1. 依赖:API key / cookie / package
  2. fetch 接口:调用方式(python script path / shell command / API endpoint)
  3. 输出 schema:必须符合 candidate-schema.md
  4. 失败模式:常见错误 + 优雅降级行为
  5. 稳定性等级:★ 1-5 颗星

详见 adapters/HOWTO.md(待批次 3 实现)。

© XBuilderLAB, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/cheat-trends of XBuilderLAB/cheat-on-content.

Open the folder on GitHubat commit 2d8211e

Compare with similar skills

Cheat Trends next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Cheat Trends compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Cheat Trends this skillXBuilderLAB/cheat-on-content7.2k—~1.4kAutomated safety check: NotesMIT
Multi Platform Search Searchapigooseworks-ai/goose-skills1.2k1 repos~3.5kAutomated safety check: PassMIT
Agent ReachPanniantong/Agent-Reach93k—~1.4kAutomated safety check: PassMIT
Last30days CnJesseovo/last30days-skill-cn1.9k—~2.4kAutomated safety check: NotesMIT
bb-browser Site Commands for OpenClawepiral/bb-browser6.2k—~1kAutomated safety check: PassMIT
Paid Ads AuditAgriciDaniel/claude-ads9.8k—~1.5kAutomated safety check: PassMIT

Similar skills

  • Multi Platform Search Searchapi

    gooseworks-ai/goose-skills

    Multi-platform search - YouTube, Amazon, eBay, Walmart, TikTok, Instagram, and more

    1.2k GitHub starsUsed in 1 repo~3.5k tokens
    Knowledge ManagementAuto-check passed
  • Agent Reach

    Panniantong/Agent-Reach

    Routes web research and platform lookups across 16 sites, including Twitter, Reddit, YouTube, Bilibili, Xiaohongshu and GitHub, through one command-line tool.

    93k GitHub stars~1.4k tokensUpdated 21 days ago
    Productivity & AutomationAuto-check passed
  • Last30days Cn

    Jesseovo/last30days-skill-cn

    Research what Chinese internet users actually said in the last 30 days across Weibo, Xiaohongshu (RED), Bilibili, Zhihu, Douyin, WeChat public accounts, Baidu and Toutiao: engagement-weighted…

    1.9k GitHub stars~2.4k tokensUpdated today
    Productivity & AutomationAuto-check: notes
  • Runs structured data commands against sites such as Twitter, Reddit, GitHub, YouTube and Zhihu through OpenClaw's browser, reusing your existing login state.

    6.2k GitHub stars~1k tokensUpdated 4 mo ago
    Productivity & AutomationAuto-check passed
  • Paid Ads Audit

    AgriciDaniel/claude-ads

    Runs a source-grounded paid advertising audit across up to 12 ad platforms, with parallel platform workers, deterministic scoring and a versioned JSON bundle.

    9.8k GitHub stars~1.5k tokensUpdated 4 days ago
    Marketing & SEOAuto-check passed
  • Pullmd

    AeternaLabsHQ/pullmd

    Read any web page, document, or YouTube video as clean Markdown using PullMD.

    486 GitHub stars~2.6k tokensUpdated 16 days ago
    Documents & OfficeAuto-check passed

More from XBuilderLAB/cheat-on-content

All 16 skills in this repo
  • Rubric Bump Proposer

    XBuilderLAB/cheat-on-content

    Proposes and applies upgrades to a content-scoring rubric: a full formula bump with blind re-scoring and a cross-model audit, or a lighter bucket-boundary recalibration.

    7.2k GitHub stars~3.5k tokensUpdated 2 days ago
    Auto-check: notes
  • Cheat-on-Content Setup

    XBuilderLAB/cheat-on-content

    Onboards a new user to the cheat-on-content workflow with a short question flow, creating the project scaffolding and optionally importing past video history.

    7.2k GitHub stars~4.3k tokensUpdated 2 days ago
    Auto-check: notes
  • Benchmark Account Importer

    XBuilderLAB/cheat-on-content

    Imports scripts and engagement numbers from an account you want to emulate, then extracts content patterns and starting scoring signals from them.

    7.2k GitHub stars~2.3k tokensUpdated 2 days ago
    Auto-check: notes
  • cheat-on-content State Migrator

    XBuilderLAB/cheat-on-content

    Upgrades an older .cheat-state.json to the current schema version by applying migration files in order, with dry-run, backup and stop-on-failure behavior.

    7.2k GitHub stars~1.5k tokensUpdated 2 days ago
    Auto-check: notes
  • Cheat on Content Calibration

    XBuilderLAB/cheat-on-content

    Turns content creation into a calibrated loop of scoring, blind prediction, post-publish review and rubric evolution, with a built-in rubric for opinion videos.

    7.2k GitHub stars~2.7k tokensUpdated 2 days ago
    Auto-check: notes
  • Audience Persona Builder

    XBuilderLAB/cheat-on-content

    Builds or refreshes an account's audience profile from the comments in its post retrospectives and writes it to audience.md for later topic and script work.

    7.2k GitHub stars~1.5k tokensUpdated 2 days ago
    Auto-check: notes

Works with

Categories

Questions about Cheat Trends

What does Cheat Trends do?

从配置的热点源(HN / Reddit / YouTube trending / B 站热门 / 等)抓今天的热门话题,去重 + 粗打分 + 写入 candidates.md。绝大部分人没有候选池——这是让"我没素材"问题在 onboarding 第二步就消失的钥匙。触发词:"抓热点"/"fetch trends"/"今天有什么可做的"/"trending now"/"找选题"。. Cheat Trends is an agent skill from XBuilderLAB/cheat-on-content.

When should I use Cheat Trends?

Cheat Trends fits situations like: education work in your project.

How do I install Cheat Trends in Claude Code?

Run `npx skills add XBuilderLAB/cheat-on-content --skill cheat-trends -a claude-code`. Or copy the skill folder (skills/cheat-trends in XBuilderLAB/cheat-on-content) into .claude/skills/cheat-trends in your project. Claude Code loads it when a task matches its description.

How do I install Cheat Trends in Codex?

Run `npx skills add XBuilderLAB/cheat-on-content --skill cheat-trends -a codex`. Or copy the skill folder (skills/cheat-trends in XBuilderLAB/cheat-on-content) into .agents/skills/cheat-trends in your project. Codex loads it when a task matches its description.

Can I use Cheat Trends in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add XBuilderLAB/cheat-on-content --skill cheat-trends -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/cheat-trends, .gemini/skills/cheat-trends, .github/skills/cheat-trends and .opencode/skills/cheat-trends in your project.

What does Cheat Trends need to run?

SKILL.md names no scripts, command-line tools or credentials: Cheat Trends is instructions for the agent only. Our summary lists: Python 3. Its frontmatter pre-approves these tools: Bash(*), Read, Write, Edit, Glob, WebFetch, Skill.

Does Cheat Trends access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Cheat Trends safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Cheat Trends use?

Cheat Trends is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Cheat Trends use?

About 1.4k tokens (SKILL.md is roughly 5.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Cheat Trends?

Skills that share tags, products or a category with Cheat Trends: Multi Platform Search Searchapi (gooseworks-ai/goose-skills, 1.2k stars), Agent Reach (Panniantong/Agent-Reach, 93k stars), Last30days Cn (Jesseovo/last30days-skill-cn, 1.9k stars) and bb-browser Site Commands for OpenClaw (epiral/bb-browser, 6.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Cheat Trends?

XBuilderLAB (a GitHub organization) maintains it in XBuilderLAB/cheat-on-content, which has 7,225 GitHub stars. The repository holds 16 skills in this directory. The repository was last updated on October 5, 2026.

Source: XBuilderLAB/cheat-on-content on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.