Skip to content
Automation
Skill

/cheat-predict

给最终稿写一份 immutable 盲预测日志。这是 cheat-on-content 整个校准循环的核心动作——预测段一旦写完不可改,由 hook 强制。**自动检测**:如目标文件已有 `## 预测` / `## 预测 v1` 段(被 cheat-shoot 调用走 v2 模式),改成 append `## 预测 v2` 而非覆盖。**打分通过 Task tool 委派给 `cheat-score-blind` sub-agent**(context-isolated channel B),主 Claude review

From plugin
lihongwei-cn
5200 skills1 agent
Install
$ npx -y skills add LiHongwei-cn/lihongwei-cn --skill cheat-predict --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/cheat-predict

Context preview

The summary Claude sees to decide when to auto-load this skill.

给最终稿写一份 immutable 盲预测日志。这是 cheat-on-content 整个校准循环的核心动作——预测段一旦写完不可改,由 hook 强制。**自动检测**:如目标文件已有 `## 预测` / `## 预测 v1` 段(被 cheat-shoot 调用走 v2 模式),改成 append `## 预测 v2` 而非覆盖。**打分通过 Task tool 委派给 `cheat-score-blind` sub-agent**(context-isolated channel B),主 Claude review

SKILL.md

cheat-predict.SKILL.md
name: cheat-predict
description: 给最终稿写一份 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"/"给这稿子打分并预测"/"写预测日志"。
argument-hint: <script-path> [— mode: v1|v2] [— prediction-file: <path>] [— skip-blind]
allowed-tools: Bash(*), Read, Write, Edit, Glob, Task

/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)。

Overview

[用户:启动预测 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]

Constants

  • **SCRIPTS_DIR = scripts/** — 草稿源目录
  • **PREDICTION_DIR = predictions/** — 落盘目录
  • **BLIND_CHECK = strict** — strict(默认)/ lenient(仅警告,不推荐)—— 跟 [blind-prediction-protocol.md](../../shared-references/blind-prediction-protocol.md) "见过数据"边界相关
  • **BLIND_SCORING = on**(默认)/ off —— 是否走 [cheat-score-blind](../cheat-score-blind/SKILL.md) sub-agent。off 等价于 `--skip-blind` flag,标 `last_prediction_self_scored: true` 给 cheat-status 警告
  • **DISAGREEMENT_THRESHOLD = 2** —— blind 与主 Claude 自评的单维度差异 |Δ| ≥ 此值 → Phase 2.5 弹用户裁定
  • **BUCKET_PRESET = auto** — 自动派生:有 baseline_plays → 按 baseline × {0.3 / 1 / 3 / 10 / 30};无 baseline → 平台通用默认
  • **MIN_ANCHORS = 2** — 锚点对比期望 2 个;不够时显式标"锚点 N/A"段(不删段,不省略)

> 💡 调用时覆盖:`/cheat-predict scripts/<id>.md — BLIND_CHECK: lenient` / `--skip-blind`(都不推荐)

Inputs

| 必填 | 来源 | |---|---| | `<video-folder-path>` 或 `<script-path>` | 用户参数;缺失则询问 | | `rubric_notes.md` | 用户项目根 | | `.cheat-state.json` | 状态文件 | | `predictions/*.md`(可选) | 历史预测,作为锚点 |

入参解析(Phase 0.5,在 blind check 之前)

用户给的路径**应该是** `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 的稿子在哪?"

Workflow

Phase 0: Blind check 自检(**最关键**,触犯立即终止)

按 [blind-prediction-protocol.md](../../shared-references/blind-prediction-protocol.md) 的"子 skill 必须做的检查清单"执行:

1. 询问用户该作品当前发布状态:

  • 未发 → 通过
  • 已发 < `RETRO_WINDOW_DAYS` 天 → 询问"你看过任何后续数据吗(播放/点赞/评论)?"
  • 用户回答"没看过" → 通过,标记 `published_before_prediction: true` + `blind_status: confirmed_no_data_seen`
  • 用户回答含糊 → 视为"已看",按下一项处理
  • 已发 ≥ `RETRO_WINDOW_DAYS` 天 → **立即拒绝写"预测"**,建议改用 `_redo.md` 路径记 reconstructed retrospective

2. 自检对话历史里是否含播放/阅读/点赞/评论/转发等字眼的实际数字 → 命中则视为已见数据,按上面 strict 模式处理

3. `BLIND_CHECK=lenient` 模式:仅警告 + 强制在文件头标注 `**Reconstructed retrospective — NOT a blind prediction**`,但仍允许继续

通过 → 进入 Phase 0.7。

Phase 0.7: 模式判定(v1 vs v2)

判定本次是新建预测(v1)还是对既有预测的 v2 追加(拍后改稿场景)。

**显式参数优先**:用户/调用方传 `— mode: v2` + `— prediction-file: <path>` → 直接 v2 模式。

**自动检测**(无显式参数): 1. 推断目标 prediction 路径:`predictions/<同 scripts/<id> 命名>.md` 2. 读该路径:

  • 不存在 → **v1 模式**,进入 Phase 1
  • 存在但只有空 `## 复盘`(无任何 `## 预测...` 段)→ **v1 模式**(异常状态,覆盖警告 + 进 Phase 1)
  • 存在且含 `## 预测` 或 `## 预测 v1` 段 → **v2 模式**

**v2 模式额外动作**:

  • 比较输入 script(最终拍摄稿)与 `## 预测` 段引用的原 `Script Hash`
  • 如完全一致(hash 同)→ 警告"稿子没改,是否真要写 v2?"——用户确认才继续;不确认则退出
  • 如不同 → 算 diff 概要(行数 / 字数 / 结构变化)→ Phase 5.5 review 时展示给用户
  • 标记 `prediction_basis = "post_shoot_pre_publish"`(v1 默认 `pre_shoot`)

Phase 1: 读最终稿 + rubric + state + 派生 confidence

1. 按 Phase 0.5 解析后的路径,读 `scripts/<id>.md` 全文 2. 计算 `script_hash` = sha256(script 内容)[:12] → header 用 3. 读 `rubric_notes.md`,识别当前公式 + 维度(同 cheat-score Phase 2) 4. 读 `.cheat-state.json` 拿 `rubric_version`、`content_form`、`calibration_samples`、`typical_duration_seconds`、`baseline_plays` 5. **从 `calibration_samples` 派生 confidence 等级**(按 [state-management.md confidence 表](../../shared-references/state-management.md))→ 后续写入 prediction header 6. 询问用户:"这是你打算实际拍摄发布的最终稿吗?还是会再改?"——必须是最终稿 7. 如果稿子字数与 `typical_duration_seconds` 派生范围严重不符(差 >50%)→ 提示用户:"这条稿子 N 字,按你设的典型时长(X 分钟)应该是 M-K 字。是临时改了时长,还是稿子需要砍/补?"

Phase 2: 委派 cheat-score-blind sub-agent 拿盲打分

**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](../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/
Read more
Ships withlihongwei-cn

MUNDO - THE EMPEROR. Complete AI orchestration system with 1208 skills, 25 capability modules, self-evolving, collective consciousness. GitHub Actions 24/7 automation.

Get the whole plugin
Stats
5
Stars
1
Forks
Maintained
Maintenance
Python
Language
MIT
License
1mo ago
Last commit
4mo ago
Created

Repo: LiHongwei-cn/lihongwei-cn

Other skills on lihongwei-cn.

cheat-on-content
Skill

cheat-on-content

给所有想把"感觉"变成可校准预测的内容创作者。**方法论通用**——打分 → 盲预测 → T+3d 复盘 → 进化 rubric 的循环适用任何能被量化(播放 / 阅读 / 收听 / 点击)的内容。**rubric 是循环的内容,不是循环本身**——当前内置一份观点视频 rubric(参考博主 25+…

cheat-bump
Skill

cheat-bump

提议并执行 rubric 或 bucket 升级。两种模式:**完整 rubric bump**(最高风险动作,5 步强制 + 跨模型审核)和 **--bucket-only 轻量重校**(只换 bucket 边界,不动 rubric 公式)。**Phase 2 强制走 cheat-score-blind…

cheat-init
Skill

cheat-init

cheat-on-content 的首次 onboarding 与脚手架创建器。统一流程——所有用户都走相同 5 阶段闭环,唯一区别是"发过视频的人"会在 init 时多一步:抓取已有视频建立历史 context(用于后续 cheat-seed 给更贴合的选题、更准的…

cheat-migrate
Skill

cheat-migrate

把老用户的 .cheat-state.json 升级到当前 schema_version。读 migrations/registry.md 算迁移链,按顺序应用每一步迁移文件。幂等:跑两次结果一样。失败停在中间版本不前进。触发词:"迁移"/"升级 state"/"migrate"/"我的 state…

cheat-persona
Skill

cheat-persona

从复盘评论数据派生 / 刷新账号的受众画像,写入 audience.md。这是和 rubric 平行的第二个派生物——rubric 答"怎么打分",persona 答"谁在看"。cheat-seed 选题 / 写稿时读它。**audience.md 含实绩信号,cheat-score-blind…