195 lines
7.0 KiB
Markdown
195 lines
7.0 KiB
Markdown
# Cadence Protocol(节奏协议)
|
||
|
||
被这些子 skill 引用:`cheat-status`、`cheat-recommend`、`cheat-shoot`、`cheat-publish`、SessionStart hook。
|
||
|
||
固化"哪天该做什么"——避免用户驱动每一步。让 Claude 在会话开场就能回答"我现在该拍 / 该发 / 该复盘"。
|
||
|
||
---
|
||
|
||
## 三层节奏
|
||
|
||
### 日级(每天 / 每次会话开场)
|
||
|
||
1. SessionStart hook 自动渲染 4-6 行报告:
|
||
- 📦 Buffer 状态(颜色 + 数量)
|
||
- ⏰ 待复盘到期项
|
||
- 🎯 候选池 top 3(粗排)
|
||
- 📅 上次抓热点时间
|
||
- ⚠️ 关键 to-do
|
||
2. 不主动开始任何动作——等用户决定
|
||
|
||
### 事件级(T+`RETRO_WINDOW_DAYS` 天到期)
|
||
|
||
- 任何已发未复盘 + 时间到 → SessionStart 顶部高亮
|
||
- 用户给数据(粘 / URL)→ `/cheat-retro` 自动跑
|
||
|
||
### 周级(用户决定的"集中处理日")
|
||
|
||
- 抓热点(`/cheat-trends`)刷新候选池
|
||
- 检查 rubric bump 触发条件
|
||
- 清理 STATUS.md / rubric_notes.md 是否需要清算
|
||
|
||
---
|
||
|
||
## Buffer 警戒规则
|
||
|
||
**Buffer = `state.shoots` 数组长度** = 已拍但未发布的视频数。
|
||
|
||
`/cheat-shoot` 把视频加进 `state.shoots`,`/cheat-publish` 移除——两个事件分开使 buffer 跟踪准确。
|
||
|
||
### 颜色阈值(按 `target_publish_cadence_days` 派生)
|
||
|
||
`buffer_days = buffer_count × target_publish_cadence_days`
|
||
|
||
| buffer_days | 颜色 | 含义 | 行动 |
|
||
|---|---|---|---|
|
||
| < 1 | 🔴 **红** | 警戒——下个发布日可能断更 | **今天必须拍**,且只拍稳分(top 1,不冒险) |
|
||
| 1-2 | 🟠 橙 | 偏低 | 应该拍 1-2 条 |
|
||
| 3-5 | 🟢 绿 | 正常 | 节奏稳定,可以拍可以休 |
|
||
| > 5 | 🔵 蓝 | 积压 | **暂停拍摄**,全力发布存货 + 复盘 |
|
||
|
||
**示例**:
|
||
- 用户 cadence = 1(日更),buffer count = 0 → buffer_days = 0 → 🔴
|
||
- 用户 cadence = 7(周更),buffer count = 1 → buffer_days = 7 → 🔵(一篇够发七天)
|
||
- 用户 cadence = 1,buffer count = 4 → buffer_days = 4 → 🟢
|
||
|
||
### 灵活节奏(target_publish_cadence_days = null)
|
||
|
||
用户在 cheat-init 选"灵活/不固定" → buffer 监控**关闭**。SessionStart 报告只显示"已拍未发:N 条",不显示颜色,不警戒。
|
||
|
||
---
|
||
|
||
## 选题策略(`/cheat-recommend` 推 ≥ 2 个时)
|
||
|
||
每次推荐 2 条时遵循 **1 稳分 + 1 实验性** 原则:
|
||
|
||
### 第 1 条(稳分)
|
||
|
||
- 排序 top 1-3
|
||
- 类目与最近 N 条已发**不重复**(N = max(3, target_publish_cadence_days × 3),避免审美疲劳)
|
||
- composite 高 + 议题安全(非 risky)
|
||
|
||
### 第 2 条(实验性)
|
||
|
||
- 候选池里能验证某个**待验证假设**的样本(如新维度的 A/B 对照)
|
||
- 或验证某个**新 pattern**([script_patterns.md](script_patterns.md) 的 Pattern N)
|
||
- composite 不一定 top,但有"信息价值"——复盘后能让 rubric / pattern 库前进
|
||
|
||
### Buffer 颜色对推荐的覆盖
|
||
|
||
| Buffer 颜色 | 推荐策略覆盖 |
|
||
|---|---|
|
||
| 🔴 红 | **只推稳分 top 1**——不推实验性。"今天能拍出来就行" |
|
||
| 🟠 橙 | 1 稳 + 1 实验,但建议优先拍稳分 |
|
||
| 🟢 绿 | 标准 1+1 |
|
||
| 🔵 蓝 | **暂停推荐**——回 "你 buffer 积压了,先发存货 + 复盘" |
|
||
|
||
**关键约束**(任何颜色都遵守):
|
||
- 同一 category 连发 ≤ 2 条
|
||
- 已发过的 candidate(标 done)不推
|
||
- 用户主动跳过的 candidate(标 skip)6 个月内不推
|
||
|
||
---
|
||
|
||
## 节奏元规则
|
||
|
||
按优先级(高→低):
|
||
|
||
1. **Buffer 优先于评分**:红色警戒时不要因为"等更好的选题"而断更——拍 composite 7.5 的稳分比"等明天的 9.0"安全
|
||
2. **复盘优先于新拍**:T+RETRO_WINDOW_DAYS 到期当天**先复盘再考虑拍新的**——否则数据信号丢失,rubric 校准受损
|
||
3. **同步优先于积压**:buffer 满(蓝色)时不要再拍,先发掉再说——已拍议题的时效性会衰减
|
||
4. **实验性最多 1/天**:每天拍 2 条时至少 1 条是稳分。**不要全实验**——冷启动期实验失败率太高,伤校准节奏
|
||
|
||
---
|
||
|
||
## 标准化"今日工作流"模板
|
||
|
||
### 情况 1:buffer 充足 + 没到 T+3d 复盘
|
||
|
||
```
|
||
SessionStart 报告 → user 决定拍/不拍
|
||
├─ 拍 → "推荐选题" → cheat-recommend 推 2 个 →
|
||
│ user 选 → /cheat-seed 写 draft (cold-start) 或 user 自己写 →
|
||
│ user 改写 → script.md → user 拍 → "拍了 videos/<...>/" → cheat-shoot
|
||
└─ 不拍 → 等
|
||
```
|
||
|
||
### 情况 2:buffer 充足 + 到 T+3d 复盘
|
||
|
||
```
|
||
SessionStart 报告含 ⏰ 复盘提醒 → user 给 video URL 或粘数据 →
|
||
cheat-retro 自动跑 → 写复盘段 → 检查 bump 触发条件
|
||
├─ 触发 → 提议 /cheat-bump(不强制,用户决定)
|
||
└─ 未触发 → 等下个验证样本
|
||
```
|
||
|
||
### 情况 3:buffer 红色警戒
|
||
|
||
```
|
||
🔴 SessionStart 第一行警戒 → user 决定
|
||
├─ 拍 → cheat-recommend 只推 v 当前 top 1 稳分 → 立即拍
|
||
└─ 接受断更风险 → user 自负,cheat-status 持续提示
|
||
```
|
||
|
||
### 情况 4:buffer 蓝色积压
|
||
|
||
```
|
||
🔵 SessionStart 报告"积压" → user 决定
|
||
├─ 发 → "已发布 https://..." → cheat-publish → buffer -1
|
||
├─ 复盘 → 见情况 2
|
||
└─ 拍新 → cheat-recommend 拒绝:"你 buffer 已 N 条,先发掉 ≤3 条再来"
|
||
```
|
||
|
||
### 情况 5:周期性集中处理日(用户主动触发)
|
||
|
||
```
|
||
user 说"抓热点" → cheat-trends → 候选池更新
|
||
+ user 说"看看 rubric 是不是该升了" → cheat-status 检查同向偏差累计
|
||
+ user 说"看看 rubric_notes 行数" → cheat-status 健康度检查
|
||
```
|
||
|
||
---
|
||
|
||
## 兜底:流程偏离时
|
||
|
||
如果某天违反节奏(buffer=0 但用户强行不拍 / 积压 ≥10 但用户继续拍),SessionStart 报告**显式标注**:
|
||
|
||
```
|
||
❌ 你已 N 天没发新内容(最后一次发布:YYYY-MM-DD),
|
||
buffer = 0,你的频道目前处于"事实断更"状态
|
||
```
|
||
|
||
或:
|
||
|
||
```
|
||
❌ 你 buffer 已 N 条但还在新拍,
|
||
过去 N 条里有 N 条已超过 X 天未发——存在时效性流失风险
|
||
```
|
||
|
||
**不会自动尝试补救**——只显式报告,由 user 决定如何回到节奏。
|
||
|
||
---
|
||
|
||
## 子 skill 责任表
|
||
|
||
| Skill | 节奏责任 |
|
||
|---|---|
|
||
| `/cheat-init` | 问 cadence;写 `target_publish_cadence_days`;装 SessionStart hook |
|
||
| `/cheat-shoot` | 把 video folder 加 state.shoots,buffer +1 |
|
||
| `/cheat-publish` | 从 state.shoots 移除对应项,buffer -1 |
|
||
| `/cheat-status` | 计算 buffer + 颜色,输出报告 |
|
||
| `/cheat-recommend` | 按 buffer 颜色 + 选题策略给推荐 |
|
||
| `/cheat-retro` | 复盘后更新 STATUS(自动 trigger /cheat-status) |
|
||
| SessionStart hook | 调 /cheat-status 渲染 4-6 行报告,写到 STATUS.md |
|
||
|
||
---
|
||
|
||
## 关键差异:cheat-on-content vs 视频分析
|
||
|
||
| 维度 | 视频分析 | cheat-on-content |
|
||
|---|---|---|
|
||
| Cadence 来源 | 默认日更(CADENCE.md 硬编码) | 用户自填(cheat-init 问,4 档:日/隔日/周/灵活) |
|
||
| Buffer 阈值 | 0/1/2/3-5/6+(按"篇")| 0/1-2/3-5/>5(按"buffer_days"——按用户 cadence 派生) |
|
||
| 推荐 2 条策略 | 1 稳 + 1 实验 | 同 |
|
||
| SessionStart 报告 | CLAUDE.md 文字约束 + Claude 自觉 | hook 强制 + Claude 读 hook 输出 |
|