Content Forecast
Colinjqq/content-forecast
Helps video creators pick topics from their own experience, diagnose how a script may spread and compare its expected performance with their own baseline.
Writes an immutable blind prediction log for a finished content draft: a seven-dimension score, bucket, probability distribution and counterfactuals, scored blind by a sub-agent.
SKILL.md written in Chinese; this summary is our English description.
$ npx skills add XBuilderLAB/cheat-on-content --skill cheat-predict -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install XBuilderLAB/cheat-on-content cheat-predict --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/XBuilderLAB/cheat-on-content.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/cheat-predict .claude/skills/cheat-predict && rm -rf skills-srcUse ~/.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/
Install the "cheat-predict" agent skill from https://github.com/XBuilderLAB/cheat-on-content/tree/main/skills/cheat-predict into .claude/skills/cheat-predict/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cheat-predict", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/XBuilderLAB/cheat-on-content/tree/main/skills/cheat-predictType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add XBuilderLAB/cheat-on-content --skill cheat-predict -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install XBuilderLAB/cheat-on-content cheat-predict --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/XBuilderLAB/cheat-on-content.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/cheat-predict .agents/skills/cheat-predict && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "cheat-predict" agent skill from https://github.com/XBuilderLAB/cheat-on-content/tree/main/skills/cheat-predict into .agents/skills/cheat-predict/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cheat-predict", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add XBuilderLAB/cheat-on-content --skill cheat-predict -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install XBuilderLAB/cheat-on-content cheat-predict --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/XBuilderLAB/cheat-on-content.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/cheat-predict .cursor/skills/cheat-predict && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "cheat-predict" agent skill from https://github.com/XBuilderLAB/cheat-on-content/tree/main/skills/cheat-predict into .cursor/skills/cheat-predict/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cheat-predict", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/XBuilderLAB/cheat-on-content.git --path skills/cheat-predict--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add XBuilderLAB/cheat-on-content --skill cheat-predict -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install XBuilderLAB/cheat-on-content cheat-predict --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/XBuilderLAB/cheat-on-content.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/cheat-predict .gemini/skills/cheat-predict && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "cheat-predict" agent skill from https://github.com/XBuilderLAB/cheat-on-content/tree/main/skills/cheat-predict into .gemini/skills/cheat-predict/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cheat-predict", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install XBuilderLAB/cheat-on-content cheat-predictInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add XBuilderLAB/cheat-on-content --skill cheat-predict -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/XBuilderLAB/cheat-on-content.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/cheat-predict .github/skills/cheat-predict && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "cheat-predict" agent skill from https://github.com/XBuilderLAB/cheat-on-content/tree/main/skills/cheat-predict into .github/skills/cheat-predict/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cheat-predict", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add XBuilderLAB/cheat-on-content --skill cheat-predict -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install XBuilderLAB/cheat-on-content cheat-predict --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/XBuilderLAB/cheat-on-content.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/cheat-predict .opencode/skills/cheat-predict && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "cheat-predict" agent skill from https://github.com/XBuilderLAB/cheat-on-content/tree/main/skills/cheat-predict into .opencode/skills/cheat-predict/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cheat-predict", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
cheat-predictWrites an immutable blind prediction log for a finished content draft: a seven-dimension score, bucket, probability distribution and counterfactuals, scored blind by a sub-agent.
This is the core step of the cheat-on-content calibration loop. The prediction section cannot be edited once written, which a hook enforces, and a file that already has a prediction gets an appended second-version section instead of an overwrite. The agent itself reads the draft, scores seven dimensions, picks a bucket and writes a probability distribution and counterfactual scenarios. You then reply ok or point out the dimension that looks wrong. Scoring is delegated through the Task tool to an isolated cheat-score-blind sub-agent and reviewed before saving.
A strict blind protocol applies: if any later performance data has been seen, no prediction can be written, only a reconstructed record. Inputs are a script or video folder path, rubric_notes.md, .cheat-state.json and optional earlier predictions as anchors. Settings cover the scripts and predictions folders, strict blind checking by default, a disagreement threshold of 2 that sends differences between blind and main scores to you, and at least 2 anchors. The SKILL.md is written in Chinese.
12 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 2d8211e. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
Bash(*)ReadWriteEditGlobTaskFrom allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
python3From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Blind Prediction Log loads about 4k tokens when it runs. Until then it costs about 84 tokens; SKILL.md has 1,120 words of instructions outside code blocks.
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.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Bash(*), Read, Write, Edit, Glob, TaskAutomated 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.
The full file from XBuilderLAB/cheat-on-content at commit 2d8211e, republished under its MIT licence (© XBuilderLAB). 1,120 words, ~3,979 tokens.
.claude/skills/cheat-predict/SKILL.md (or your agent's skills folder).这个工具是"作弊器"——AI 帮你做判断。所以 cheat-predict 的核心是:
不是用户从 7 维分到概率分布全部自己写,那 Claude 只剩"格式化器"——失去工具的核心价值。
严格遵守 shared-references/blind-prediction-protocol.md——见过任何后续数据就不能写预测,只能记 reconstructed。 完整组件清单见 shared-references/prediction-anatomy.md。 Confidence 派生表见 shared-references/state-management.md。
[用户:启动预测 scripts/<id>.md]
↓
[Phase 0: blind check 自检] ← 触犯就拒绝
↓
[Phase 0.7: 模式判定 — v1 (新建) 还是 v2 (append)]
↓
[Phase 1: 读 script + rubric + state + 派生 confidence]
↓
[Phase 2: **委派 cheat-score-blind sub-agent**(Task tool)拿 9 维盲打 + per-dim confidence]
↓
[Phase 2.5: 主 Claude 对 blind 输出做 review — 若任意维度 |delta| ≥ 2 vs 主估,弹给用户裁定]
↓
[Phase 3: **Claude 自己**找锚点对比]
↓
[Phase 4: **Claude 自己**给 bucket + 概率分布 + 中枢] ← confidence 低时分布更平
↓
[Phase 5: **Claude 自己**写反事实场景 + 关键校准假设]
↓
[Phase 5.5: **用户 review**——展示完整草拟版,等用户 "ok" 或挑刺]
↓
├─ "ok" → Phase 6 落盘
└─ "X 维度应该 Y 不是 Z" → Claude 改 → 再 review → 循环
↓
[Phase 6: 落盘 — v1 写新文件 / v2 append 到现有文件 ## 复盘 之前]
↓
[Phase 7: 更新 state.in_progress_session]--skip-blind flag,标 last_prediction_self_scored: true 给 cheat-status 警告💡 调用时覆盖:
/cheat-predict scripts/<id>.md — BLIND_CHECK: lenient/--skip-blind(都不推荐)
| 必填 | 来源 |
|---|---|
<video-folder-path> 或 <script-path> | 用户参数;缺失则询问 |
rubric_notes.md | 用户项目根 |
.cheat-state.json | 状态文件 |
predictions/*.md(可选) | 历史预测,作为锚点 |
用户给的路径应该是 scripts/<date>_<id>_<short>.md。如不在 scripts/ 下:
| 形态 | 处理 |
|---|---|
scripts/<date>_<id>_<short>.md | 标准路径,直接用 |
<id> 或 <short> 简写 | glob scripts/*_<id>_*.md 或 scripts/*<short>*.md 找匹配 |
任意外部 .md 文件(如 ~/Desktop/my-draft.md) | 警告 + 询问:"建议把稿子放到 scripts/<date><id><short>.md 让 cheat-on-content 管理。要我帮你 cp 过去并算 id 吗?"用户同意 → 建标准路径再继续 |
videos/<id>/ 路径(user 误以为视频文件夹存稿子) | 提示"video folder 是拍后才建的——pre-shoot 草稿在 scripts/。你要 predict 哪份稿子?" |
如 scripts/<id>.md 不存在 → 报错并询问"你想 predict 的稿子在哪?"
按 blind-prediction-protocol.md 的"子 skill 必须做的检查清单"执行:
询问用户该作品当前发布状态:
RETRO_WINDOW_DAYS 天 → 询问"你看过任何后续数据吗(播放/点赞/评论)?"published_before_prediction: true + blind_status: confirmed_no_data_seenRETRO_WINDOW_DAYS 天 → 立即拒绝写"预测",建议改用 _redo.md 路径记 reconstructed retrospective自检对话历史里是否含播放/阅读/点赞/评论/转发等字眼的实际数字 → 命中则视为已见数据,按上面 strict 模式处理
BLIND_CHECK=lenient 模式:仅警告 + 强制在文件头标注 **Reconstructed retrospective — NOT a blind prediction**,但仍允许继续
通过 → 进入 Phase 0.7。
判定本次是新建预测(v1)还是对既有预测的 v2 追加(拍后改稿场景)。
显式参数优先:用户/调用方传 — mode: v2 + — prediction-file: <path> → 直接 v2 模式。
自动检测(无显式参数):
predictions/<同 scripts/<id> 命名>.md## 复盘(无任何 ## 预测... 段)→ v1 模式(异常状态,覆盖警告 + 进 Phase 1)## 预测 或 ## 预测 v1 段 → v2 模式v2 模式额外动作:
## 预测 段引用的原 Script Hashprediction_basis = "post_shoot_pre_publish"(v1 默认 pre_shoot)scripts/<id>.md 全文script_hash = sha256(script 内容)[:12] → header 用rubric_notes.md,识别当前公式 + 维度(同 cheat-score Phase 2).cheat-state.json 拿 rubric_version、content_form、calibration_samples、typical_duration_seconds、baseline_playscalibration_samples 派生 confidence 等级(按 state-management.md confidence 表)→ 后续写入 prediction headertypical_duration_seconds 派生范围严重不符(差 >50%)→ 提示用户:"这条稿子 N 字,按你设的典型时长(X 分钟)应该是 M-K 字。是临时改了时长,还是稿子需要砍/补?"BLIND_SCORING=on(默认)—— 主 Claude 不再 inline 打分。通过 Task tool spawn cheat-score-blind,让一个 context-isolated 的 sub-agent 只看 script + rubric_notes.md 给出 N 维分。
详见 cheat-score-blind/SKILL.md 的"主 Claude 调用契约"段。Task prompt 必须精简:
Spawn cheat-score-blind sub-agent.
Input:
script_path: <Phase 0.5 解析出的 scripts/<id>.md>
rubric_notes_path: rubric_notes.md
Task: 按 rubric_notes 当前公式给上面 script 打分。返回严格 JSON(见 cheat-score-blind SKILL.md Phase 2 schema)。
不要读 state file / predictions/ / videos/ 任何其他文件。
不要询问用户 —— 你没有用户。调用前自检:把 Task prompt 串过 grep -Ei '播放|阅读|点赞|评论数|实际|retro|复盘|实绩|w$|万$'——命中 → 改 prompt 重发。
主 Claude 自己也内心估一份(不发 sub-agent)——纯为 Phase 2.5 disagreement 检测,不落盘、不替代 sub-agent 输出。这个估值代表"如果我没用 sub-agent,我会打多少",是 contamination 的客观指标。
沙盒 escape:BLIND_SCORING=off 或 --skip-blind —— 主 Claude 自己打 7 维。state 立刻标 last_prediction_self_scored: true + last_self_scored_at: <ISO>,cheat-status 持续提示警告。仅用于:
按当前公式算 composite——用 sub-agent 回传的 dim 分,不用主 Claude 自估。
拿到 sub-agent JSON 后,主 Claude 必做的事:
python3 -c "import json; json.loads(...)" 应能解析;不能解析 → 主 Claude 重发 Task(最多 3 次重试),仍败 → abort,向用户报告self_check.any_contamination_signal == true → 警告用户"sub-agent 自报疑似 contamination",但仍接受打分(confidence 降一档)refusal != null → 按 cheat-score-blind/SKILL.md Phase 2 的处理表对应路径delta = |主估 - blind|delta >= DISAGREEMENT_THRESHOLD(默认 2) → 弹给用户裁定弹裁定 UX:
⚠️ blind sub-agent 跟主 Claude 在某些维度差异较大:
| 维度 | blind (sub) | 主 Claude 自估 | delta | sub-agent 理由 |
|---|---|---|---|---|
| ER | 5 | 3 | 2 | "PPT加油猫猫开头—具象画面强" |
| AB | 2 | 4 | 2 | "一人公司视角,受众窄" |
谁更准?
a) 信 sub-agent(隔离打分,但同 Claude 模型)
b) 信主 Claude 自估(有更多对话上下文,可能是 contamination)
c) 我自己定(你直接给分)
回 a / b / c <你的分数>用户选:
last_prediction_self_scored: trueUser Override所有 delta —— 即使全 < THRESHOLD —— 都记录到 prediction header 的 BlindScore Disagreement 字段(详见 prediction-anatomy.md 组件 1)。delta=0 也要记录。
所有阶段都跑此 phase——锚点不够时显式标 N/A,不删段。
predictions/*.md,读每个文件 header(提取 composite、实绩 bucket、duration_seconds)。注意排除 reconstructed predictions(标记 "Reconstructed" 的不算锚点)Target Duration (s) 与本次差 ±20% 内)为什么按时长筛锚点:4 分钟视频 5w 播放 vs 1 分钟视频 5w 播放完全不是一回事——长视频每秒扛了更多注意力损失。跨时长锚点容易得出虚假结论。
所有阶段都写——confidence 低时分布更平,不是省略。
starter-rubrics/<content_form>.md 读默认 bucket 边界(除非用户在 rubric_notes.md 自定义了)反诚实陷阱:如果你给一个 bucket 95% 概率,下次预测错了你没法说"我其实不太确定"。真实的概率分布通常在 headline bucket 是 40-65%,剩下 ≥35% 散布在邻近 buckets。
所有阶段都写——校准池小时关键校准假设可能没有合适对照样本,那就写"无可对照样本——仍写下我对这次的核心赌注"+ 1-2 条这次想测的事。
反事实场景(4 段,每段对应一个可能的 bucket,写"如果落在这里,意味着什么 rubric 假设被验证 / 推翻"):参考 prediction-anatomy.md 组件 6。
关键校准假设(强烈推荐):
如 REQUIRE_HYPOTHESIS=required → 缺失则不允许落盘。
Phase 2-5 全部在内存里做完后,一次性展示完整草拟版给用户:
我的预测草稿(写文件前 review):
📊 7 维分(v0 / v2 / 等当前 rubric):
| 维度 | 分 | 理由 |
|---|---|---|
| ER | 5 | "PPT 加油猫猫 + 老板看到 + 大脑空白"——情感重 |
| HP | 5 | 开头"PPT 第七页大屏中央 一只加油猫猫"具体反差强 |
| QL | 5 | "加油猫猫救了我一命"双金句 |
| NA | 4 | 单一时间线 + 反思,清晰但不复杂 |
| AB | 4 | 一人公司题但 AI 焦虑普适 |
| SR | 3 | AI 焦虑是议题但不是热点对峙 |
| SAT | 2 | 共情调性,几乎无讽刺 |
→ composite ≈ 8.00
🎯 押 bucket:30-100w,中枢 ~60w
概率分布: <5w 5% / 5-30w 22% / **30-100w 50%** / 100-150w 18% / >150w 5%
confidence: 🟢 中(基于 8 个校准样本,中枢 ±25%)
🔍 锚点对比:
| 对照 | composite | 实绩 | 异同 |
|---|---|---|---|
| ... | ... | ... | ... |
🤔 反事实:
如果 >100w → 验证 ER 主导假设强化
如果 30-100w → 基准线 ok
如果 <30w → 推翻 "AI 焦虑普适",AB 偏乐观
🎲 关键校准假设:本篇 vs [对照] 押 1.5x
——————————————————————————————
回 "ok" 我直接落盘,
或指出哪些维度 / 判断不对(如 "AB 给 3,太乐观" / "中枢应该 30w 不是 60w")。用户三种回应:
Scored By: claude用户挑刺的字段记录到 prediction header 的 User Override 段(Phase 6 写入):
复盘时这个字段帮诊断:
用户挑刺的纪律:
文件名约定(blind-prediction-protocol.md 的"文件名约定"段):
predictions/YYYY-MM-DD_<id>_<short-title>.mdYYYY-MM-DD:今天日期(预测写下的日期)<id>:12 位 hash,对稿子全文做 sha256 取前 12 位(稳定 ID,重写不变)<short-title>:3-8 字,去标点第一段标题写 ## 预测 v1(不再写裸 ## 预测——为将来可能的 v2 留 schema 一致性。老用户的 legacy ## 预测 文件不动,hook 都识别)。
header 必填字段:
Article ID(与 scripts/<id>.md 同 id)Script Path(指向 scripts/<id>.md)Script Hash(Phase 1 算出的)Calibration Samples + Confidence(从 state 派生)Prediction Basis:pre_shoot(v1 默认)Scored By:claude / claude+user_overrideBlindScored By:subagent-v1(Phase 2 默认)/ main-claude-self(--skip-blind 时) / mixed(Phase 2.5 用户裁定 b/c)BlindScore Disagreement:JSON 字段列表,每维度 {dim, blind, self, delta, decided_as},所有维度必记(即使 delta=0)User Override(如有覆盖):列出哪些字段被用户改了留一个空的 ## 复盘 段:
## 复盘
(待填——T+RETRO_WINDOW_DAYS 天后跑 /cheat-retro <对应 video folder>)绝不用 Write 覆盖文件——会被 immutability hook 拦。用 Edit 在 ## 复盘 之前插入 ## 预测 v2 段:
# 伪代码
edit_old = "## 复盘\n" # 单独一行,确保 hook awk 识别为 v1 段的边界
edit_new = """## 预测 v2 (replaces v1; basis=post_shoot_pre_publish)
**Diff vs v1**: 改了 N 行(X→Y%),主要变化:[摘要]
**重判触发**: cheat-shoot 检测稿子改动 ≥30%
**Script Hash (v2)**: <新稿子 hash>
[7 组件 — 与 v1 同 anatomy]
---
## 复盘
"""v1 段不动。v2 段头部明确写"replaces v1"——读者一眼知道哪段是有效预测。
cheat-retro 复盘时按"读最后一个 ## 预测 vN"逻辑,自然取到 v2 算偏差。
所有阶段都用统一完整版格式(参考 prediction-anatomy.md "完整结构总览")。confidence 低不缩格式,只让 header 标 confidence 等级 + 锚点对比段写"N/A 解释" + 概率分布更平。
写文件前自检 7 个组件齐全(缺锚点 / 关键校准假设 → 写"N/A 解释段",不删段)。
更新 .cheat-state.json:
{
"in_progress_session": {
"type": "prediction",
"file": "predictions/YYYY-MM-DD_<id>_<short>.md",
"video_folder": "videos/YYYY-MM-DD_<id>_<short>/",
"started_at": "<ISO timestamp>",
"rubric_version": "<v0/v2/...>"
},
"last_prediction_self_scored": <true 仅当 --skip-blind / Phase 2.5 选 b>,
"last_self_scored_at": <ISO 当 last_prediction_self_scored=true 时>
}video_folder 为 null 表示用户跑的是裸 .md 文件,没建 video folder。
in_progress_session 在 cheat-publish 触发时清除。如果用户预测后从未 publish(弃稿),下次 /cheat-init 或 /cheat-status 检测到陈旧 in_progress 会询问是否清理。
last_prediction_self_scored:
true 仅当本次预测走了 --skip-blind 或 Phase 2.5 用户选了 b(信主 Claude 自估)true → cheat-status 持续 nag:"上次预测没走 blind sub-agent,已 N 天"——直到下次 normal cheat-predict(走 sub-agent)触发后才清回 falselast_self_scored_at 跟随更新;下次 cheat-predict 走 sub-agent → 这两个字段一起被重置Cold-start-simple 模式:
✅ 预测落盘(cold-start 简化版):predictions/2026-05-04_a3f2c1d4e5b6_停止期待.md
7 维打分:ER5 / HP5 / QL4 / NA3 / AB5 / SR2 / SAT4
方向押注:比上一篇明显好(ER+HP 双 5)
对比对象:N/A(这是第 1 篇)
⚠️ ## 预测段已 immutable(hook 锁定)。
⚠️ 这是 cold-start 期简化版——没有 bucket 数字。前 5 篇都这样。
第 5 篇复盘后会自动解锁完整预测(bucket / 概率 / 锚点 / 反事实)。
进度:第 N 篇 / 共 5 篇 cold-start 期
下一步:
- 发布后 → "已发布 https://..."
- T+3 天 → "复盘 predictions/2026-05-04_..."Complete 模式:
✅ 预测落盘:predictions/2026-05-04_a3f2c1d4e5b6_停止期待.md
bucket 押注:30-100w(中枢 50w)
关键校准假设:本篇 vs 谁问你了 = 1.5-2x
⚠️ ## 预测 段已 immutable(hook 锁定)。
⚠️ 你不能再向我"透露"这条作品的播放数据,否则下次复盘的盲度声明失效。
如果你不小心看到了,告诉我——我会在文件里补一个 integrity warning。
下一步:
- 发布后 → "已发布 https://..."
- T+3 天 → "复盘 predictions/2026-05-04_..."## 复盘 占位空段——否则 hook 不知道哪里是 immutable 边界--skip-blind flag 显式声明。不接受主 Claude 自作主张跳过 sub-agent。flag 触发 state.last_prediction_self_scored=true,cheat-status 持续提示直到下次 normal 调用清除**Numerical predictions in cold-start are NOT predictive — for self-education only**/cheat-init 必须完成 + rubric_notes.md 存在/cheat-score 反复尝试不同稿子版本/cheat-publish(发布登记)→ /cheat-retro(复盘)→ 累计 ≥ MIN_SAMPLES 后 /cheat-bumphooks/prediction-immutability.sh 必须已安装在用户 .claude/settings.json,否则 immutability 仅靠 SKILL.md 自律——cheat-status 会持续提示© XBuilderLAB, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/cheat-predict of XBuilderLAB/cheat-on-content.
Open the folder on GitHubat commit 2d8211e
Blind Prediction Log 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Blind Prediction Log this skillXBuilderLAB/cheat-on-content | 7.2k | — | ~4k | Automated safety check: Notes | MIT | |
| Content ForecastColinjqq/content-forecast | 189 | — | ~412 | Automated safety check: Pass | MIT | |
| Apify Trend Analysismajiayu000/claude-skill-registry | 666 | 3 repos | ~1.1k | Automated safety check: Notes | MIT | |
| WeChat Hot Article AnalysisSpaceZephyr/creator-buddy | 1.6k | — | ~847 | Automated safety check: Pass | None | |
| Brand Voice Content Creatordavila7/claude-code-templates | 32k | 2 repos | ~1.9k | Automated safety check: Pass | MIT | |
| WeChat Account Topic and Title WriterBigPengSays/bigpeng-hot-gzh | 265 | — | ~501 | Automated safety check: Pass | MIT |
Colinjqq/content-forecast
Helps video creators pick topics from their own experience, diagnose how a script may spread and compare its expected performance with their own baseline.
majiayu000/claude-skill-registry
Discover and track emerging trends across Google Trends, Instagram, Facebook, YouTube, and TikTok to inform content strategy.
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.
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.
BigPengSays/bigpeng-hot-gzh
Produces topic directions and candidate headlines for WeChat official account articles using seven title formulas, without writing the article itself.
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.
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.
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.
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.
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.
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.
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.
Categories
Writes an immutable blind prediction log for a finished content draft: a seven-dimension score, bucket, probability distribution and counterfactuals, scored blind by a sub-agent. This is the core step of the cheat-on-content calibration loop. The prediction section cannot be edited once written, which a hook enforces, and a file that already has a prediction gets an appended second-version section instead of an overwrite.
Blind Prediction Log fits situations like: recording a prediction for a finished script before it is published; adding a second prediction to a draft that already has one; getting a blind second score on a draft from an isolated sub-agent.
Run `npx skills add XBuilderLAB/cheat-on-content --skill cheat-predict -a claude-code`. Or copy the skill folder (skills/cheat-predict in XBuilderLAB/cheat-on-content) into .claude/skills/cheat-predict in your project. Claude Code loads it when a task matches its description.
Run `npx skills add XBuilderLAB/cheat-on-content --skill cheat-predict -a codex`. Or copy the skill folder (skills/cheat-predict in XBuilderLAB/cheat-on-content) into .agents/skills/cheat-predict in your project. Codex loads it when a task matches its description.
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-predict -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-predict, .gemini/skills/cheat-predict, .github/skills/cheat-predict and .opencode/skills/cheat-predict in your project.
Going by SKILL.md and its folder, Blind Prediction Log needs the command-line tools its instructions call (python3). Our summary lists: A scripts folder with the draft, plus rubric_notes.md and .cheat-state.json in the project root; The cheat-score-blind sub-agent skill. Its frontmatter pre-approves these tools: Bash(*), Read, Write, Edit, Glob, Task.
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.
Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Blind Prediction Log is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4k tokens (SKILL.md is roughly 16k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Blind Prediction Log: Content Forecast (Colinjqq/content-forecast, 189 stars), Apify Trend Analysis (majiayu000/claude-skill-registry, 666 stars), WeChat Hot Article Analysis (SpaceZephyr/creator-buddy, 1.6k stars) and Brand Voice Content Creator (davila7/claude-code-templates, 32k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
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.