Agent skill

Content Topic Recommender

by XBuilderLAB in XBuilderLAB/cheat-on-content

Ranks a pool of content topic candidates by composite score and recommends the top picks, each with a score breakdown, anchor comparison and a one-line reason.

MITAuto-check passedWriting & Content

SKILL.md written in Chinese; this summary is our English description.

Install Content Topic Recommender

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

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

GitHub CLI
$ gh skill install XBuilderLAB/cheat-on-content cheat-recommend --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-recommend .claude/skills/cheat-recommend && 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-recommend
GitHub stars
7.2k
Token cost
~1.6k tokens
SKILL.md length
336 words
Files
1
Skills in repo
16
Repo updated
First seen
Licence
MIT

At a glance

Ranks a pool of content topic candidates by composite score and recommends the top picks, each with a score breakdown, anchor comparison and a one-line reason.

  • Works in 6 steps: 候选池存在性检查 → 解析 candidates → 过滤 → …
  • Choosing what to make next from a pool of scored topic candidates
  • SKILL.md covers Overview, Constants, Inputs and Workflow, plus 3 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

The skill is written in Chinese. It reads candidates.md, sorts entries by their composite score under the current rubric and returns the top picks, five by default, each with score details, a comparison against anchors and a short rationale. If the file is missing or empty, it gives guidance on building a pool instead of reporting an error, then stops.

Filters drop topics that are already published, checked against the predictions files, ones you marked to skip, unscored entries and recent items from the same category within a lookback tied to your publishing cadence. When two or more are recommended, the strategy is one stable pick plus one experimental pick, following a cadence protocol.

A buffer color check overrides that strategy. Red offers only the top stable pick, orange adds a hint to favor stable topics, green uses the standard pair, and blue declines to recommend because the backlog is full and publishing should come first. Flexible cadence mode skips the override. Defaults can be changed per call, for example by asking for the top three with a safe filter, and the skill is limited to Read, Glob and Grep.

When your agent uses it

  • Choosing what to make next from a pool of scored topic candidates
  • Getting a ranked shortlist with a reason for each pick
  • Balancing safe topics against experiments when planning the next post

Example prompts

  • “Recommend the next five topics from candidates.md.”
  • “Pick one topic for tomorrow's post and explain why it beat the others.”
  • “Recommend topics, top 3, safe ones only.”

Requirements

  • A candidates.md topic pool in the project root
  • A .cheat-state.json file with the current rubric version
  • Pre-approved tools (allowed-tools): Read, Glob, Grep

Workflow steps

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

  1. 候选池存在性检查
  2. 解析 candidates
  3. 过滤
  4. 5: Buffer 颜色覆盖(最高优先级)
  5. 排序 + 选 1 稳 + 1 实验(按 STRATEGY)
  6. 输出

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:

    • Read
    • Glob
    • Grep

    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 markdown).

    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

Content Topic Recommender loads about 1.6k tokens when it runs. Until then it costs about 45 tokens; SKILL.md has 336 words of instructions outside code blocks.

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

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 passed

The automated check found no risky patterns in SKILL.md.

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). 336 words, ~1,576 tokens.

Download SKILL.mdSave it as .claude/skills/cheat-recommend/SKILL.md (or your agent's skills folder).
name
cheat-recommend
description
从 candidates.md 里按当前 rubric 排序推荐 top N 选题,每条带 composite + 一句 rationale + 锚点对比。**candidates 不存在时给引导而非报错**。触发词:"推荐选题"/"next topic"/"下一篇做什么"/"recommend topics"/"挑一个选题"。
allowed-tools
Read, Glob, Grep
argument-hint
[— top: N] [— filter: tier1|all|safe|risky]

/cheat-recommend — 候选池排序推荐

读 candidates.md → 按 composite 排序 → 输出 top N 推荐,每条带评分细节 + 锚点对比 + 推荐理由。

Overview

[用户:推荐选题]
  ↓
[Phase 0: 检查 candidates.md 存在性]   ← 不存在则引导,不报错
  ↓
[Phase 1: 解析 candidates 列表]
  ↓
[Phase 2: 过滤(tier / 安全性 / 已发过)]
  ↓
[Phase 3: 排序 by composite + 找锚点]
  ↓
[Phase 4: 输出 top N + 每条的 rationale + 锚点对比]

Constants

  • TOP_N = 5 — 默认推荐 top 5
  • STRATEGY = stable+experimental — 推 ≥2 时按 cadence-protocol.md 的"1 稳分 + 1 实验性"策略;推 1 时只推 top 稳分
  • POOL_PATH = candidates.md — 候选池路径
  • EXCLUDE_PUBLISHED = true — 排除已发布的(与 predictions/*.md 去重)
  • EXCLUDE_REJECTED = true — 排除用户主动跳过的(tier=skip)
  • REQUIRE_SCORED = true — 只推荐已打分的——避免推没读过的素材
  • DUPLICATE_CATEGORY_LOOKBACK — 派生自 state.target_publish_cadence_days:max(3, cadence_days × 3) 天内已发同类目候选不推(避免审美疲劳)

💡 调用时覆盖:/cheat-recommend — top: 3 — filter: safe

Inputs

必填来源
candidates.md用户项目根
predictions/*.md用于去重
.cheat-state.json当前 rubric_version

Workflow

Phase 0: 候选池存在性检查

读 candidates.md:

状态处理
文件不存在不报错。输出引导:见下方"无候选池引导"
文件存在但空(< 1 个 entry)同上
文件存在且非空进入 Phase 1

无候选池引导(核心:不让用户第一次遇到 cheat-recommend 时被劝退):

你目前没有候选池(candidates.md 不存在或为空)。

绝大部分人没有候选池——这很正常。四个建立方式,挑一个:

1. 🌱 [推荐] 跑 /cheat-seed
   一次性的种子动作:3 个问题(兴趣 / 调性 / 红线)→ 拉公开热点 + Claude brainstorm
   → 输出 15 候选让你挑 5 → 默认顺带写 5 个 draft。5 分钟搞定。
   
   - 没发过历史的:纯 brainstorm(兴趣 × 热点)
   - 发过历史的(init 时已 import):brainstorm 会基于"你过去做过什么"给推荐
   
   说:"找选题" 或 "seed"

2. 🔥 [日常补充] 用 /cheat-trends 抓 20 条带打分的候选
   说:"抓热点" — 从 weibo-hot / zhihu-hot / b站热门 / HN / 你配的源各拉 N 条
   适合已经跑过 /cheat-seed、想日常补充候选池的用户

3. ✍️  手动建:把候选标题贴进 candidates.md,每行一条
   我会自动给每条粗打分

4. 📋 从 Notion / RSS 导入:跑 /cheat-init --mode add-pool 配置 adapter

你也可以跳过候选池,直接给我具体稿子说"启动预测"。

> /cheat-seed vs /cheat-trends 的区别:
> - seed 是种子动作(含 brainstorm + 可选 draft),适合"我从零开始没选题"
> - trends 是日常多 adapter 抓取(不 brainstorm 不写 draft),适合"日常补充候选池"

完成引导 → 退出,不继续后续 phase。

Phase 1: 解析 candidates

按 candidate-schema.md 的"Markdown 表示"格式解析每个 H3 entry:

markdown
### [tier1] 标题
- **id**: a3f2c1d4e5b6
- **composite (v2)**: 8.47 — ER=4 HP=4 QL=5 NA=3 AB=5 SR=3 SAT=3
- **predicted bucket**: 5-30w
...

提取每条的 id / title / tier / composite / dimension_scores / note。

容错:candidates.md 格式被用户手改过 → 询问用户 schema,不要静默忽略不识别的 entry。

Phase 2: 过滤
1. EXCLUDE_PUBLISHED=true → 扫 predictions/*.md 的 header,提取所有 id;从候选池过滤掉
2. EXCLUDE_REJECTED=true → 过滤 tier=skip
3. REQUIRE_SCORED=true → 过滤 composite=null(未打分的不推荐)
4. filter 参数:
   - tier1: 只保留 tier=tier1
   - all: 不过滤(tier1+2+3)
   - safe: 排除 tier=risky
   - risky: 仅显示 tier=risky(用于"我今天就想发风险议题")
Phase 2.5: Buffer 颜色覆盖(最高优先级)

读 state.shoots + state.target_publish_cadence_days 算 buffer 颜色(cadence-protocol.md):

Buffer 颜色推荐策略覆盖
🔴 红只推 top 1 稳分——不推实验性。回:"buffer 已 0/1 篇,下个发布日断更风险高,今天必须拍 ≥1 条稳分。下面是 top 1 稳分(不推实验性)"
🟠 橙标准 1 稳 + 1 实验,但提示"建议优先拍稳分"
🟢 绿标准 1+1(默认)
🔵 蓝拒绝推荐。回:"你 buffer 已 N 条,cadence-protocol 规定积压时暂停拍摄。先发存货 + 复盘。手动覆盖请说 '我就要拍'"
灵活模式 (target_publish_cadence_days=null)不应用 buffer 覆盖,标准策略
Phase 3: 排序 + 选 1 稳 + 1 实验(按 STRATEGY)
第 1 条(稳分)
  1. 按 composite 降序排
  2. 过滤掉 tier=risky(稳分要安全议题)
  3. 过滤掉 category 与最近 DUPLICATE_CATEGORY_LOOKBACK 天已发/已推过的重复(避免审美疲劳)
  4. 取 top 1
第 2 条(实验性)
  1. 在 candidates.md 中找:
    • 维度组合与最近已发样本差异最大(增加校准信息量),或
    • 含明确的 pattern/dimension hypothesis(如 "MS=5 的 A/B 对照"),或
    • tier=risky 但用户主动愿意试(用 --filter risky 覆盖)
  2. composite 不一定 top——但有"信息价值"
  3. 如 candidates 池里没有合适的实验性候选 → 回:"候选池里没有明显的实验性样本,给你 2 条稳分"
剩余 (TOP_N - 2) 条

按 composite 降序补满,标 "(备选)"。

锚点

对每条找 1-2 个 composite 接近的已发布作品作为锚点(从 predictions/*.md 读)。优先同时长锚点(按 state.typical_duration_seconds ±20%)。

Phase 4: 输出
🎯 候选池推荐(rubric: v2 / buffer: 🟢 绿 / cadence: 隔日更)

📌 第 1 条 — **稳分**(推荐立即拍):
  **[tier1] [👍 9.18] "为你好"高密体系**
   - 维度:ER=5 HP=5 QL=4 NA=4 AB=5 SR=5 SAT=4
   - 粗预测桶:30-100w(中枢 ~60w)
   - rationale:ER+SR 双 5 顶配,"高密度家庭议题"普适且分享安全
   - 锚点:仓鼠 (composite 9.41, 实绩 124w) — 同走"理论框架+具象样本"路线
   - 风险:议题厚重,不适合连续 2 篇都打这种

🧪 第 2 条 — **实验性**(验证特定假设):
  **[tier1] [👍 8.71] 哈哈长度**
   - 维度:ER=3 HP=5 QL=5 NA=4 AB=5 SR=4 SAT=5
   - 粗预测桶:30-100w(中枢 ~55w)
   - **测试目标**:v2.1 候选维度 MS+TS 双 5 vs 谁问你了同 ER/HP/QL/SR 但 MS+TS 低 3
   - 信息价值:拍这条能强证据/弱推翻 v2.1 升正
   - 锚点:谁问你了 (composite 8.24, 实绩 11.7w)

(备选 top 3):
  3. ……
  4. ……
  5. ……

下一步:
- 选稳分 + 实验性各拍 1 条 → 改写 script → "启动预测"
- 只拍 1 条 → 选稳分(buffer 颜色越红,越应该选稳分)
- 想抓更多候选 → 说"抓热点"
- 都不满意 → 说"过滤改 all"看其他 tier 或 "regen"

如 buffer 颜色为 🔴:

🔴 buffer 警戒:你 buffer 已 0/1 篇,**下个发布日可能断更**。
   按节奏协议,只推 top 1 稳分(不推实验性):

  **[tier1] [👍 9.18] "为你好"高密体系**
   - ...(同上稳分格式)

今天必须拍这条。挑 5 条候选 → "抓热点"。

如 buffer 颜色为 🔵:

🔵 buffer 积压:你 buffer 已 N 条,**暂停推荐**。
   按节奏协议,先发存货 + 复盘。
   - 已拍未发:N 条(最早一条 X 天前拍的)
   - 待复盘:N 条
   说 "已发布 ..." 出队,或 "复盘" 处理待复盘项。
   如果你坚持要拍新的,回 "我就要拍",我会推 top 1 稳分。

每条必有:维度评分(让用户能挑战打分)+ 锚点(让用户校准 composite 的可信度)+ rationale(让用户理解推荐逻辑)。不允许只输出 composite 排序而无解释——那是黑箱。

Key Rules

  1. 不报错,给引导。candidates 缺失是默认状态,不是错误
  2. 不推未打分的。REQUIRE_SCORED=true 是诚实门槛——推未读过的素材是占星
  3. 必带锚点。composite 8.47 在不同账号意味不同,锚点把抽象数字 ground 到真实样本
  4. 必带 rationale。一句话——为什么这条比第二条强?
  5. 去重 published。已发过的不推(用户可显式覆盖)

Refusals

  • 「直接给我 composite 最高的,不用解释理由」 → 拒绝。展示评分 + 锚点是发现"打错"的唯一机会
  • 「把 candidates.md 里所有 entry 都重新打分一遍」 → 路由到 /cheat-score 单条做;批量重打分是 /cheat-bump 的一部分,不在 recommend 范围
  • 「按预测桶排,不要按 composite」 → 询问理由。bucket 是 composite 的离散化,按 composite 排即按 bucket 排,差异在桶内序——如果用户真想按"押注期望值"排,需要乘以平均播放,那是另一个独立 scoring 维度

Integration

  • 上游:/cheat-trends 把外部热点拉进 candidates.md → recommend 自动看到
  • 下游:用户挑一条后写稿 → /cheat-predict(candidate 的粗 composite 不进入 prediction,prediction 重新打)
  • 与 /cheat-status 协调:status 显示 "candidates 池有 N 条 tier1 未发",recommend 提供具体推荐

© 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-recommend of XBuilderLAB/cheat-on-content.

Open the folder on GitHubat commit 2d8211e

Compare with similar skills

Content Topic Recommender 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.

Content Topic Recommender compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Content Topic Recommender this skillXBuilderLAB/cheat-on-content7.2k—~1.6kAutomated safety check: PassMIT
WeChat Hot Article AnalysisSpaceZephyr/creator-buddy1.6k—~847Automated safety check: PassNone
Brand Voice Content Creatordavila7/claude-code-templates32k2 repos~1.9kAutomated safety check: PassMIT
WeChat Account Topic and Title WriterBigPengSays/bigpeng-hot-gzh265—~501Automated safety check: PassMIT
Wb Xhs Schedule Reviewwenziai/wenzi-xhs-agent-skills1561 repos~816Automated safety check: PassNone
Email PlanAgriciDaniel/claude-email128—~4.3kAutomated safety check: PassMIT

Similar skills

  • WeChat Hot Article Analysis

    SpaceZephyr/creator-buddy

    Fetches hot WeChat Official Account articles by sector or keywords and produces a data file and an HTML report with rankings, style patterns and writing references.

    1.6k GitHub stars~847 tokensUpdated 1 mo ago
    Writing & ContentAuto-check passed
  • Brand Voice Content Creator

    davila7/claude-code-templates

    Analyzes a brand's existing writing to lock in a consistent voice, then builds SEO blog posts and platform-specific social content around it.

    32k GitHub starsUsed in 2 repos~1.9k tokens
    Writing & ContentAuto-check passed
  • WeChat Account Topic and Title Writer

    BigPengSays/bigpeng-hot-gzh

    Produces topic directions and candidate headlines for WeChat official account articles using seven title formulas, without writing the article itself.

    265 GitHub stars~501 tokensUpdated 1 mo ago
    Writing & ContentAuto-check passed
  • Wb Xhs Schedule Review

    wenziai/wenzi-xhs-agent-skills

    A skill your agent uses when the user wants a Xiaohongshu posting calendar, weekly review board, first-10-post launch plan, 10-20-post positioning test, or data-based next-step plan.

    156 GitHub starsUsed in 1 repo~816 tokens
    Writing & ContentAuto-check passed
  • Email Plan

    AgriciDaniel/claude-email

    Generate comprehensive email marketing strategy with 90-day implementation roadmap.

    128 GitHub stars~4.3k tokensUpdated 4 mo ago
    Writing & ContentAuto-check passed
  • Caption Writer

    stevenflanagan1/social-ai-team

    Writes on-brand social media captions for SMBs. An agent skill from stevenflanagan1/social-ai-team.

    239 GitHub stars~2.9k tokensUpdated today
    Writing & ContentAuto-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

Questions about Content Topic Recommender

What does Content Topic Recommender do?

Ranks a pool of content topic candidates by composite score and recommends the top picks, each with a score breakdown, anchor comparison and a one-line reason. The skill is written in Chinese.md, sorts entries by their composite score under the current rubric and returns the top picks, five by default, each with score details, a comparison against anchors and a short rationale.

When should I use Content Topic Recommender?

Content Topic Recommender fits situations like: choosing what to make next from a pool of scored topic candidates; getting a ranked shortlist with a reason for each pick; balancing safe topics against experiments when planning the next post.

How do I install Content Topic Recommender in Claude Code?

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

How do I install Content Topic Recommender in Codex?

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

Can I use Content Topic Recommender 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-recommend -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-recommend, .gemini/skills/cheat-recommend, .github/skills/cheat-recommend and .opencode/skills/cheat-recommend in your project.

What does Content Topic Recommender need to run?

SKILL.md names no scripts, command-line tools or credentials: Content Topic Recommender is instructions for the agent only. Our summary lists: A candidates.md topic pool in the project root; A .cheat-state.json file with the current rubric version. Its frontmatter pre-approves these tools: Read, Glob, Grep.

Does Content Topic Recommender 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 Content Topic Recommender safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Content Topic Recommender use?

Content Topic Recommender 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 Content Topic Recommender use?

About 1.6k tokens (SKILL.md is roughly 6.3k 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 Content Topic Recommender?

Skills that share tags, products or a category with Content Topic Recommender: WeChat Hot Article Analysis (SpaceZephyr/creator-buddy, 1.6k stars), Brand Voice Content Creator (davila7/claude-code-templates, 32k stars), WeChat Account Topic and Title Writer (BigPengSays/bigpeng-hot-gzh, 265 stars) and Wb Xhs Schedule Review (wenziai/wenzi-xhs-agent-skills, 156 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Content Topic Recommender?

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.