cheat-on-content
给所有想把"感觉"变成可校准预测的内容创作者。**方法论通用**——打分 → 盲预测 → T+3d 复盘 → 进化 rubric 的循环适用任何能被量化(播放 / 阅读 / 收听 / 点击)的内容。**rubric 是循环的内容,不是循环本身**——当前内置一份观点视频 rubric(参考博主 25+…
登记一条视频已拍摄。**建 video folder + 询问实际拍摄稿是否与 scripts/<id>.md 一致 + buffer +1**。与 cheat-publish 配对:拍了进队列,发了出队列。触发词:"拍了"/"拍了 X"/"shot"/"shot it"/"已拍 X"/"录完了"。
$ npx -y skills add LiHongwei-cn/lihongwei-cn --skill cheat-shoot --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/cheat-shootContext preview
The summary Claude sees to decide when to auto-load this skill.
登记一条视频已拍摄。**建 video folder + 询问实际拍摄稿是否与 scripts/<id>.md 一致 + buffer +1**。与 cheat-publish 配对:拍了进队列,发了出队列。触发词:"拍了"/"拍了 X"/"shot"/"shot it"/"已拍 X"/"录完了"。
name: cheat-shoot description: 登记一条视频已拍摄。**建 video folder + 询问实际拍摄稿是否与 scripts/<id>.md 一致 + buffer +1**。与 cheat-publish 配对:拍了进队列,发了出队列。触发词:"拍了"/"拍了 X"/"shot"/"shot it"/"已拍 X"/"录完了"。 argument-hint: <scripts-path-or-id> allowed-tools: Bash(*), Read, Write, Edit, Glob
把视频从"已写预测、未拍摄"状态推进到"已拍摄、未发布"状态。这一步: 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:
[用户:拍了 scripts/2026-05-04_abc123_停止期待.md] ↓ [Phase 0: 解析路径 + 验证 prediction 已存在] ↓ [Phase 1: 检查是否已登记(避免重复)] ↓ [Phase 2: 建 videos/<id>/ + 询问"实际拍摄稿一致吗?"] ↓ [Phase 3: 写 videos/<id>/script.md] ↓ [Phase 4: append state.shoots] ↓ [Phase 5: 输出 buffer 状态]
| 必填 | 来源 | |---|---| | `<scripts-path-or-id>` | 用户参数;缺失则询问 | | `.cheat-state.json` | 状态文件 | | `scripts/*.md` | pre-shoot 草稿 | | `predictions/*.md` | 验证对应预测存在 |
1. 解析用户给的路径——支持几种形态:
2. 验证 `scripts/<id>.md` 存在:不存在 → 报错"找不到 pre-shoot 草稿" 3. 验证有对应 prediction `predictions/<同名>.md`:
读 `.cheat-state.json`,检查 `shoots[]` 是否已含此 id:
1. 建目录 `videos/<id>_<short>/`(同 scripts/ + predictions/ 的命名) 2. **询问用户**:
拍 「<title>」 的时候,你实际用的稿子和 scripts/<id>.md 一致吗? a) 一致——按草稿拍的 b) 改了一些——你能给我看下实际拍摄稿吗?我重新打分一次(v2 预测) c) 大改了,基本是另一条 → 走 _redo 流程: scripts/<id>_redo.md → 重新 cheat-predict → 再 cheat-shoot(原 prediction 留档脱钩)
**a 路径(一致)**:
**b 路径(改了)**: 1. 询问用户实际拍摄稿——粘贴文本 / 文件路径 / 转录文件 2. 若用户提供 → 写入 `videos/<id>/script.md` 3. 若用户没保留(即兴)→ 标 `script_lost`,写占位文件 + 警告"v2 重判跳过——下次建议留稿(哪怕 voice memo 转录)",进 Phase 4 4. 提供了的话:算 diff
# 解析 cheat-on-content 源码根(cheat-shoot 是 symlink 装的)
SKILL_REAL="$(readlink -f ~/.claude/skills/cheat-shoot 2>/dev/null || readlink ~/.claude/skills/cheat-shoot 2>/dev/null)"
if [[ -n "$SKILL_REAL" ]]; then
REPO_ROOT="$(cd "$SKILL_REAL/../.." && pwd)"
DIFF_TOOL="$REPO_ROOT/tools/diff_pct.py"
fi
if [[ -n "${DIFF_TOOL:-}" && -f "$DIFF_TOOL" ]] && command -v python3 >/dev/null 2>&1; then
# 默认 char-level Levenshtein on normalized text(rapidfuzz preferred, difflib fallback)
diff_pct=$(python3 "$DIFF_TOOL" "scripts/<id>.md" "videos/<id>/script.md")
else
# legacy line-level fallback——只在 python3 或 diff_pct.py 都不可用时用
added=$(diff -u scripts/<id>.md videos/<id>/script.md | grep -c '^+')
removed=$(diff -u scripts/<id>.md videos/<id>/script.md | grep -c '^-')
total_orig=$(wc -l < scripts/<id>.md)
diff_pct=$(( (added + removed) * 100 / total_orig ))
echo "⚠️ fallback 到 line-level diff——口语化转录会 inflate diff_pct,可能误触发 v2"
fi**为什么 normalize + char-level**:line-level diff 在创作者真实场景(draft 是 markdown 长句、拍摄稿是 whisper 转录的口语化短行)算出 ~200% 差异但内容几乎不变。char-level Levenshtein 在 normalize 后稳定反映**内容**差异,而非格式差异。详见 [`tools/diff_pct.py`](../../tools/diff_pct.py) + `tools/diff_pct_test.sh`(3 fixture 在两个 backend 上全过)。 5. **判定 v2 触发**:
6. cheat-predict 完成 v2 落盘后,控制权回到 cheat-shoot 进 Phase 4
**c 路径(大改)**:
{
"shoots": [
...,
{
"video_folder": "videos/2026-05-04_abc123_停止期待/",
"prediction_file": "predictions/2026-05-04_abc123_停止期待.md",
"scripts_path": "scripts/2026-05-04_abc123_停止期待.md",
"shot_at": "<ISO timestamp>",
"script_consistency": "consistent" | "modified" | "lost",
"script_diff_pct": <0-100 int 或 null>,
"v2_prediction_written": <true/false>,
"script_hash_at_shoot": "<sha256:12 of videos/<id>/script.md>"
}
]
}`v2_prediction_written: true` 表示 prediction 文件里现在有 `## 预测 v2` 段,cheat-retro 应读 v2 算偏差;`false` 表示沿用 v1。
读完 state 后立即算 buffer + 颜色(按 [cadence-protocol.md](../../shared-references/cadence-protocol.md) 的派生规则):
✅ 已登记拍摄:videos/2026-05-04_abc123_停止期待/ 预测文件:predictions/2026-05-04_abc123_停止期待.md 📦 当前 buffer:3 篇(🟢 绿色,正常) 按你的 cadence(隔日更)= 6 天 buffer,节奏稳定。 下一步:拍其他候选 / 等下个发布日 / 不动 `
MUNDO - THE EMPEROR. Complete AI orchestration system with 1208 skills, 25 capability modules, self-evolving, collective consciousness. GitHub Actions 24/7 automation.
Repo: LiHongwei-cn/lihongwei-cn
给所有想把"感觉"变成可校准预测的内容创作者。**方法论通用**——打分 → 盲预测 → T+3d 复盘 → 进化 rubric 的循环适用任何能被量化(播放 / 阅读 / 收听 / 点击)的内容。**rubric 是循环的内容,不是循环本身**——当前内置一份观点视频 rubric(参考博主 25+…
提议并执行 rubric 或 bucket 升级。两种模式:**完整 rubric bump**(最高风险动作,5 步强制 + 跨模型审核)和 **--bucket-only 轻量重校**(只换 bucket 边界,不动 rubric 公式)。**Phase 2 强制走 cheat-score-blind…
cheat-on-content 的首次 onboarding 与脚手架创建器。统一流程——所有用户都走相同 5 阶段闭环,唯一区别是"发过视频的人"会在 init 时多一步:抓取已有视频建立历史 context(用于后续 cheat-seed 给更贴合的选题、更准的…
从对标账号导入 script + 数据 → 拆 pattern + 派生 base rubric 信号 → 写到 benchmark.md / script_patterns.md / rubric_notes.md。**这是工具最早期信号的来源**——cold-start…
把老用户的 .cheat-state.json 升级到当前 schema_version。读 migrations/registry.md 算迁移链,按顺序应用每一步迁移文件。幂等:跑两次结果一样。失败停在中间版本不前进。触发词:"迁移"/"升级 state"/"migrate"/"我的 state…
从复盘评论数据派生 / 刷新账号的受众画像,写入 audience.md。这是和 rubric 平行的第二个派生物——rubric 答"怎么打分",persona 答"谁在看"。cheat-seed 选题 / 写稿时读它。**audience.md 含实绩信号,cheat-score-blind…