cheat-on-content
给所有想把"感觉"变成可校准预测的内容创作者。**方法论通用**——打分 → 盲预测 → T+3d 复盘 → 进化 rubric 的循环适用任何能被量化(播放 / 阅读 / 收听 / 点击)的内容。**rubric 是循环的内容,不是循环本身**——当前内置一份观点视频 rubric(参考博主 25+…
登记一篇内容已发布,把 URL/平台 ID/发布时间写入对应预测文件 header 和 state file。这是一个轻量动作——只更新元数据,**不动预测段任何字符**。触发词:"已发布"/"I shipped"/"发布链接是 X"/"刚发完 [url]"/"publish registered"。
$ npx -y skills add LiHongwei-cn/lihongwei-cn --skill cheat-publish --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/cheat-publishContext preview
The summary Claude sees to decide when to auto-load this skill.
登记一篇内容已发布,把 URL/平台 ID/发布时间写入对应预测文件 header 和 state file。这是一个轻量动作——只更新元数据,**不动预测段任何字符**。触发词:"已发布"/"I shipped"/"发布链接是 X"/"刚发完 [url]"/"publish registered"。
name: cheat-publish description: 登记一篇内容已发布,把 URL/平台 ID/发布时间写入对应预测文件 header 和 state file。这是一个轻量动作——只更新元数据,**不动预测段任何字符**。触发词:"已发布"/"I shipped"/"发布链接是 X"/"刚发完 [url]"/"publish registered"。 argument-hint: <prediction-file-or-url> [— platform: youtube|bilibili|douyin|...] allowed-tools: Bash(*), Read, Edit, Glob
把作品的发布元数据(URL、发布时间、平台)补到预测文件 header 与 state file。**禁止改预测段**——hook 会拦。
[用户:已发布 https://...] ↓ [Phase 0: 找到对应的预测文件] ← 通过 in_progress_session 或匹配 ↓ [Phase 1: 解析 URL → 平台/发布时间] ↓ [Phase 2: 更新 prediction 文件 header(仅 metadata 段)] ↓ [Phase 3: 更新 .cheat-state.json,清除 in_progress_session]
| 必填 | 来源 | |---|---| | `<prediction-file>` 或 URL | 用户参数;缺失则用 `.cheat-state.json` 的 `in_progress_session.file` | | `.cheat-state.json` | 用户项目根 |
按优先级: 1. 用户参数明确给了 prediction 文件路径 → 用它 2. 用户参数只给了 URL → 读 `.cheat-state.json` 的 `in_progress_session.file` 3. 都没有 → 列出 `predictions/*.md` 中 header 没填 `published_at` 的文件,让用户选
**警告路径**:若 `in_progress_session.file` 与用户给的 URL 时间差超过 14 天 → 提示"这个预测写于很久之前,确认是这篇?"
`AUTO_DETECT_PLATFORM=true` 时按 URL 模式:
| URL 模式 | 平台 | |---|---| | `youtube.com/*` `youtu.be/*` | youtube | | `bilibili.com/*` `b23.tv/*` | bilibili | | `douyin.com/*` `iesdouyin.com/*` `v.douyin.com/*` | douyin | | `xiaohongshu.com/*` `xhslink.com/*` | xhs | | `mp.weixin.qq.com/*` | wechat | | `substack.com/*` `*.substack.com/*` | substack | | `medium.com/*` `*.medium.com/*` | medium | | `twitter.com/*` `x.com/*` | twitter | | 其他 | unknown — 询问用户 |
发布时间获取:
**绝不**触碰 `## 预测` 段及之后。只动文件最顶部的 metadata 块。
读文件,定位到 metadata 块(在第一个 `##` 之前的所有行)。检查是否已有这些字段——有则警告"已登记过"并询问是否覆盖;无则追加:
**Published at**: 2026-05-04T14:32:00+08:00 **Platform**: douyin **URL**: https://v.douyin.com/abc123 **Video Folder**: videos/2026-05-04_a3f2c1d4_停止期待/ **Aweme ID**: 7234567890123456789 (douyin / 视频号 等需要的 platform-specific ID)
**关于 platform-specific ID**:
如果用户给的是分享短链(无法立刻 resolve)→ 标 `Aweme ID: pending`,下次 `/cheat-retro` 时由 adapter 解析。
**video folder 处理**:到 cheat-publish 这一步,对应的 `videos/<id>/` 目录**应该已经由 cheat-shoot 创建**(含 script.md)。
用 Edit 工具(不是 Write 重写整个文件)。
**hook 行为预期**:因为只动 metadata 段(在 `## 预测` 之前),immutability hook 应放行。如果 hook 误拦 → 报告 bug,**不要绕过 hook**。
{
"in_progress_session": null,
"last_published_at": "<ISO timestamp>",
"last_published_file": "predictions/<filename>",
"last_published_video_folder": "videos/<...>/",
"last_published_platform_id": "<aweme_id 或 BV 号 等>",
"pending_retros": [
"predictions/<filename>"
],
"shoots": [
// 移除 video_folder 匹配本次发布的项;buffer -1
]
}**`shoots` 队列处理**(buffer 跟踪关键): 1. 读 state.shoots[] 2. 找 `video_folder == 本次发布的 video_folder` 的项 → 移除 3. 如果没找到 → 警告"buffer 队列里没有这条视频。是直接发布没经过 /cheat-shoot 吗?"——不阻塞,但提示用户下次走 /cheat-shoot 让 buffer 跟踪准确
`last_published_platform_id` 是 cheat-retro 调 adapter 时的输入——如 douyin-session 需要 aweme_id 直接抓数据。
`pending_retros` 是待复盘列表——`cheat-status` 会基于这个列表 + RETRO_WINDOW_DAYS 显示"今天该复盘哪些"。
✅ 登记完成:predictions/2026-05-04_a3f2c1d4e5b6_停止期待.md
- Published at: 2026-05-04 14:32
- Platform: douyin
- URL: https://v.douyin.com/abc123
📦 Buffer:N 篇(颜色 + 含义)
按你的 cadence(X)= N×X 天 buffer
[如颜色变了,提示"现在该去拍/暂停拍"]
⚠️ 从此刻起,你看到任何关于这条作品的播放/点赞/评论数据
都会破坏盲度声明的诚信。如果不小心看到,告诉我——
我会在文件里追加一个 integrity warning。
📅 计划复盘:T+3d,约 2026-05-07
到时间说:"复盘 predictions/2026-05-04_..."Buffer 颜色由 [shared-references/cadence-protocol.md](../../shared-references/cadence-protocol.md) 派生。如本次发布让 buffer 跌入红色(断更风险)→ 高亮警告"今天必须再拍 ≥1 条"。
1. **不动预测段**。即使是修复笔误,也不允许在 publish 时改预测段 2. **不抓数据**。publish 是登记动作,不是数据回收(那是 cheat-retro 的活) 3. **state 字段名固定**。`pending_retros` / `last_published_at` 是其他子 skill(特别是 cheat-status / cheat-retro)依赖的契约 4. **平台未知不强报**。无法识别 → 询问用户,允许 `platform: other` 作为兜底 5. **重复登记需明示**。已有 published_at → 询问"覆盖?",绝不静默覆盖
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…