#197 by GitHub stars
XBuilderLAB/cheat-on-content
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, it rewards those who see the pattern first. 1M followers in a month — not luck, system.
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
97aec3e3dfcc → 97aec3e3dfcc
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 97aec3e3dfcc
No earlier version was observed for comparison.
skills/cheat-bump/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
97aec3e3dfcc → 97aec3e3dfcc
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 97aec3e3dfcc
No earlier version was observed for comparison.
skills/cheat-init/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
97aec3e3dfcc → 97aec3e3dfcc
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 97aec3e3dfcc
No earlier version was observed for comparison.
skills/cheat-learn-from/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
97aec3e3dfcc → 97aec3e3dfcc
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 97aec3e3dfcc
No earlier version was observed for comparison.
skills/cheat-migrate/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
97aec3e3dfcc → 97aec3e3dfcc
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 97aec3e3dfcc
No earlier version was observed for comparison.
skills/cheat-persona/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
97aec3e3dfcc → 97aec3e3dfcc
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 97aec3e3dfcc
No earlier version was observed for comparison.
skills/cheat-predict/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
97aec3e3dfcc → 97aec3e3dfcc
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 97aec3e3dfcc
No earlier version was observed for comparison.
skills/cheat-publish/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
97aec3e3dfcc → 97aec3e3dfcc
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 97aec3e3dfcc
No earlier version was observed for comparison.
skills/cheat-recommend/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
97aec3e3dfcc → 97aec3e3dfcc
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 97aec3e3dfcc
No earlier version was observed for comparison.
skills/cheat-retro/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
97aec3e3dfcc → 97aec3e3dfcc
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 97aec3e3dfcc
No earlier version was observed for comparison.
skills/cheat-score/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
97aec3e3dfcc → 97aec3e3dfcc
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 97aec3e3dfcc
No earlier version was observed for comparison.
skills/cheat-score-blind/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
97aec3e3dfcc → 97aec3e3dfcc
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 97aec3e3dfcc
No earlier version was observed for comparison.
skills/cheat-seed/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
97aec3e3dfcc → 97aec3e3dfcc
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 97aec3e3dfcc
No earlier version was observed for comparison.
skills/cheat-shoot/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
97aec3e3dfcc → 97aec3e3dfcc
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 97aec3e3dfcc
No earlier version was observed for comparison.
skills/cheat-status/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
97aec3e3dfcc → 97aec3e3dfcc
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 97aec3e3dfcc
No earlier version was observed for comparison.
skills/cheat-trends/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
97aec3e3dfcc → 97aec3e3dfcc
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 97aec3e3dfcc
No earlier version was observed for comparison.
Heat
6.5- Star growth, last 7 daysAhead of 83% of tracked repositories
- Star growth, last 24 hoursAhead of 69% of tracked repositories
- Rank movement, last 7 daysAhead of 68% of tracked repositories
- Commits, last 30 daysAhead of 67% of tracked repositories
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekAhead of 0% of tracked repositories
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
Individual skills in this repository
- cheat-on-content
/ - cheat-bump
skills/cheat-bump - cheat-init
skills/cheat-init - cheat-learn-from
skills/cheat-learn-from - cheat-migrate
skills/cheat-migrate - cheat-persona
skills/cheat-persona - cheat-predict
skills/cheat-predict - cheat-publish
skills/cheat-publish - cheat-recommend
skills/cheat-recommend - cheat-retro
skills/cheat-retro - cheat-score
skills/cheat-score - cheat-score-blind
skills/cheat-score-blind - cheat-seed
skills/cheat-seed - cheat-shoot
skills/cheat-shoot - cheat-status
skills/cheat-status - cheat-trends
skills/cheat-trends
How it works
cheat-on-content
When your agent uses it
给所有想把"感觉"变成可校准预测的内容创作者。**方法论通用**——打分 → 盲预测 → T+3d 复盘 → 进化 rubric 的循环适用任何能被量化(播放 / 阅读 / 收听 / 点击)的内容。**rubric 是循环的内容,不是循环本身**——当前内置一份观点视频 rubric(参考博主 25+ 视频拟合),其他形态可借这套起步并 bump 调权重。**强烈建议导入对标账号**作为初始信号源(/cheat-learn-from)。触发词:"初始化"/"打分这篇"/"启动预测"/"已发布"/"复盘"/"升级 rubric"/"推荐选题"/"抓热点"/"状态"/"找对标"/"learn from"。**首次使用必须先跑 /cheat-init。**
What it loads into context
Frontmatter
253 tokensAlways available to the agent
SKILL.md
4,517 tokensWhen the skill is activated
Reference documents
92,965 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Codex compatibility
- 三条不可妥协原则
- 路由表(触发词 → 子 skill)
- 必须拒绝的请求
- 项目目录结构(用户 repo)
- 文件清单
- Tone & voice
- 给开发者:扩展本 skill
Scripts executed separately
adapters/perf-data/bilibili-stat/crawler.pyadapters/perf-data/bilibili-stat/paths.pyadapters/perf-data/bilibili-stat/renderer.pyadapters/perf-data/bilibili-stat/review.pyadapters/perf-data/bilibili-stat/run.shadapters/perf-data/douyin-session/crawler.pyadapters/perf-data/douyin-session/paths.pyadapters/perf-data/douyin-session/renderer.pyadapters/perf-data/douyin-session/review.pyadapters/perf-data/douyin-session/run.shadapters/perf-data/linkedin-session/crawler.pyadapters/perf-data/linkedin-session/extract.pyadapters/perf-data/linkedin-session/paths.pyadapters/perf-data/linkedin-session/renderer.pyadapters/perf-data/linkedin-session/review.pyadapters/perf-data/linkedin-session/run.shadapters/perf-data/linkedin-session/test_extract.pyadapters/perf-data/wechat-channels/crawler.pyadapters/perf-data/wechat-channels/paths.pyadapters/perf-data/wechat-channels/renderer.pyadapters/perf-data/wechat-channels/review.pyadapters/perf-data/wechat-channels/run.shadapters/perf-data/wechat-channels/test_adapter.pyadapters/perf-data/wechat-channels/test_run_contract.shadapters/perf-data/xhs-explore/crawler.pyadapters/perf-data/xhs-explore/paths.pyadapters/perf-data/xhs-explore/renderer.pyadapters/perf-data/xhs-explore/review.pyadapters/perf-data/xhs-explore/run.shadapters/script-extraction/whisper/run.shhooks/log-event.shhooks/prediction-immutability.shhooks/session-start.shinstall.shtools/diff_pct.pytools/diff_pct_test.shtools/gen-star-history.pytools/score-curve.pyuninstall.sh
Files
.github/workflows/star-history.ymlasset1,613 bytes.gitignoreasset1,042 bytesCHANGELOG.mddoc27,274 bytesLICENSEasset1,086 bytesREADME.mddoc7,071 bytesSKILL.mdcore16,486 bytesSKILL.mdcore16,486 bytesSKILL.mdcore16,486 bytesSKILL.mdcore16,486 bytesSKILL.mdcore16,486 bytesadapters/perf-data/bilibili-stat/.gitattributesasset34 bytesadapters/perf-data/bilibili-stat/README.mddoc2,790 bytesadapters/perf-data/bilibili-stat/crawler.pyruns5,116 bytesadapters/perf-data/bilibili-stat/paths.pyruns1,014 bytesadapters/perf-data/bilibili-stat/renderer.pyruns3,638 bytesadapters/perf-data/bilibili-stat/requirements.txtdoc12 bytesadapters/perf-data/bilibili-stat/review.pyruns1,966 bytesadapters/perf-data/bilibili-stat/run.shruns3,560 bytesadapters/perf-data/douyin-session/README.mddoc5,715 bytesadapters/perf-data/douyin-session/crawler.pyruns15,729 bytesadapters/perf-data/douyin-session/paths.pyruns1,173 bytesadapters/perf-data/douyin-session/renderer.pyruns3,315 bytesadapters/perf-data/douyin-session/requirements.txtdoc17 bytesadapters/perf-data/douyin-session/review.pyruns4,915 bytesadapters/perf-data/douyin-session/run.shruns4,399 bytesadapters/perf-data/linkedin-session/.gitattributesasset34 bytesadapters/perf-data/linkedin-session/README.mddoc7,405 bytesadapters/perf-data/linkedin-session/crawler.pyruns5,109 bytesadapters/perf-data/linkedin-session/extract.pyruns4,855 bytesadapters/perf-data/linkedin-session/paths.pyruns1,295 bytesadapters/perf-data/linkedin-session/renderer.pyruns4,297 bytesadapters/perf-data/linkedin-session/requirements.txtdoc17 bytesadapters/perf-data/linkedin-session/review.pyruns2,300 bytesadapters/perf-data/linkedin-session/run.shruns3,798 bytesadapters/perf-data/linkedin-session/test_extract.pyruns3,564 bytesadapters/perf-data/wechat-channels/.gitattributesasset34 bytesadapters/perf-data/wechat-channels/README.mddoc2,304 bytesadapters/perf-data/wechat-channels/crawler.pyruns18,406 bytesadapters/perf-data/wechat-channels/paths.pyruns704 bytesadapters/perf-data/wechat-channels/renderer.pyruns3,761 bytesadapters/perf-data/wechat-channels/requirements.txtdoc17 bytesadapters/perf-data/wechat-channels/review.pyruns2,650 bytesadapters/perf-data/wechat-channels/run.shruns2,182 bytesadapters/perf-data/wechat-channels/test_adapter.pyruns1,850 bytesadapters/perf-data/wechat-channels/test_run_contract.shruns1,366 bytesadapters/perf-data/xhs-explore/README.mddoc7,733 bytesadapters/perf-data/xhs-explore/crawler.pyruns29,389 bytesadapters/perf-data/xhs-explore/paths.pyruns1,174 bytesadapters/perf-data/xhs-explore/renderer.pyruns5,077 bytesadapters/perf-data/xhs-explore/requirements.txtdoc32 bytesadapters/perf-data/xhs-explore/review.pyruns16,510 bytesadapters/perf-data/xhs-explore/run.shruns4,020 bytesadapters/script-extraction/whisper/README.mddoc4,291 bytesadapters/script-extraction/whisper/run.shruns3,942 bytesadapters/trend-sources/aihot.mddoc2,739 bytesadapters/trend-sources/trendradar-mcp.mddoc3,672 bytesadapters/trend-sources/weibo-hot.mddoc3,215 bytesadapters/trend-sources/zhihu-hot.mddoc3,330 bytesdocs/README_CN.mddoc6,526 bytesdocs/guancha-no1.svgasset4,923 bytesdocs/logo.svgasset1,956 bytesdocs/star-history.svgasset60,791 bytesexamples/script_patterns.example.mddoc11,478 byteshooks/log-event.shruns2,023 byteshooks/meta-logging.jsonasset1,451 byteshooks/prediction-immutability.jsonasset541 byteshooks/prediction-immutability.shruns5,158 byteshooks/session-start.jsonasset580 byteshooks/session-start.shruns9,063 bytesinstall.shruns7,810 bytesmigrations/1.0-to-1.1.mddoc4,299 bytesmigrations/1.1-to-1.2.mddoc2,722 bytesmigrations/1.2-to-1.3.mddoc3,581 bytesmigrations/1.3-to-1.4.mddoc6,629 bytesmigrations/registry.mddoc3,790 bytesshared-references/blind-prediction-protocol.mddoc7,430 bytesshared-references/bump-validation-protocol.mddoc8,426 bytesshared-references/cadence-protocol.mddoc7,217 bytesshared-references/candidate-schema.mddoc6,960 bytesshared-references/data-source-routing.mddoc6,262 bytesshared-references/migration-protocol.mddoc5,501 bytesshared-references/observation-lifecycle.mddoc10,083 bytesshared-references/prediction-anatomy.mddoc14,545 bytesshared-references/state-management.mddoc18,121 bytesstarter-rubrics/long-essay-zero.mddoc5,263 bytesstarter-rubrics/opinion-video-zero.mddoc10,422 bytesstarter-rubrics/opinion-video.mddoc10,509 bytesstarter-rubrics/other-zero.mddoc6,181 bytesstarter-rubrics/podcast-zero.mddoc5,882 bytesstarter-rubrics/short-text-zero.mddoc5,463 bytesstarter-rubrics/tutorial-builder-zero.mddoc6,419 bytestemplates/audience.template.mddoc2,724 bytestemplates/benchmark.template.mddoc4,311 bytestemplates/candidates.template.jsonasset2,619 bytestemplates/candidates.template.mddoc4,285 bytestemplates/content.db.schema.sqlasset8,833 bytestemplates/gitignore.templateasset1,417 bytestemplates/prediction.template.mddoc5,563 bytestemplates/retro.template.mddoc5,505 bytestemplates/rubric-memo.template.mddoc4,023 bytestemplates/rubric_notes.template.mddoc8,523 bytestemplates/script_patterns.template.mddoc9,281 bytestemplates/status.template.mddoc1,253 bytestemplates/workflow.template.mddoc7,895 bytestools/diff_pct.pyruns3,366 bytestools/diff_pct_test.shruns4,540 bytestools/gen-star-history.pyruns6,348 bytestools/score-curve.pyruns8,692 bytestools/xkcd-font.cssasset53,530 bytesuninstall.shruns2,725 bytes
Read SKILL.md
# 网红作弊器 / Cheat on Content
> 🎯 **方法论通用,rubric 当前内置观点视频版**
>
> **方法论**(5 阶段闭环):任何能被量化的内容形态都适用——视频 / 文章 / 播客 / Newsletter / 短文 thread。
>
> **当前内置 rubric**:观点类视频(评论 / 时评 / 论说 / 议题讨论 / 个人观点表达),7 个维度由参考博主 25+ 已发样本拟合而来。如果你做其他形态,需要:
> - 自己写一份 rubric(参照 [starter-rubrics/opinion-video-zero.md](starter-rubrics/opinion-video-zero.md) 的格式)
> - 或等内置扩展(长文 / 短文 / 播客 starter 在批次 3 路线图)
>
> 默认假设:**用户是从零开始的新人**(一条视频都没发过)——cold-start 期的预测会**简化**,只要 7 维打分 + 一句话 bet,不强求 bucket 数字(避免 false precision)。已有 5+ 篇数据的老手走 calibration 模式解锁完整 7 组件预测。
把内容创作变成可校准预测循环:**打分 → 预测 → 发布 → 复盘 → 进化 rubric**。
View the complete source on GitHubcheat-bump
When your agent uses it
提议并执行 rubric 或 bucket 升级。两种模式:**完整 rubric bump**(最高风险动作,5 步强制 + 跨模型审核)和 **--bucket-only 轻量重校**(只换 bucket 边界,不动 rubric 公式)。**Phase 2 强制走 cheat-score-blind sub-agent 给校准池重打分**——不接受 self-scored fallback。触发词:"升级 rubric"/"bump rubric"/"更新公式"/"我想加一个维度"/"调整权重"/"重校桶"/"recalibrate bucket"。
What it loads into context
Frontmatter
191 tokensAlways available to the agent
SKILL.md
6,757 tokensWhen the skill is activated
Reference documents
10,669 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Overview
- Phase A0: 调用模式分流(先做)
- 完整 rubric bump 流程
- Constants
- Inputs
- Workflow
- Phase B:bucket-only 重校(轻量分支)
- Key Rules
- Refusals
- Integration
Files
../../shared-references/bump-validation-protocol.mddoc8,426 bytes../../shared-references/observation-lifecycle.mddoc10,083 bytesSKILL.mdcore21,594 bytes../cheat-score-blind/SKILL.mddoc12,264 bytes../../templates/rubric-memo.template.mddoc4,023 bytes
Read SKILL.md
# /cheat-bump — Rubric / Bucket 升级
两种模式:
| 模式 | 触发 | 做什么 | 验证强度 |
|---|---|---|---|
| **完整 rubric bump** | `--propose "<新公式>"` | 改公式 / 维度 / 权重 | 5 步 + 跨模型审核(强制) |
| **bucket-only 重校** | `--bucket-only` | 只重新派生 bucket 边界 | 数据自动派生,无审核 |
完整 rubric bump 严格遵守 [shared-references/bump-validation-protocol.md](../../shared-references/bump-validation-protocol.md) 的 5 步。bucket-only 走轻量路径——见下方 Phase B。
## Overview
```View the complete source on GitHubcheat-init
When your agent uses it
cheat-on-content 的首次 onboarding 与脚手架创建器。统一流程——所有用户都走相同 5 阶段闭环,唯一区别是"发过视频的人"会在 init 时多一步:抓取已有视频建立历史 context(用于后续 cheat-seed 给更贴合的选题、更准的 baseline)。触发词:"初始化"/"init"/"首次使用"/"我是新用户"/"setup cheat-on-content"。**必须在用户第一次会话执行;其他子 skill 在 .cheat-state.json 不存在时自动路由到此。**
What it loads into context
Frontmatter
172 tokensAlways available to the agent
SKILL.md
7,877 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Overview
- Constants
- Inputs
- Workflow
- Key Rules
- Refusals
- Integration
- State 字段写入清单
Files
SKILL.mdcore26,119 bytesSKILL.mdcore26,119 bytes
Read SKILL.md
# /cheat-init — 首次 onboarding
让用户从零到能跑第一篇预测,全程 ≤ 5 分钟(没发过历史的)或 ≤ 10 分钟(已发过、要 import 历史的)。
## Overview
```
[用户首次说"初始化"]
↓
[Phase 0: 检测当前状态]
↓
[Phase 1: 首屏文案 — 适用性 + 期望管理]
↓
[Phase 2: 6 个问题(Q1-Q5 都问;Q2 决定是否走 user-history import)]View the complete source on GitHubcheat-learn-from
When your agent uses it
从对标账号导入 script + 数据 → 拆 pattern + 派生 base rubric 信号 → 写到 benchmark.md / script_patterns.md / rubric_notes.md。**这是工具最早期信号的来源**——cold-start 用户没自己历史时全靠对标,发过历史的用户也建议至少 1 个对标做 sanity check。触发词:"学这个账号"/"拆这几个对标视频"/"learn from"/"导入对标账号"/"找对标"。
What it loads into context
Frontmatter
162 tokensAlways available to the agent
SKILL.md
4,532 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Overview
- Constants
- Inputs
- Workflow
- Key Rules
- Refusals
- Integration
- benchmark 何时淡出
- 与其他 skill 的区别
Scripts executed separately
../../adapters/script-extraction/whisper/run.sh../../adapters/script-extraction/whisper/run.sh
Files
../../adapters/script-extraction/whisper/run.shruns3,942 bytes../../adapters/script-extraction/whisper/run.shruns3,942 bytesSKILL.mdcore15,337 bytes
Read SKILL.md
# /cheat-learn-from — 对标账号导入
工具早期最重要的信号源是**对标账号**——你 init 完没数据,rubric 等权 v0 等于占星。但如果你能找一个你想做成那样的账号,导入 5-10 条它的高/中/低样本,工具就有了 anchor。
后期当你自己 calibration_samples ≥ 10 时,benchmark 影响自然减弱——你的真实数据成为主要信号源。但 benchmark.md **不删**,仍是 cheat-seed brainstorm 的 reference frame。
## Overview
```
[用户:学这个账号 / 启动 cheat-learn-from]
↓
[Phase 0: 检查 benchmark 状态]
↓
[Phase 1: 选 input 方式(Way a 默认)]View the complete source on GitHubcheat-migrate
When your agent uses it
把老用户的 .cheat-state.json 升级到当前 schema_version。读 migrations/registry.md 算迁移链,按顺序应用每一步迁移文件。幂等:跑两次结果一样。失败停在中间版本不前进。触发词:"迁移"/"升级 state"/"migrate"/"我的 state 是老版本"/"schema 版本不对"。
What it loads into context
Frontmatter
133 tokensAlways available to the agent
SKILL.md
2,907 tokensWhen the skill is activated
Reference documents
6,550 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Overview
- Constants
- Inputs
- Workflow
- Key Rules
- Refusals
- Integration
- State 字段读写
- Examples
Files
../../migrations/registry.mddoc3,790 bytes../../shared-references/state-management.mddoc18,121 bytesSKILL.mdcore9,207 bytesSKILL.mdcore9,207 bytesSKILL.mdcore9,207 bytes
Read SKILL.md
# /cheat-migrate — Schema 版本迁移
把用户 `.cheat-state.json` 从旧 `schema_version` 升级到 cheat-on-content 当前期望的 `LATEST_SCHEMA`。
---
## Overview
```
[用户:迁移 / 或 SessionStart 提示后用户跑]
↓
[Phase 0: 读 .cheat-state.json + migrations/registry.md → 确定迁移链]
↓
[Phase 1: dry-run(默认)展示迁移计划,等用户确认]View the complete source on GitHubcheat-persona
When your agent uses it
从复盘评论数据派生 / 刷新账号的受众画像,写入 audience.md。这是和 rubric 平行的第二个派生物——rubric 答"怎么打分",persona 答"谁在看"。cheat-seed 选题 / 写稿时读它。**audience.md 含实绩信号,cheat-score-blind 硬禁读**。触发词:"构造受众画像"/"更新 persona"/"我的观众是谁"/"build persona"/"刷新受众画像"/"看看我的受众画像"。
What it loads into context
Frontmatter
166 tokensAlways available to the agent
SKILL.md
3,077 tokensWhen the skill is activated
Reference documents
4,378 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 核心定位
- ⚠<U+FE0F> 污染隔离(不可省)
- Overview
- Constants
- Inputs
- Workflow
- Key Rules
- Refusals
- Integration
- Known limitations
Files
SKILL.mdcore10,275 bytes../cheat-score-blind/SKILL.mddoc12,264 bytes../../templates/audience.template.mddoc2,724 bytes
Read SKILL.md
# /cheat-persona — 受众画像派生
从 `predictions/*.md` 复盘段的评论数据,聚类出账号真实受众画像,写入 `audience.md`。
---
## 核心定位
persona 是和 rubric **平行**的第二个派生物,**不是 rubric 的一部分**:
```
复盘数据(评论 + 完播 + 转粉)
├──→ rubric 进化(cheat-bump) —— "怎么打分"
└──→ 受众画像(cheat-persona) —— "谁在看"View the complete source on GitHubcheat-predict
When your agent uses it
给最终稿写一份 immutable 盲预测日志。这是 cheat-on-content 整个校准循环的核心动作——预测段一旦写完不可改,由 hook 强制。**自动检测**:如目标文件已有 `## 预测` / `## 预测 v1` 段(被 cheat-shoot 调用走 v2 模式),改成 append `## 预测 v2` 而非覆盖。**打分通过 Task tool 委派给 `cheat-score-blind` sub-agent**(context-isolated channel B),主 Claude review 后落盘。触发词:"启动预测"/"start prediction"/"给这稿子打分并预测"/"写预测日志"。
What it loads into context
Frontmatter
209 tokensAlways available to the agent
SKILL.md
7,651 tokensWhen the skill is activated
Reference documents
15,631 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Overview
- Constants
- Inputs
- Workflow
- Key Rules
- Refusals
- Integration
Files
../../shared-references/blind-prediction-protocol.mddoc7,430 bytes../../shared-references/prediction-anatomy.mddoc14,545 bytes../../shared-references/state-management.mddoc18,121 bytesSKILL.mdcore24,919 bytesSKILL.mdcore24,919 bytes../cheat-score-blind/SKILL.mddoc12,264 bytes
Read SKILL.md
# /cheat-predict — AI 主导的盲预测 + 用户 review
**这个工具是"作弊器"——AI 帮你做判断**。所以 cheat-predict 的核心是:
- **Claude 自己**读稿子 + 打 7 维分 + 给 bucket + 概率分布 + 反事实场景
- 用户 **review** 后回 "ok" 接受,或指出哪个维度 / 哪个判断不对
- 默认走快路径:用户直接 ok → 落盘
- 慢路径:用户挑刺某个维度 → Claude 改 → 再 review → 直至确认
不是用户从 7 维分到概率分布全部自己写,那 Claude 只剩"格式化器"——失去工具的核心价值。
**严格遵守 [shared-references/blind-prediction-protocol.md](../../shared-references/blind-prediction-protocol.md)**——见过任何后续数据就不能写预测,只能记 reconstructed。
完整组件清单见 [shared-references/prediction-anatomy.md](../../shared-references/prediction-anatomy.md)。
Confidence 派生表见 [shared-references/state-management.md](../../shared-references/state-management.md)。
View the complete source on GitHubcheat-publish
When your agent uses it
登记一篇内容已发布,把 URL/平台 ID/发布时间写入对应预测文件 header 和 state file。这是一个轻量动作——只更新元数据,**不动预测段任何字符**。触发词:"已发布"/"I shipped"/"发布链接是 X"/"刚发完 [url]"/"publish registered"。
What it loads into context
Frontmatter
118 tokensAlways available to the agent
SKILL.md
2,199 tokensWhen the skill is activated
Reference documents
2,291 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Overview
- Constants
- Inputs
- Workflow
- Key Rules
- Refusals
- Integration
Files
../../shared-references/cadence-protocol.mddoc7,217 bytesSKILL.mdcore7,521 bytes
Read SKILL.md
# /cheat-publish — 发布登记
把作品的发布元数据(URL、发布时间、平台)补到预测文件 header 与 state file。**禁止改预测段**——hook 会拦。
## Overview
```
[用户:已发布 https://...]
↓
[Phase 0: 找到对应的预测文件] ← 通过 in_progress_session 或匹配
↓
[Phase 1: 解析 URL → 平台/发布时间]
↓
[Phase 2: 更新 prediction 文件 header(仅 metadata 段)]View the complete source on GitHubcheat-recommend
When your agent uses it
从 candidates.md 里按当前 rubric 排序推荐 top N 选题,每条带 composite + 一句 rationale + 锚点对比。**candidates 不存在时给引导而非报错**。触发词:"推荐选题"/"next topic"/"下一篇做什么"/"recommend topics"/"挑一个选题"。
What it loads into context
Frontmatter
116 tokensAlways available to the agent
SKILL.md
3,232 tokensWhen the skill is activated
Reference documents
4,454 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Overview
- Constants
- Inputs
- Workflow
- Key Rules
- Refusals
- Integration
Files
../../shared-references/cadence-protocol.mddoc7,217 bytes../../shared-references/candidate-schema.mddoc6,960 bytesSKILL.mdcore10,179 bytes
Read SKILL.md
# /cheat-recommend — 候选池排序推荐
读 candidates.md → 按 composite 排序 → 输出 top N 推荐,每条带评分细节 + 锚点对比 + 推荐理由。
## Overview
```
[用户:推荐选题]
↓
[Phase 0: 检查 candidates.md 存在性] ← 不存在则引导,不报错
↓
[Phase 1: 解析 candidates 列表]
↓
[Phase 2: 过滤(tier / 安全性 / 已发过)]View the complete source on GitHubcheat-retro
When your agent uses it
T+N 天数据回收 + 复盘 + 把实绩观察写入 rubric-memo.md。这是校准循环的反馈环节——不复盘的预测等于占星。触发词:"复盘 [path]"/"retro this"/"T+3d 数据来了"/"抓数据 [path]"/"把这篇复盘了"。
What it loads into context
Frontmatter
134 tokensAlways available to the agent
SKILL.md
6,248 tokensWhen the skill is activated
Reference documents
10,507 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Overview
- Constants
- Inputs
- Workflow
- Key Rules
- Refusals
- Integration
Files
../../shared-references/observation-lifecycle.mddoc10,083 bytes../../shared-references/prediction-anatomy.mddoc14,545 bytesSKILL.mdcore20,618 bytesSKILL.mdcore20,618 bytes../../templates/script_patterns.template.mddoc9,281 bytes
Read SKILL.md
# /cheat-retro — 数据回收与复盘
抓 T+N 天的实际表现 → 对比预测 → 提炼新观察 → 写入 rubric-memo.md。**只追加 `## 复盘` 段,绝不改预测段**。`rubric_notes.md` 是 blind 白名单,只能保存通用公式、维度定义和抽象规则,不能写入样本名、实绩、评论、链接或播放/阅读数。
## Overview
```
[用户:复盘 predictions/2026-05-04_...]
↓
[Phase 0: 校验 immutability + 校验时间窗口]
↓
[Phase 1: 抓数据(manual paste 或 adapter)]
↓
[Phase 2: 写实绩段 + top 评论关键词]View the complete source on GitHubcheat-score
When your agent uses it
给单篇稿子打 rubric 分。**只在控制台输出,不写文件,不预测**。触发词:"打分这篇 [path]"/"score this [path]"/"给这稿子打分"/"先打分看看"。是 cheat-predict 之前的轻量探索动作。
What it loads into context
Frontmatter
92 tokensAlways available to the agent
SKILL.md
2,240 tokensWhen the skill is activated
Reference documents
3,581 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Overview
- Constants
- Inputs
- Workflow
- Key Rules
- Refusals
- Integration
Files
../cheat-score-blind/SKILL.mddoc12,264 bytesSKILL.mdcore7,422 bytes
Read SKILL.md
# /cheat-score — 单稿打分
打分但**不预测**。用户用它快速看稿子的 composite,决定是否值得进入正式预测流程。
## Overview
```
[用户:打分这篇 draft.md]
↓
[读 draft.md + rubric_notes.md]
↓
[逐维度打 0-5 + 写一行理由 + 算 composite]
↓
[控制台输出:评分 + composite + 推荐下一步]View the complete source on GitHubcheat-score-blind
When your agent uses it
INTERNAL sub-agent for blind 7-dim rubric scoring. **NOT a user-facing skill — do NOT invoke from main conversation.** Called via Task tool by cheat-score / cheat-predict / cheat-bump to get a context-isolated score on a script. Receives ONLY script_path + rubric_notes_path; refuses any other input. Outputs strict JSON: 9 dimensions × {score 0-5, confidence enum, one-line reason}. **Hard refuses to Read** .cheat-state.json, predictions/*, retro 段, or anything that could leak post-publish data. This is channel B in the 3-channel calibration model (A=main, B=blind sub, C=cross-model).
What it loads into context
Frontmatter
182 tokensAlways available to the agent
SKILL.md
3,581 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Why this exists(绝不可省的背景)
- 三 channel 模型
- Inputs(**唯一被允许的输入**)
- 禁止读取(hard list)
- Workflow
- 主 Claude 调用契约(如何使用 channel B)
- Refusals
- Known limitations(写在最显眼的地方)
- Integration
Files
SKILL.mdcore12,264 bytes
Read SKILL.md
# /cheat-score-blind — Channel B (blind scorer sub-agent)
> ⚠<U+FE0F> **这是子 agent,不是用户 skill**。只能由 `cheat-score` / `cheat-predict` / `cheat-bump` 通过 Task tool spawn。用户直接 trigger 没有意义——主对话已经被污染,调用 blind sub-agent 在主 context 里跑不构成隔离。
---
## Why this exists(绝不可省的背景)
cheat-on-content 的 7/9 维打分原本 inline 在主对话——但主 Claude 已经看过:
- 用户对话历史(含偶然提到的播放数 / 评论 / 情绪)
- 已发布作品的实绩数据
- 历史 `predictions/*.md` 含复盘段(**严重污染**)
- 用户的赞美 / 抱怨 / 期待
View the complete source on GitHubcheat-seed
When your agent uses it
跟用户对话讨论选题——**默认一次一个**,用户主动给主题或经历,AI 围绕用户的输入深挖、提炼角度、写一份 draft。不是 AI 拿三个开放问题追用户,也不是一次给 5 个候选。触发词:"找选题"/"我想做一条 X"/"最近有个想法"/"seed"/"启动种子"。可选 batch 模式:`/cheat-seed --batch 5` 走旧的 brainstorm 5 候选 + 写 5 draft 流程。
What it loads into context
Frontmatter
175 tokensAlways available to the agent
SKILL.md
7,528 tokensWhen the skill is activated
Reference documents
4,074 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 三种 Mode(自动识别)
- Constants
- Inputs
- Workflow
- Key Rules
- Refusals
- Integration
Files
../../shared-references/candidate-schema.mddoc6,960 bytes../../shared-references/data-source-routing.mddoc6,262 bytesSKILL.mdcore24,873 bytesSKILL.mdcore24,873 bytesSKILL.mdcore24,873 bytes
Read SKILL.md
# /cheat-seed — 选题对话(默认)/ 批量 brainstorm(可选)
cheat-seed 的核心是**跟用户讨论选题**,不是机械地 brainstorm。好内容来自用户的真实经历 + 观察 + 情绪——这些是 AI 不可能凭空 brainstorm 出来的。AI 的角色是**听用户讲 → 帮提炼角度 → 写一份 draft**,不是 dump 15 候选让用户挑。
**默认模式**:对话式一次一个。
**Batch 模式**(`--batch N`):保留旧的 brainstorm N 候选 + 写 N 份 draft 流程,给"完全没想法 + 想批量初始化"的用户。
## 三种 Mode(自动识别)
```
Mode A — 用户主动给主题(**最常见**):
用户:"/cheat-seed" + 直接说"我想做一条关于 X 的"
或:"/cheat-seed 我最近开会被领导..."
↓View the complete source on GitHubcheat-shoot
When your agent uses it
登记一条视频已拍摄。**建 video folder + 询问实际拍摄稿是否与 scripts/<id>.md 一致 + buffer +1**。与 cheat-publish 配对:拍了进队列,发了出队列。触发词:"拍了"/"拍了 X"/"shot"/"shot it"/"已拍 X"/"录完了"。
What it loads into context
Frontmatter
116 tokensAlways available to the agent
SKILL.md
3,337 tokensWhen the skill is activated
Reference documents
2,291 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Overview
- Constants
- Inputs
- Workflow
- Key Rules
- Refusals
- Integration
- state.shoots 数据结构
Scripts executed separately
../../tools/diff_pct.py../../tools/diff_pct_test.sh
Files
../../shared-references/cadence-protocol.mddoc7,217 bytesSKILL.mdcore10,788 bytesSKILL.mdcore10,788 bytesSKILL.mdcore10,788 bytesSKILL.mdcore10,788 bytesSKILL.mdcore10,788 bytes../../tools/diff_pct.pyruns3,366 bytes../../tools/diff_pct_test.shruns4,540 bytes
Read SKILL.md
# /cheat-shoot — 登记拍摄完成 + 建 video folder + (改稿则) 触发 v2 预测
把视频从"已写预测、未拍摄"状态推进到"已拍摄、未发布"状态。这一步:
1. **建 `videos/<同 id>/`** 目录(之前没有的话)
2. **询问用户**:"实际拍摄时用的稿子和 `scripts/<id>.md` 一致吗?"
3. 算 diff——超过 V2_TRIGGER_THRESHOLD (默认 30%) → **delegate 到 `/cheat-predict — mode: v2`** 在原 prediction 文件 append `## 预测 v2` 段
4. 把 video folder 加进 state.shoots 队列,buffer +1
cheat-shoot 自己**不**写预测内容——所有预测落盘逻辑在 cheat-predict。cheat-shoot 只负责检测改稿 + 派发。
为什么单独一个 skill:
- buffer 警戒系统需要明确区分"拍了" vs "发了"。视频可以批量拍(一天拍 5 条),分散发(每天发 1 条)
- "实际拍摄稿" ≠ "pre-shoot 草稿"是常态。这一步是把 diff 显式化、触发 v2 重判、采集"用户改稿 pattern"信号的入口
- v2 预测 vs v1 预测的差异本身就是 rubric 升级证据——比如 v1 给 ER=4,v2 给 ER=5(用户改稿改高了 hook 强度),就告诉 rubric "这个用户的 ER 阈值跟我现在公式不一致"View the complete source on GitHubcheat-status
When your agent uses it
cheat-on-content 的状态看板。显示当前模式 / rubric 版本 / 校准进度 / 待复盘 / pool 状态 / 是否该升级 SQLite / 是否该 bump rubric。**任何时候都可调,无副作用**。触发词:"状态"/"看板"/"status"/"我现在该做什么"/"进度怎么样"。
What it loads into context
Frontmatter
96 tokensAlways available to the agent
SKILL.md
2,804 tokensWhen the skill is activated
Reference documents
7,588 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Overview
- Constants
- Inputs
- Workflow
- Key Rules
- Refusals
- Integration
Files
../../shared-references/cadence-protocol.mddoc7,217 bytes../../shared-references/state-management.mddoc18,121 bytesSKILL.mdcore9,236 bytesSKILL.mdcore9,236 bytes
Read SKILL.md
# /cheat-status — 状态看板
读 state file + 扫描用户项目 → 汇总当前进度 → 输出"今天该做什么"清单。
## Overview
```
[用户:状态]
↓
[Phase 1: 读 .cheat-state.json + 扫文件系统]
↓
[Phase 2: 计算派生指标]
↓
[Phase 3: 检测建议触发器(升级 / bump / 清算)]View the complete source on GitHubcheat-trends
When your agent uses it
从配置的热点源(HN / Reddit / YouTube trending / B 站热门 / 等)抓今天的热门话题,去重 + 粗打分 + 写入 candidates.md。**绝大部分人没有候选池——这是让"我没素材"问题在 onboarding 第二步就消失的钥匙**。触发词:"抓热点"/"fetch trends"/"今天有什么可做的"/"trending now"/"找选题"。
What it loads into context
Frontmatter
146 tokensAlways available to the agent
SKILL.md
2,479 tokensWhen the skill is activated
Reference documents
2,163 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Overview
- Constants
- Inputs
- Workflow
- Key Rules
- Refusals
- Integration
- Adapter 实现注意事项
Files
../../shared-references/candidate-schema.mddoc6,960 bytesSKILL.mdcore8,193 bytesSKILL.mdcore8,193 bytesSKILL.mdcore8,193 bytes
Read SKILL.md
# /cheat-trends — 热点抓取
多 adapter 模式:读各 `trend-sources` adapter 的输出 → 去重 → 粗打分 → 写入 `candidates.md`。
## Overview
```
[用户:抓热点]
↓
[Phase 0: 读 .cheat-state.json 拿 enabled adapters]
↓
[Phase 1: 对每个 adapter 调 fetch]
↓
[Phase 2: normalize 到 candidate-schema]View the complete source on GitHubSkills included
- cheat-on-content
- cheat-bump
- cheat-init
- cheat-learn-from
- cheat-migrate
- cheat-persona
- cheat-predict
- cheat-publish
- cheat-recommend
- cheat-retro
- cheat-score
- cheat-score-blind
- cheat-seed
- cheat-shoot
- cheat-status
- cheat-trends
Repository facts
- License
- MIT
- Created
- May 5, 2026
- Last pushed
- Nov 2, 2026
- Forks
- 979
- Open issues
- 12
- Project activity
- Active
Rank over the last 12 weeks
Now #197 · best #166 · down 13 in 30 days
- #195 on Oct 29
- #196 on Oct 30
- #197 on Oct 31
- #195 from Nov 1 to Nov 2
- #196 on Nov 3
- #197 since Nov 4
66 earlier periods
- #169 on Aug 2
- #170 from Aug 7 to Aug 8
- #167 on Aug 9
- #170 from Aug 10 to Aug 11
- #167 on Aug 12
- #170 on Aug 13
- #169 on Aug 14
- #167 from Aug 15 to Aug 17
- #170 on Aug 18
- #171 on Aug 19
- #170 on Aug 20
- #171 on Aug 21
- #166 on Aug 22
- #171 on Aug 23
- #168 from Aug 24 to Aug 26
- #169 from Aug 27 to Aug 28
- #170 on Aug 29
- #169 on Aug 30
- #168 on Aug 31
- #173 on Sep 1
- #169 on Sep 2
- #175 on Sep 3
- #172 on Sep 4
- #174 on Sep 5
- #171 from Sep 6 to Sep 8
- #172 from Sep 9 to Sep 10
- #168 on Sep 11
- #172 from Sep 12 to Sep 13
- #169 on Sep 14
- #170 on Sep 15
- #171 from Sep 16 to Sep 17
- #173 on Sep 18
- #171 on Sep 19
- #174 on Sep 20
- #173 on Sep 21
- #174 on Sep 22
- #176 on Sep 23
- #175 from Sep 24 to Sep 25
- #177 on Sep 26
- #178 on Sep 27
- #180 from Sep 28 to Sep 29
- #176 on Sep 30
- #178 on Oct 1
- #182 on Oct 2
- #179 on Oct 3
- #178 on Oct 4
- #181 from Oct 5 to Oct 6
- #184 on Oct 7
- #183 on Oct 8
- #184 on Oct 9
- #182 on Oct 10
- #185 on Oct 11
- #187 on Oct 12
- #189 on Oct 13
- #188 from Oct 14 to Oct 15
- #187 on Oct 16
- #189 on Oct 17
- #190 on Oct 18
- #189 on Oct 19
- #188 on Oct 20
- #191 on Oct 21
- #190 on Oct 22
- #189 on Oct 23
- #190 on Oct 24
- #192 on Oct 25
- #193 on Oct 28
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 2, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 22 notes
SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzeddocs/star-history.svg:2Analysis incomplete: physical or joined line exceeds character limitdocs/star-history.svg:1Analysis incomplete: physical or joined line exceeds character limittools/xkcd-font.css:1Analysis incomplete: physical or joined line exceeds character limitskills/cheat-init/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedadapters/script-extraction/whisper/run.sh:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/cheat-migrate/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/cheat-migrate/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/cheat-predict/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/cheat-retro/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/cheat-seed/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/cheat-seed/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/cheat-shoot/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/cheat-shoot/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/cheat-shoot/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/cheat-shoot/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/cheat-status/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- 13 broad permissionsin 13 files: SKILL.md:1 cheat-bump/SKILL.md:1 cheat-init/SKILL.md:1 and 10 more
- 18 dangerous shell commandsin 11 files: tools/diff_pct_test.sh:34 adapters/perf-data/wechat-channels/run.sh:36 adapters/script-extraction/whisper/run.sh:82 and 8 more
- 230 network referencesin 37 files: adapters/perf-data/xhs-explore/crawler.py:31 shared-references/candidate-schema.md:72 adapters/perf-data/douyin-session/crawler.py:16 and 34 more
- No hidden or obfuscated text
- No instruction overrides
- 43 executable scriptsin 39 files: adapters/script-extraction/whisper/run.sh:1 tools/diff_pct.py:1 tools/diff_pct_test.sh:1 and 36 more
- 13 references to secretsin 8 files: adapters/perf-data/bilibili-stat/paths.py:12 adapters/perf-data/douyin-session/paths.py:12 adapters/perf-data/linkedin-session/paths.py:12 and 5 more
- No requests to vote in Hot
Show all 317 signals by file
.gitignore
- Access to secretsline 21
[Credential-related source omitted]
CHANGELOG.md
- Network accessline 5
格式参考 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/),版本号遵循 [SemVer](https://semver.org/lang/zh-CN/)。 - Network accessline 13
- 融合 [xhs-analytics](https://github.com/SingularGuyLeBorn/xhs-analytics) 的公开页解析能力: - Network accessline 63
**改动**:draft 写完落盘后、展示给用户前,新增 Phase 4.5——用 [`humanizer`](https://github.com/blader/humanizer) skill(MIT,外部项目,18k stars)过一遍去掉 AI tells。 - Network accessline 73
### Fixed — douyin-session 运行时路径隐私漏洞(@level5Ninja [#16](https://github.com/XBuilderLAB/cheat-on-content/pull/16)) - Network accessline 181
两份 README 末尾加 [star-history.com](https://star-history.com) 图表,社区可视化项目热度。 - Network accessline 206
- **[aihot](adapters/trend-sources/aihot.md)**(Claude skill):[aihot.virxact.com](https://aihot.virxact.com) 的中文 AI 行业每日精选,5 类(模型/产品/行业/论文/技巧)。无 auth,curl 公开 API,rate limit 600/min - Network accessline 207
- **[trendradar-mcp](adapters/trend-sources/trendradar-mcp.md)**(MCP server):[TrendRadar](https://github.com/sansan0/TrendRadar)(57k stars,GPL-3.0 通过 MCP 调用不构成 linking)。25+ MCP 工具——除 `get_latest_news` 外还有 `analyze_topic_trend`(爆火/衰退判定)、`com - Network accessline 240
### Added — Codex 安装兼容(@songth1ef [#6](https://github.com/XBuilderLAB/cheat-on-content/pull/6))
README.md
- Network accessline 13
<p align="center"> <a href="https://watcha.cn/products/cheat-on-content"> - Network accessline 14
<a href="https://watcha.cn/products/cheat-on-content"> - Network accessline 19
<p align="center"> <a href="CHANGELOG.md"><img src="https://img.shields.io/badge/version-v0.1.0-orange" alt="Version"></a> - Network accessline 20
<a href="CHANGELOG.md"><img src="https://img.shields.io/badge/version-v0.1.0-orange" alt="Version"></a> - Network accessline 21
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="License"></a> </p> - Network accessline 22
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="License"></a> - Network accessline 116
git clone https://github.com/XBuilderLAB/cheat-on-content.git - Network accessline 151
start prediction scripts/<...>.md → blind prediction + decision log shot scripts/<...>.md → create video folder + buffer +1 shipped https://... → buffer -1 - Network accessline 152
shot scripts/<...>.md → create video folder + buffer +1 shipped https://... → buffer -1 retro videos/<...>/ → T+3d data + retrospective - Network accessline 153
shipped https://... → buffer -1 retro videos/<...>/ → T+3d data + retrospective status / fetch trends / find topic / bump rubric / find benchmark - Network accessline 166
<a href="https://star-history.com/#XBuilderLAB/cheat-on-content&Date">
SKILL.md
- Broad permissionsline 1
Bash(*), Read, Write, Edit, Grep, Glob, Skill, mcp__llm-chat__chat
adapters/perf-data/bilibili-stat/README.md
- Network accessline 33
- `<bvid_or_url>`:`BV1cUoUY9Ecr`,或任意含 BV 号的链接(如 `https://www.bilibili.com/video/BV1cUoUY9Ecr`) - Network accessline 55
| 数据 | 接口 | |---|---| | 视频统计 | `GET https://api.bilibili.com/x/web-interface/view?bvid=<BV号>` | - Network accessline 56
|---|---| | 视频统计 | `GET https://api.bilibili.com/x/web-interface/view?bvid=<BV号>` | | 评论 | `GET https://api.bilibili.com/x/v2/reply?type=1&oid=<aid>&sort=2&pn=&ps=20` | - Network accessline 57
| 视频统计 | `GET https://api.bilibili.com/x/web-interface/view?bvid=<BV号>` | - Network accessline 58
| 评论 | `GET https://api.bilibili.com/x/v2/reply?type=1&oid=<aid>&sort=2&pn=&ps=20` |
adapters/perf-data/bilibili-stat/crawler.py
- Executable scriptline 1
Executable file - Network accessline 7
接口: - 视频数据:https://api.bilibili.com/x/web-interface/view?bvid=<BV号> - Network accessline 8
- 视频数据:https://api.bilibili.com/x/web-interface/view?bvid=<BV号> - Network accessline 9
- 评论: https://api.bilibili.com/x/v2/reply?type=1&oid=<aid>&sort=2 (sort=2 热度) - Network accessline 21
"(KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36" ) HEADERS = {"User-Agent": UA, "Referer": "https://www.bilibili.com"} - Network accessline 22
) HEADERS = {"User-Agent": UA, "Referer": "https://www.bilibili.com"} VIEW_API = "https://api.bilibili.com/x/web-interface/view" - Network accessline 23
HEADERS = {"User-Agent": UA, "Referer": "https://www.bilibili.com"} - Network accessline 24
VIEW_API = "https://api.bilibili.com/x/web-interface/view" - Network accessline 25
REPLY_API = "https://api.bilibili.com/x/v2/reply" - Network accessline 34
def _client() -> httpx.Client: return httpx.Client(headers=HEADERS, timeout=20, follow_redirects=True) - Network accessline 35
return httpx.Client(headers=HEADERS, timeout=20, follow_redirects=True) - Network accessline 87
break for c in reps: nc = _normalize_comment(c) - Network accessline 88
for c in reps: nc = _normalize_comment(c) if nc["cid"] in seen: - Network accessline 89
nc = _normalize_comment(c)
adapters/perf-data/bilibili-stat/paths.py
adapters/perf-data/bilibili-stat/renderer.py
- Executable scriptline 1
Executable file - Network accessline 44
lines.append(f"- 发布时间:{_fmt_time(video.get('pubdate', 0))}") lines.append(f"- 时长:{_fmt_duration(video.get('duration_s', 0))}") lines.append(f"- 链接:https://www.bilibili.com/video/{bvid}") - Network accessline 45
lines.append(f"- 时长:{_fmt_duration(video.get('duration_s', 0))}") lines.append(f"- 链接:https://www.bilibili.com/video/{bvid}") lines.append(f"- 抓取时间:{dt.datetime.now().strftime('%Y-%m-%d %H:%M')}") - Network accessline 46
lines.append(f"- 链接:https://www.bilibili.com/video/{bvid}")
adapters/perf-data/bilibili-stat/review.py
- Executable scriptline 1
Executable file
adapters/perf-data/bilibili-stat/run.sh
- Executable scriptline 1
#!/usr/bin/env bash
adapters/perf-data/douyin-session/README.md
- Network accessline 66
抖音视频 URL 形态: - `https://www.douyin.com/video/7234567890123456789` → `aweme_id = 7234567890123456789`(直接在 URL 路径里) - Network accessline 67
- `https://www.douyin.com/video/7234567890123456789` → `aweme_id = 7234567890123456789`(直接在 URL 路径里) - Network accessline 68
- `https://v.douyin.com/abc123` → 短链需要 resolve(cheat-publish 自动做)
adapters/perf-data/douyin-session/crawler.py
- Executable scriptline 1
Executable file - Network accessline 16
CREATOR_HOME = "https://creator.douyin.com/creator-micro/home" - Network accessline 17
CREATOR_CONTENT = "https://creator.douyin.com/creator-micro/content/manage" - Network accessline 54
for i in range(timeout_s): try: cookies = await sess.ctx.cookies("https://creator.douyin.com") - Network accessline 55
try: cookies = await sess.ctx.cookies("https://creator.douyin.com") has_session = any(c["name"] in ("sessionid", "sessionid_ss") for c in cookies) - Network accessline 56
cookies = await sess.ctx.cookies("https://creator.douyin.com") - Network accessline 186
page.on("response", on_response) try: url = f"https://creator.douyin.com/creator-micro/data/following/media?item_id={aweme_id}" - Network accessline 187
try: url = f"https://creator.douyin.com/creator-micro/data/following/media?item_id={aweme_id}" await page.goto(url, wait_until="domcontentloaded", timeout=60000) - Network accessline 188
url = f"https://creator.douyin.com/creator-micro/data/following/media?item_id={aweme_id}" - Network accessline 227
urls_to_try = [ f"https://creator.douyin.com/creator-micro/content/comment-manage?item_id={aweme_id}", - Network accessline 228
f"https://creator.douyin.com/creator-micro/content/comment-manage?item_id={aweme_id}", - Network accessline 229
f"https://creator.douyin.com/creator-micro/content/comment-manage", - Network accessline 308
page.on("response", on_response) try: url = f"https://www.douyin.com/video/{aweme_id}" - Network accessline 309
try: url = f"https://www.douyin.com/video/{aweme_id}" try: - Network accessline 310
url = f"https://www.douyin.com/video/{aweme_id}"
adapters/perf-data/douyin-session/paths.py
adapters/perf-data/douyin-session/renderer.py
- Executable scriptline 1
Executable file - Network accessline 42
lines.append(f"- 发布时间:{_fmt_time(video.get('create_time', 0))}") lines.append(f"- 时长:{_fmt_duration(video.get('duration_ms', 0))}") lines.append(f"- 链接:https://www.douyin.com/video/{aweme_id}") - Network accessline 43
lines.append(f"- 时长:{_fmt_duration(video.get('duration_ms', 0))}") lines.append(f"- 链接:https://www.douyin.com/video/{aweme_id}") lines.append(f"- 抓取时间:{dt.datetime.now().strftime('%Y-%m-%d %H:%M')}") - Network accessline 44
lines.append(f"- 链接:https://www.douyin.com/video/{aweme_id}")
adapters/perf-data/douyin-session/review.py
- Executable scriptline 1
Executable file
adapters/perf-data/douyin-session/run.sh
adapters/perf-data/linkedin-session/README.md
adapters/perf-data/linkedin-session/crawler.py
- Executable scriptline 1
Executable file - Network accessline 19
FEED = "https://www.linkedin.com/feed/" - Network accessline 20
POST_SUMMARY = "https://www.linkedin.com/analytics/post-summary/urn:li:activity:{activity_id}/" - Network accessline 28
支持: - 裸 id:`7470493738918920193` - 帖子链接:`https://www.linkedin.com/feed/update/urn:li:activity:7470493738918920193/` - Network accessline 29
- 裸 id:`7470493738918920193 - 帖子链接:`https://www.linkedin.com/feed/update/urn:li:activity:7470493738918920193/ - Network accessline 30
- 帖子链接:`https://www.linkedin.com/feed/update/urn:li:activity:7470493738918920193/` - Network accessline 31
- 分析链接:`https://www.linkedin.com/analytics/post-summary/urn:li:activity:7470493738918920193/` - Network accessline 70
async def _logged_in(ctx: BrowserContext) -> bool: cookies = await ctx.cookies("https://www.linkedin.com") - Network accessline 71
cookies = await ctx.cookies("https://www.linkedin.com")
adapters/perf-data/linkedin-session/extract.py
- Executable scriptline 1
Executable file
adapters/perf-data/linkedin-session/paths.py
adapters/perf-data/linkedin-session/renderer.py
- Executable scriptline 1
Executable file - Network accessline 40
if meta.get("age"): lines.append(f"- 发布距今:{meta['age']}") lines.append(f"- 链接:https://www.linkedin.com/feed/update/urn:li:activity:{activity_id}/") - Network accessline 41
lines.append(f"- 发布距今:{meta['age']}") lines.append(f"- 链接:https://www.linkedin.com/feed/update/urn:li:activity:{activity_id}/") lines.append(f"- 抓取时间:{dt.datetime.now().strftime('%Y-%m-%d %H:%M')}") - Network accessline 42
lines.append(f"- 链接:https://www.linkedin.com/feed/update/urn:li:activity:{activity_id}/")
adapters/perf-data/linkedin-session/review.py
- Executable scriptline 1
Executable file
adapters/perf-data/linkedin-session/run.sh
- Executable scriptline 1
#!/usr/bin/env bash - Network accessline 10
# Example: # bash run.sh 7470493738918920193 ~/my-channel/videos/2026-05-04_7470493738918920193_post # bash run.sh https://www.linkedin.com/feed/update/urn:li:activity:7470493738918920193/ <folder> - Network accessline 11
# bash run.sh 7470493738918920193 ~/my-channel/videos/2026-05-04_7470493738918920193_post # bash run.sh https://www.linkedin.com/feed/update/urn:li:activity:7470493738918920193/ <folder> # - Network accessline 12
# bash run.sh https://www.linkedin.com/feed/update/urn:li:activity:7470493738918920193/ <folder>
adapters/perf-data/linkedin-session/test_extract.py
- Executable scriptline 1
Executable file
adapters/perf-data/wechat-channels/crawler.py
- Executable scriptline 1
Executable file - Network accessline 19
PLATFORM_HOME = "https://channels.weixin.qq.com/platform/" - Network accessline 20
CONTENT_URLS = ( "https://channels.weixin.qq.com/platform/post/list", "https://channels.weixin.qq.com/platform/content", - Network accessline 21
"https://channels.weixin.qq.com/platform/post/list", - Network accessline 22
"https://channels.weixin.qq.com/platform/content",
adapters/perf-data/wechat-channels/paths.py
adapters/perf-data/wechat-channels/renderer.py
- Executable scriptline 1
Executable file
adapters/perf-data/wechat-channels/review.py
adapters/perf-data/wechat-channels/run.sh
adapters/perf-data/wechat-channels/test_adapter.py
- Executable scriptline 1
Executable file - Network accessline 20
"title": "自己的作品", "view_count": 10, "raw": {"signed_url": "https://media.example/video?signature=secret"}, - Network accessline 21
"view_count": 10, "raw": {"signed_url": "https://media.example/video?signature=secret"}, } - Network accessline 22
"raw": {"signed_url": "https://media.example/video?signature=secret"},
adapters/perf-data/wechat-channels/test_run_contract.sh
adapters/perf-data/xhs-explore/README.md
- Network accessline 5
> **来源**:照搬 `douyin-session` adapter 的架构(Playwright 持久化登录态 + 被动拦截 XHR), > 接口路径与字段参考 NanmiCoder/MediaCrawler 与 ReaJason/xhs。已在真实创作者账号端到端验证(2026-05)。 > 2026-06 融合 [xhs-analytics](https://github.com/SingularGuyLeBorn/xhs-analytics) 的公开页解析能力: - Network accessline 6
> 接口路径与字段参考 NanmiCoder/MediaCrawler 与 ReaJason/xhs。已在真实创作者账号端到端验证(2026-05)。 > 2026-06 融合 [xhs-analytics](https://github.com/SingularGuyLeBorn/xhs-analytics) 的公开页解析能力: > 无登录抓取正文 / 图片 / 标签 / top 评论兜底,以及批量归档与账号汇总命令。 - Network accessline 7
> 2026-06 融合 [xhs-analytics](https://github.com/SingularGuyLeBorn/xhs-analytics) 的公开页解析能力: - Network accessline 90
[Credential-related source omitted] - Network accessline 91
[Credential-related source omitted] - Network accessline 92
- `https://xhslink.com/xxxxx` → 短链,cheat-publish 会 resolve
adapters/perf-data/xhs-explore/crawler.py
- Executable scriptline 1
Executable file - Network accessline 31
CREATOR_HOME = "https://creator.xiaohongshu.com/new/home" - Network accessline 32
CREATOR_NOTE_MANAGER = "https://creator.xiaohongshu.com/new/note-manager" - Network accessline 108
async def _creator_logged_in(ctx: BrowserContext) -> bool: names = await _cookie_map(ctx, "https://creator.xiaohongshu.com") - Network accessline 109
names = await _cookie_map(ctx, "https://creator.xiaohongshu.com") - Network accessline 113
async def _has_web_session(ctx: BrowserContext) -> bool: for host in ("https://www.xiaohongshu.com", "https://creator.xiaohongshu.com"): - Network accessline 114
for host in ("https://www.xiaohongshu.com", "https://creator.xiaohongshu.com"): - Network accessline 122
try: await page.goto("https://www.xiaohongshu.com/explore", - Network accessline 123
await page.goto("https://www.xiaohongshu.com/explore", - Network accessline 348
[Credential-related source omitted] - Network accessline 349
[Credential-related source omitted] - Network accessline 350
[Credential-related source omitted] - Network accessline 357
"Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8", } r = requests.get(url, headers=headers, timeout=20) - Network accessline 358
} r = requests.get(url, headers=headers, timeout=20) r.raise_for_status() - Network accessline 359
r = requests.get(url, headers=headers, timeout=20) - Network accessline 412
[Credential-related source omitted] - Network accessline 413
[Credential-related source omitted] - Network accessline 414
[Credential-related source omitted] - Network accessline 421
"Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8", } r = requests.get(url, headers=headers, timeout=20) - Network accessline 422
} r = requests.get(url, headers=headers, timeout=20) r.raise_for_status() - Network accessline 423
r = requests.get(url, headers=headers, timeout=20) - Network accessline 461
"User-Agent": DEFAULT_USER_AGENT, "Accept": "image/webp,image/apng,image/*,*/*;q=0.8", "Referer": "https://www.xiaohongshu.com/", - Network accessline 462
"Accept": "image/webp,image/apng,image/*,*/*;q=0.8", "Referer": "https://www.xiaohongshu.com/", } - Network accessline 463
"Referer": "https://www.xiaohongshu.com/", } r = requests.get(url, headers=headers, timeout=timeout, stream=True) - Network accessline 464
} r = requests.get(url, headers=headers, timeout=timeout, stream=True) r.raise_for_status() - Network accessline 465
r = requests.get(url, headers=headers, timeout=timeout, stream=True) - Network accessline 536
page.on("response", on_response) try: url = note_url or f"https://www.xiaohongshu.com/explore/{note_id}" - Network accessline 537
try: url = note_url or f"https://www.xiaohongshu.com/explore/{note_id}" try: - Network accessline 538
url = note_url or f"https://www.xiaohongshu.com/explore/{note_id}" - Network accessline 694
front_url = note_url if not front_url and note.get("xsec_token"): front_url = (f"https://www.xiaohongshu.com/explore/{note_id}" - Network accessline 695
[Credential-related source omitted] - Network accessline 696
front_url = (f"https://www.xiaohongshu.com/explore/{note_id}"
adapters/perf-data/xhs-explore/paths.py
adapters/perf-data/xhs-explore/renderer.py
- Executable scriptline 1
Executable file - Network accessline 57
lines.append(f"- 笔记 ID:`{note_id}`") lines.append(f"- 发布时间:{note.get('post_time_str') or _fmt_time(note.get('create_time', 0))}") lines.append(f"- 链接:https://www.xiaohongshu.com/explore/{note_id}") - Network accessline 58
lines.append(f"- 发布时间:{note.get('post_time_str') or _fmt_time(note.get('create_time', 0))}") lines.append(f"- 链接:https://www.xiaohongshu.com/explore/{note_id}") lines.append(f"- 抓取时间:{dt.datetime.now().strftime('%Y-%m-%d %H:%M')}") - Network accessline 59
lines.append(f"- 链接:https://www.xiaohongshu.com/explore/{note_id}")
adapters/perf-data/xhs-explore/review.py
adapters/perf-data/xhs-explore/run.sh
- Executable scriptline 1
#!/usr/bin/env bash
adapters/script-extraction/whisper/README.md
- Network accessline 33
cd ~/.whisper-cpp/models # medium 模型 (~1.5GB) curl -L -O https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-medium.bin - Network accessline 35
curl -L -O https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-medium.bin - Network accessline 122
- **抖音**:第三方下载器 / 抖音 PC 版 → 复制视频链接 → 粘进下载器 - **B站**:[BBDown](https://github.com/nilaoda/BBDown) / [you-get](https://github.com/soimort/you-get) - Network accessline 123
- **B站**:[BBDown](https://github.com/nilaoda/BBDown) / [you-get](https://github.com/soimort/you-get) - Network accessline 124
- **YouTube**:[yt-dlp](https://github.com/yt-dlp/yt-dlp)(最强大) - Network accessline 125
- **小红书**:[xhs-downloader](https://github.com/JoeanAmier/XHS-Downloader)
adapters/script-extraction/whisper/run.sh
adapters/trend-sources/aihot.md
- Network accessline 9
[aihot.virxact.com](https://aihot.virxact.com) 的 Claude skill 适配。直接 curl 公开 REST API 拿中文 AI 行业每日精选 + 历史归档。 - Network accessline 18
UA='Mozilla/5.0 ... Chrome/124' curl -fsSL -A "$UA" https://aihot.virxact.com/aihot-skill/install.sh | bash - Dangerous shell operationline 19
curl -fsSL -A "$UA" https://aihot.virxact.com/aihot-skill/install.sh | bash - Network accessline 19
curl -fsSL -A "$UA" https://aihot.virxact.com/aihot-skill/install.sh | bash
adapters/trend-sources/trendradar-mcp.md
- Network accessline 9
[TrendRadar](https://github.com/sansan0/TrendRadar) 是 57k stars 的中文热点聚合监控(用 newsnow API 拉微博 / 知乎 / 抖音 / B 站 / 头条 等多平台)。它自带独立的 MCP server `trendradar-mcp`,暴露 25+ 个 tool。 - Network accessline 19
参考 TrendRadar 仓库的 [MCP 配置文档](https://github.com/sansan0/TrendRadar)。装好后用户的 Claude Code `.claude/settings.json` 含 `mcp__trendradar__*` 系列工具。 - Network accessline 66
欢迎 cross-link:[github.com/XBuilderLAB/cheat-on-content](https://github.com/XBuilderLAB/cheat-on-content)。
adapters/trend-sources/weibo-hot.md
- Network accessline 18
- 公开端点,**无需 cookie** - 端点:`https://s.weibo.com/top/summary?cate=realtimehot`(HTML 页面) - Network accessline 19
- 端点:`https://s.weibo.com/top/summary?cate=realtimehot`(HTML 页面) - Network accessline 20
- 备选:`https://weibo.com/ajax/side/hotSearch`(JSON,部分时段返回 401,不稳定) - Network accessline 25
fetch(limit: int = 50) -> List[Candidate] - Network accessline 34
- `snapshot_text`:热搜词 + (如有)官方标签 + 简短摘要(自动从热搜详情页抓 1-2 句) - `snapshot_at`:抓取时间 ISO 8601 - `url`:`https://s.weibo.com/weibo?q=<encoded_keyword>` - Network accessline 35
- `snapshot_at`:抓取时间 ISO 8601 - `url`:`https://s.weibo.com/weibo?q=<encoded_keyword>` - 其他字段:null(抓取阶段不打分;由调用方 cheat-score 处理) - Network accessline 36
- `url`:`https://s.weibo.com/weibo?q=<encoded_keyword>` - Network accessline 57
在 batch 3 写专用 adapter 实现前,`/cheat-seed` 在调用本 source 时直接由 Claude 通过 `WebFetch` 工具抓 `https://s.weibo.com/top/summary?cate=realtimehot`,从 HTML 中提取 top 50 热搜标题。具体由 cheat-seed 的 Phase 2a 处理: - Network accessline 60
WebFetch("https://s.weibo.com/top/summary?cate=realtimehot",
adapters/trend-sources/zhihu-hot.md
- Network accessline 18
- 公开端点,**无需登录** - 端点:`https://www.zhihu.com/api/v3/feed/topstory/hot-lists/total?limit=50&desktop=true`(JSON) - Network accessline 19
- 端点:`https://www.zhihu.com/api/v3/feed/topstory/hot-lists/total?limit=50&desktop=true`(JSON) - Network accessline 20
- 备选:`https://www.zhihu.com/billboard`(HTML,可作为兜底) - Network accessline 25
fetch(limit: int = 50) -> List[Candidate] - Network accessline 34
- `snapshot_text`:问题标题 + 高赞答案前 200 字摘要(可选——抓不到就只用标题) - `snapshot_at`:抓取时间 ISO 8601 - `url`:知乎问题 URL(如 `https://www.zhihu.com/question/<id>`) - Network accessline 35
- `snapshot_at`:抓取时间 ISO 8601 - `url`:知乎问题 URL(如 `https://www.zhihu.com/question/<id>`) - 其他字段:null - Network accessline 36
- `url`:知乎问题 URL(如 `https://www.zhihu.com/question/<id>`) - Network accessline 60
WebFetch("https://www.zhihu.com/api/v3/feed/topstory/hot-lists/total?limit=50&desktop=true",
docs/README_CN.md
- Network accessline 13
<p align="center"> <a href="https://watcha.cn/products/cheat-on-content"> - Network accessline 14
<a href="https://watcha.cn/products/cheat-on-content"> - Network accessline 19
<p align="center"> <a href="../CHANGELOG.md"><img src="https://img.shields.io/badge/version-v0.1.0-orange" alt="Version"></a> - Network accessline 20
<a href="../CHANGELOG.md"><img src="https://img.shields.io/badge/version-v0.1.0-orange" alt="Version"></a> - Network accessline 21
<a href="../LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="License"></a> </p> - Network accessline 22
<a href="../LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="License"></a> - Network accessline 116
git clone https://github.com/XBuilderLAB/cheat-on-content.git - Network accessline 149
启动预测 scripts/<...>.md → 盲预测 + 决策日志 拍了 scripts/<...>.md → 建 video folder + buffer +1 已发布 https://... → buffer -1 - Network accessline 150
拍了 scripts/<...>.md → 建 video folder + buffer +1 已发布 https://... → buffer -1 复盘 videos/<...>/ → T+3d 数据回收 + 复盘 - Network accessline 151
已发布 https://... → buffer -1 - Network accessline 164
<a href="https://star-history.com/#XBuilderLAB/cheat-on-content&Date">
docs/guancha-no1.svg
- Network accessline 1
<?xml version='1.0' encoding='utf-8'?> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 228 55" width="228" height="55" role="img" aria-label="Watcha Hot List · 观猹热榜 · #1 Trending · 热榜第一"> - Network accessline 2
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 228 55" width="228" height="55" role="img" aria-label="Watcha Hot List · 观猹热榜 · #1 Trending · 热榜第一">
docs/logo.svg
- Network accessline 1
<svg xmlns="http://www.w3.org/2000/svg" width="745" height="285" viewBox="0 0 745 285" role="img" aria-label="$ fatesnail — cheat on content">
docs/star-history.svg
- Network accessline 1
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 520" width="800" height="520" role="img" aria-label="Star History - XBuilderLAB/cheat-on-content">
hooks/log-event.sh
- Executable scriptline 1
#!/usr/bin/env bash
hooks/prediction-immutability.sh
hooks/session-start.sh
- Executable scriptline 1
#!/usr/bin/env bash
install.sh
shared-references/cadence-protocol.md
- Network accessline 137
🔵 SessionStart 报告"积压" → user 决定 ├─ 发 → "已发布 https://..." → cheat-publish → buffer -1 - Network accessline 137
🔵 SessionStart 报告"积压" → user 决定 ├─ 发 → "已发布 https://..." → cheat-publish → buffer -1 - Network accessline 137
🔵 SessionStart 报告"积压" → user 决定 ├─ 发 → "已发布 https://..." → cheat-publish → buffer -1 - Network accessline 137
🔵 SessionStart 报告"积压" → user 决定 ├─ 发 → "已发布 https://..." → cheat-publish → buffer -1 - Network accessline 137
🔵 SessionStart 报告"积压" → user 决定 ├─ 发 → "已发布 https://..." → cheat-publish → buffer -1 - Network accessline 138
├─ 发 → "已发布 https://..." → cheat-publish → buffer -1 - Network accessline 138
├─ 发 → "已发布 https://..." → cheat-publish → buffer -1 - Network accessline 138
├─ 发 → "已发布 https://..." → cheat-publish → buffer -1 - Network accessline 138
├─ 发 → "已发布 https://..." → cheat-publish → buffer -1 - Network accessline 138
├─ 发 → "已发布 https://..." → cheat-publish → buffer -1
shared-references/candidate-schema.md
- Network accessline 72
"snapshot_text": "[文章全文 + 评论 top 5 的摘要]", "snapshot_at": "2026-05-04T09:15:00+08:00", "url": "https://news.ycombinator.com/item?id=12345678", - Network accessline 72
"snapshot_text": "[文章全文 + 评论 top 5 的摘要]", "snapshot_at": "2026-05-04T09:15:00+08:00", "url": "https://news.ycombinator.com/item?id=12345678", - Network accessline 72
"snapshot_text": "[文章全文 + 评论 top 5 的摘要]", "snapshot_at": "2026-05-04T09:15:00+08:00", "url": "https://news.ycombinator.com/item?id=12345678", - Network accessline 72
"snapshot_text": "[文章全文 + 评论 top 5 的摘要]", "snapshot_at": "2026-05-04T09:15:00+08:00", "url": "https://news.ycombinator.com/item?id=12345678", - Network accessline 73
"snapshot_at": "2026-05-04T09:15:00+08:00", "url": "https://news.ycombinator.com/item?id=12345678", "tier": null, - Network accessline 73
"snapshot_at": "2026-05-04T09:15:00+08:00", "url": "https://news.ycombinator.com/item?id=12345678", "tier": null, - Network accessline 73
"snapshot_at": "2026-05-04T09:15:00+08:00", "url": "https://news.ycombinator.com/item?id=12345678", "tier": null, - Network accessline 73
"snapshot_at": "2026-05-04T09:15:00+08:00", "url": "https://news.ycombinator.com/item?id=12345678", "tier": null, - Network accessline 74
"url": "https://news.ycombinator.com/item?id=12345678", - Network accessline 74
"url": "https://news.ycombinator.com/item?id=12345678", - Network accessline 74
"url": "https://news.ycombinator.com/item?id=12345678", - Network accessline 74
"url": "https://news.ycombinator.com/item?id=12345678", - Network accessline 164
1. 实现 `fetch() → List[Candidate]` 接口(伪签名,实际是 markdown 文档描述的协议) - Network accessline 164
1. 实现 `fetch() → List[Candidate]` 接口(伪签名,实际是 markdown 文档描述的协议) - Network accessline 164
1. 实现 `fetch() → List[Candidate]` 接口(伪签名,实际是 markdown 文档描述的协议) - Network accessline 164
1. 实现 `fetch() → List[Candidate]` 接口(伪签名,实际是 markdown 文档描述的协议)
shared-references/migration-protocol.md
- Dangerous shell operationline 147
- 用户手动 `rm .cheat-state.json.backup-*` 永远 OK
skills/cheat-bump/SKILL.md
- Broad permissionsline 1
Bash(*), Read, Write, Edit, Glob, Grep, Skill, Task, mcp__llm-chat__chat
skills/cheat-init/SKILL.md
- Broad permissionsline 1
Bash(*), Read, Write, Edit, Glob, WebFetch, Skill - Dangerous shell operationline 281
`git rm -r --cached .auth .auth-xhs .auth-linkedin .auth-wechat-channels .cheat-secrets.json` 把已暂存的凭证移出 - Network accessline 471
🎯 准备发布前 → "启动预测 scripts/<...>.md" 🎬 拍完了 → "拍了 scripts/<...>.md" → 建 video folder + buffer +1 🚀 发布后 → "已发布 https://..." - Network accessline 472
🎬 拍完了 → "拍了 scripts/<...>.md" → 建 video folder + buffer +1 🚀 发布后 → "已发布 https://..." 📊 T+3 天 → "复盘 videos/<...>/" - Network accessline 473
🚀 发布后 → "已发布 https://..."
skills/cheat-learn-from/SKILL.md
- Broad permissionsline 1
Bash(*), Read, Write, Edit, Glob, WebFetch, Skill
skills/cheat-migrate/SKILL.md
- Broad permissionsline 1
Bash(*), Read, Write, Edit, Skill
skills/cheat-persona/SKILL.md
- Broad permissionsline 1
Bash(*), Read, Write, Edit, Glob, Grep
skills/cheat-predict/SKILL.md
skills/cheat-publish/SKILL.md
- Broad permissionsline 1
Bash(*), Read, Edit, Glob - Network accessline 15
[用户:已发布 https://...] - Network accessline 77
**Published at**: 2026-05-04T14:32:00+08:00 **Platform**: douyin **URL**: https://v.douyin.com/abc123 - Network accessline 78
**Platform**: douyin **URL**: https://v.douyin.com/abc123 **Video Folder**: videos/2026-05-04_a3f2c1d4_停止期待/ - Network accessline 79
**URL**: https://v.douyin.com/abc123 - Network accessline 133
- Published at: 2026-05-04 14:32 - Platform: douyin - URL: https://v.douyin.com/abc123 - Network accessline 135
- URL: https://v.douyin.com/abc123
skills/cheat-retro/SKILL.md
- Broad permissionsline 1
Bash(*), Read, Edit, Write, Glob, Grep, Skill - Network accessline 106
**douyin-session 的特殊处理**: - 视频 URL(如 `https://v.douyin.com/abc123`)→ 短链解析 → 提取 aweme_id - Network accessline 107
- 视频 URL(如 `https://v.douyin.com/abc123`)→ 短链解析 → 提取 aweme_id - Network accessline 112
[Credential-related source omitted] - Network accessline 113
[Credential-related source omitted] - Network accessline 118
**linkedin-session 的特殊处理**: - 帖子 URL(`https://www.linkedin.com/feed/update/urn:li:activity:<id>/`)或裸 activity_id → adapter 自动提取 activity_id - Network accessline 119
- 帖子 URL(`https://www.linkedin.com/feed/update/urn:li:activity:<id>/`)或裸 activity_id → adapter 自动提取 activity_id - Network accessline 130
**bilibili-stat 的特殊处理**: - 视频 URL(`https://www.bilibili.com/video/<BV号>` 或 b23.tv 短链)或直接给 BV 号 → adapter 自动提取 BV 号 - **无需登录**:B站视频数据(view)与评论(reply)都是公开接口、免 wbi 签名,adapter 是纯 httpx,没有 `crawler.py login` 步骤、不碰 `.auth/` - Network accessline 131
- 视频 URL(`https://www.bilibili.com/video/<BV号>` 或 b23.tv 短链)或直接给 BV 号 → adapter 自动提取 BV 号 - **无需登录**:B站视频数据(view)与评论(reply)都是公开接口、免 wbi 签名,adapter 是纯 httpx,没有 `crawler.py login` 步骤、不碰 `.auth/` - 依赖 httpx:首次用 `pip install -r <adapter>/requir
skills/cheat-seed/SKILL.md
- Broad permissionsline 1
Bash(*), Read, Write, Edit, Glob, WebFetch, Skill - Network accessline 369
1. 检查 `humanizer` skill 是否可用(`~/.claude/skills/humanizer/` 存在): - 不可用 → 跳过 4.5b,在 Phase 5 输出里加一行"(humanizer 未装,draft 是原始 AI 版——`git clone https://github.com/blader/humanizer` 到 ~/.claude/skills/ 可启用自动去 AI 味)" - Network accessline 370
- 不可用 → 跳过 4.5b,在 Phase 5 输出里加一行"(humanizer 未装,draft 是原始 AI 版——`git clone https://github.com/blader/humanizer` 到 ~/.claude/skills/ 可启用自动去 AI 味)" - Network accessline 429
- 下游:用户的 candidate → candidates.md(tier1,已 deep_read) - 下游:(默认)draft → Phase 4.5 humanizer 去 AI 味 → scripts/<id>.md → 用户改写 → /cheat-predict - 可选依赖:[`humanizer`](https://github.com/blader/humanizer) skill(MIT,外部项目)。装在 `~/.claude/skills/human - Network accessline 430
- 下游:(默认)draft → Phase 4.5 humanizer 去 AI 味 → scripts/<id>.md → 用户改写 → /cheat-predict - 可选依赖:[`humanizer`](https://github.com/blader/humanizer) skill(MIT,外部项目)。装在 `~/.claude/skills/humanizer/` 时 Phase 4.5 自动启用;未装则优雅跳过。**不打包进 cheat-on-conten - Network accessline 431
- 可选依赖:[`humanizer`](https://github.com/blader/humanizer) skill(MIT,外部项目)。装在 `~/.claude/skills/humanizer/` 时 Phase 4.5 自动启用;未装则优雅跳过。**不打包进 cheat-on-content**——用户自己 clone
skills/cheat-shoot/SKILL.md
- Broad permissionsline 1
Bash(*), Read, Write, Edit, Glob
skills/cheat-status/SKILL.md
- Broad permissionsline 1
Bash(*), Read, Glob, Grep
skills/cheat-trends/SKILL.md
- Broad permissionsline 1
Bash(*), Read, Write, Edit, Glob, WebFetch, Skill
templates/candidates.template.json
- Network accessline 42
"snapshot_text": "Built over a weekend. Uses a simple multidimensional rubric calibrated against creator's own historical data. Curious what the HN crowd thinks of the methodology.", "snapshot_at": "2026-05-04T09:15:00+08:00", " - Network accessline 43
"snapshot_at": "2026-05-04T09:15:00+08:00", "url": "https://news.ycombinator.com/item?id=12345678", "tier": null, - Network accessline 44
"url": "https://news.ycombinator.com/item?id=12345678",
templates/status.template.md
templates/workflow.template.md
tools/diff_pct.py
tools/diff_pct_test.sh
- Executable scriptline 1
#!/usr/bin/env bash - Executable scriptline 1
#!/usr/bin/env bash - Dangerous shell operationline 34
trap 'rm -rf "$TMP"' EXIT - Dangerous shell operationline 34
trap 'rm -rf "$TMP"' EXIT - Dangerous shell operationline 52
rm -f "$stderr_out" - Dangerous shell operationline 52
rm -f "$stderr_out"
tools/gen-star-history.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 95
font = open(FONT_CSS).read().replace(""", '"') XK = "font-family:'xkcd','Comic Sans MS',cursive" s = [f'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 {W} {H}" width="{W}" height="{H}" role="img" aria-label="Star History - Network accessline 96
XK = "font-family:'xkcd','Comic Sans MS',cursive" s = [f'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 {W} {H}" width="{W}" height="{H}" role="img" aria-label="Star History - {repo}">', f'<defs><style>{font}</style></def - Network accessline 97
s = [f'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 {W} {H}" width="{W}" height="{H}" role="img" aria-label="Star History - {repo}">',
tools/score-curve.py
- Executable scriptline 1
#!/usr/bin/env python3
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Declared and executed: 9 facts
- Allows Bash without restrictions, though it has no scripts or shell blockscheat-bump/SKILL.md:5High confidence
- Allows Bash without restrictions, though it has no scripts or shell blockscheat-init/SKILL.md:5High confidence
- Allows Bash without restrictions, though it has no scripts or shell blockscheat-persona/SKILL.md:5High confidence
- Allows Bash without restrictions, though it has no scripts or shell blockscheat-predict/SKILL.md:5High confidence
- Allows Bash without restrictions, though it has no scripts or shell blockscheat-publish/SKILL.md:5High confidence
- Allows Bash without restrictions, though it has no scripts or shell blockscheat-retro/SKILL.md:5High confidence
- Allows Bash without restrictions, though it has no scripts or shell blockscheat-status/SKILL.md:4High confidence
- Allows Bash without restrictions, though it has no scripts or shell blockscheat-trends/SKILL.md:5High confidence
- Contacts www.w3.org, which SKILL.md, the README and the plugin manifest do not mentiontools/gen-star-history.py:97High confidence
Signal confidence: 309 facts
- Network access in prose of documentationCHANGELOG.md:5Low confidence
- Network access in prose of documentationCHANGELOG.md:13Low confidence
- Network access in prose of documentationCHANGELOG.md:63Low confidence
- Network access in prose of documentationCHANGELOG.md:73Low confidence
- Network access in prose of documentationCHANGELOG.md:181Low confidence
- Network access in prose of documentationCHANGELOG.md:206Low confidence
- Network access in prose of documentationCHANGELOG.md:207Low confidence
- Network access in prose of documentationCHANGELOG.md:240Low confidence
- Network access in prose of documentationREADME.md:13Low confidence
- Network access in prose of documentationREADME.md:14Low confidence
- Network access in prose of documentationREADME.md:19Low confidence
- Network access in prose of documentationREADME.md:20Low confidence
- Network access in prose of documentationREADME.md:21Low confidence
- Network access in prose of documentationREADME.md:22Low confidence
- Network access in code of documentationREADME.md:116Low confidence
- Network access in code of documentationREADME.md:151Low confidence
- Network access in code of documentationREADME.md:152Low confidence
- Network access in code of documentationREADME.md:153Low confidence
- Network access in prose of documentationREADME.md:166Low confidence
- Broad permissions in the frontmatter of the SKILL.mdSKILL.md:1High confidence
- Network access in prose of documentationadapters/perf-data/bilibili-stat/README.md:33Low confidence
- Network access in prose of documentationadapters/perf-data/bilibili-stat/README.md:55Low confidence
- Network access in prose of documentationadapters/perf-data/bilibili-stat/README.md:56Low confidence
- Network access in prose of documentationadapters/perf-data/bilibili-stat/README.md:57Low confidence
- Network access in prose of documentationadapters/perf-data/bilibili-stat/README.md:58Low confidence
- Executable script in prose of a file that runsadapters/perf-data/bilibili-stat/crawler.py:1Low confidence
- Network access in prose of a file that runsadapters/perf-data/bilibili-stat/crawler.py:7Low confidence
- Network access in prose of a file that runsadapters/perf-data/bilibili-stat/crawler.py:8Low confidence
- Network access in prose of a file that runsadapters/perf-data/bilibili-stat/crawler.py:9Low confidence
- Network access in code of a file that runsadapters/perf-data/bilibili-stat/crawler.py:21High confidence
- Network access in code of a file that runsadapters/perf-data/bilibili-stat/crawler.py:22High confidence
- Network access in code of a file that runsadapters/perf-data/bilibili-stat/crawler.py:23High confidence
- Network access in code of a file that runsadapters/perf-data/bilibili-stat/crawler.py:24High confidence
- Network access in code of a file that runsadapters/perf-data/bilibili-stat/crawler.py:25High confidence
- Network access in code of a file that runsadapters/perf-data/bilibili-stat/crawler.py:34High confidence
- Network access in code of a file that runsadapters/perf-data/bilibili-stat/crawler.py:35High confidence
- Network access in code of a file that runsadapters/perf-data/bilibili-stat/crawler.py:87High confidence
- Network access in code of a file that runsadapters/perf-data/bilibili-stat/crawler.py:88High confidence
- Network access in code of a file that runsadapters/perf-data/bilibili-stat/crawler.py:89High confidence
- Executable script in code of a file that runsadapters/perf-data/bilibili-stat/paths.py:1High confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueadapters/perf-data/bilibili-stat/paths.py:12Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueadapters/perf-data/bilibili-stat/paths.py:30Low confidence
- Executable script in prose of a file that runsadapters/perf-data/bilibili-stat/renderer.py:1Low confidence
- Network access in code of a file that runsadapters/perf-data/bilibili-stat/renderer.py:44High confidence
- Network access in code of a file that runsadapters/perf-data/bilibili-stat/renderer.py:45High confidence
- Network access in code of a file that runsadapters/perf-data/bilibili-stat/renderer.py:46High confidence
- Executable script in prose of a file that runsadapters/perf-data/bilibili-stat/review.py:1Low confidence
- Executable script in code of a file that runsadapters/perf-data/bilibili-stat/run.sh:1High confidence
- Network access in prose of documentationadapters/perf-data/douyin-session/README.md:66Low confidence
- Network access in prose of documentationadapters/perf-data/douyin-session/README.md:67Low confidence
and 259 more
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Native | Frontmatter field argument-hint in SKILL.md | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.
Explore alternatives and comparisons
Add this badge to your README
It updates every night and links to this page.
[](https://hotskills.dev/skill/xbuilderlab-cheat-on-content/)