项目文件夹

文件
2026-07-13 12:29:17 +08:00

211 行
7.7 KiB
Markdown

此文件含有模棱两可的 Unicode 字符
此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。
# 工作流速查(cheat-on-content
> 这是 `/cheat-init` 在你的项目根创建的速查文档。完整规范在 cheat-on-content 的 `SKILL.md` 和 `shared-references/`。
> 本文件给"忘了下次该说什么"的时候用——不需要从头读完。
---
## 一句话流程
```
找选题
├─ 没发过历史的 → /cheat-seed brainstorm(兴趣 × 热点)
└─ 发过历史的 → /cheat-seed brainstorm(兴趣 × 热点 × 你过去做过什么)
(都跑 cheat-seed,区别是发过的 brainstorm 时多一份历史 context
cheat-seed 写 5 个草稿到 → scripts/<日期>_<id>_<short>.md
用户改写 scripts/<日期>_<id>_<short>.md(同一文件覆盖)
/cheat-score scripts/<日期>_<id>_<short>.md → 看 rubric 评分(探索)
/cheat-predict scripts/<日期>_<id>_<short>.md → 写 immutable 预测 v1 到 predictions/
拍摄完 → /cheat-shoot scripts/<日期>_<id>_<short>.md
├─ 建 videos/<日期>_<id>_<short>/ 目录
├─ 询问用户:"拍时实际用的稿子和 scripts/<id>.md 一致吗?"
│ ├─ 一致 → cp → videos/<id>/script.md,沿用 v1 预测
│ ├─ 改了 → 要最终稿 → 算 diff
│ │ ├─ diff ≥30% → 自动 /cheat-predict — mode: v2 → predictions/<id>.md append `## 预测 v2` 段
│ │ └─ diff <30% → 询问是否 v2,默认沿用 v1
│ └─ 大改 → 走 _redo 流程(新 scripts/<id>_redo.md + 重 cheat-predict
└─ buffer +1
发布 → /cheat-publish + URL → buffer -1
T+3 天 → /cheat-retro videos/<日期>_<id>_<short>/
├─ 抓数据 / 用户粘 → 写 videos/<id>/report.md
├─ 追加 ## 复盘 段到 predictions/<id>.md
├─ diff scripts/<id>.md vs videos/<id>/script.md → 学用户改稿 pattern
└─ 把新观察写入 rubric-memo.md / script_patterns.md(实绩只进 rubric-memo,不进 rubric_notes
累计 ≥3 同向偏差 → /cheat-bump(升级 rubric
```
---
## 五个阶段对应触发词
### ① 选题阶段
| 想做什么 | 触发词 |
|---|---|
| 看 candidates.md 排序后的推荐 | "推荐选题" / "下一篇做什么" |
| 抓今天的热点拓展 candidates | "抓热点" / "今天有什么可做的" |
| 看当前状态 | "状态" |
> Cold-start 期没 candidates.md 是默认状态——不要因为这个就觉得工具坏了。
### ② 打分 + 预测
| 想做什么 | 触发词 | 写文件吗 |
|---|---|---|
| 看一份稿子的 rubric 分(探索) | "打分这篇 path/to/draft.md" | 否 |
| 给最终稿写正式 immutable 预测日志 | "启动预测" 或 "给这稿子启动预测 path/to/draft.md" | 是(`predictions/...md` |
> **score 与 predict 的核心区别**
> - score 是探索,无副作用,可反复跑
> - predict 是承诺,写完文件 `## 预测 v1`(或 `## 预测 v2`)段被 hook 锁死
> **v2 重判触发**cheat-shoot 检测拍摄稿与原 scripts 的 line-diff ≥30% 时自动调用 cheat-predict 写 `## 预测 v2` 段(append,不覆盖 v1)。详见 [shared-references/prediction-anatomy.md](../shared-references/prediction-anatomy.md) 的 v1/v2 段约定。
### ③ 发布登记
发完后立刻:
```
"已发布 https://..."
```
或:
```
"已发布 predictions/2026-05-04_xxx.md 链接是 https://..."
```
会更新预测文件 header 的 `published_at` / `Platform` / `URL`,并把文件加入 `pending_retros` 队列。
### ④ 复盘
T+3 天后(默认):
```
"复盘 predictions/2026-05-04_xxx.md"
```
或干脆:
```
"复盘"
```
后者会从 `pending_retros` 取最早的一条。
> 复盘需要你提供数据。默认是手动粘——粘"播放 / 点赞 / 评论 / 转发"和 top 20 评论到对话里。
> 配了 adapter 的可以让 cheat-retro 自动抓。
### ⑤ Rubric 升级(罕见)
**满足条件才提议**
- 校准池 ≥ 5 篇
- 上次 bump 后又有 ≥ 3 篇新校准
- 检测到连续 ≥ 3 次同向偏差
满足就跑:
```
"升级 rubric --propose 'ER 权重 1.5→2.0,加 MS 维度'"
```
bump 是高风险操作——会做 5 步验证(含跨模型独立审)。详见 `cheat-on-content/shared-references/bump-validation-protocol.md`
---
## 三条不可妥协的原则
> 这三条违反任一条 → 整个校准循环退化为占星。
1. **盲预测**:预测段写在看到任何数据之前,写完不可改。hook 在 harness 层强制。
2. **升级 = 全量重打**:bump 必须校准池全量重打分 + 跨模型独立审。
3. **rubric 是工作台不是博物馆**:被吸收 / 被推翻的观察都删掉。git history 是档案。
---
## 默认配置
`/cheat-init` 创建的项目默认值:
| 设置 | 默认 | 何时改 |
|---|---|---|
| `RETRO_WINDOW_DAYS` | 3 | 长文 / 慢平台改 7 |
| `BLIND_CHECK` | strict | 演练 / 测试时临时改 lenient |
| `MIN_SAMPLES_FOR_BUMP` | 5 | 不要降 |
| `CROSS_MODEL_AUDIT` | true(如 mcp__llm-chat__chat 已配) | 仅离线时 false |
| `TREND_SOURCES` | ["manual-paste"] | 用 `enabled_trend_sources` 字段加新源 |
| `POOL_PATH` | candidates.md | 用 Notion 时改字段 |
---
## 看板(status 命令)
任何时候说 "状态",会输出:
- 当前 mode / rubric 版本 / 校准样本数
- 待办(pending retros + 同向偏差警告 + 陈旧 in-progress
- 候选池规模 + 上次抓热点的天数
- 健康度(rubric_notes.md 行数 / hooks 是否安装 / 是否配跨模型审)
- 下一步建议(按推荐优先级)
---
## 文件结构(你的项目根)
```
<your-content-project>/
├── rubric_notes.md # 评分规则真实来源
├── script_patterns.md # 写作 pattern 沉淀
├── WORKFLOW.md # 本文件
├── STATUS.md # 看板(cheat-status 维护)
├── candidates.md # 候选池(可选;cheat-seed / cheat-trends 写)
├── .cheat-state.json # 状态文件(git track
├── .cheat-cache/ # 本地缓存(gitignore
│ ├── usage.jsonl
│ └── trends-history.jsonl
├── .cheat-secrets.json # API key / cookiegitignore
├── .cheat-hooks/ # hook 脚本副本
│ ├── prediction-immutability.sh
│ ├── session-start.sh
│ └── log-event.sh
├── .claude/settings.json # 含 cheat-on-content hooks
├── scripts/ # **拍前的所有草稿**
│ └── YYYY-MM-DD_<id>_<short>.md # cheat-seed 写或用户写
├── predictions/ # **immutable 预测日志**hook 保护)
│ └── YYYY-MM-DD_<id>_<short>.md # cheat-predict 写
└── videos/ # **拍后才建**cheat-shoot 创建)
└── YYYY-MM-DD_<id>_<short>/
├── script.md # 你提供的最终拍摄稿
└── report.md # T+3d 数据(cheat-retro 写)
```
### 三个目录的关系
| 目录 | 阶段 | 内容 | 谁写 |
|---|---|---|---|
| `scripts/` | 拍前草稿 | Claude AI 草稿或用户原创 | cheat-seed 写初版;用户改写也在原文件 |
| `predictions/` | 预测锁定 | 7 组件 immutable 日志 | cheat-predict 写 |
| `videos/<id>/` | 拍后产物 | 最终拍摄稿 + T+3d 数据 | cheat-shoot 建目录;cheat-retro 写 report.md |
三处用同一组 `<date>_<id>_<short>` 命名,`<id>``scripts/<id>.md` 首次落盘内容的 sha256 前 12 位,**草稿改写不变**。
`/cheat-init` 自动创建以上骨架(不覆盖已存在的)。
---
## 卡住了?
-`cheat-on-content/SKILL.md` 的"必须拒绝的请求"段——你想做的事可能正好是被设计拒绝的
- 看对应子 skill 的 `cheat-on-content/skills/cheat-X/SKILL.md`
- 跑 "状态" 看 cheat-status 的"下一步建议"