7.0 KiB
7.0 KiB
Cadence Protocol(节奏协议)
被这些子 skill 引用:cheat-status、cheat-recommend、cheat-shoot、cheat-publish、SessionStart hook。
固化"哪天该做什么"——避免用户驱动每一步。让 Claude 在会话开场就能回答"我现在该拍 / 该发 / 该复盘"。
三层节奏
日级(每天 / 每次会话开场)
- SessionStart hook 自动渲染 4-6 行报告:
- 📦 Buffer 状态(颜色 + 数量)
- ⏰ 待复盘到期项
- 🎯 候选池 top 3(粗排)
- 📅 上次抓热点时间
- ⚠️ 关键 to-do
- 不主动开始任何动作——等用户决定
事件级(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 的 Pattern N)
- composite 不一定 top,但有"信息价值"——复盘后能让 rubric / pattern 库前进
Buffer 颜色对推荐的覆盖
| Buffer 颜色 | 推荐策略覆盖 |
|---|---|
| 🔴 红 | 只推稳分 top 1——不推实验性。"今天能拍出来就行" |
| 🟠 橙 | 1 稳 + 1 实验,但建议优先拍稳分 |
| 🟢 绿 | 标准 1+1 |
| 🔵 蓝 | 暂停推荐——回 "你 buffer 积压了,先发存货 + 复盘" |
关键约束(任何颜色都遵守):
- 同一 category 连发 ≤ 2 条
- 已发过的 candidate(标 done)不推
- 用户主动跳过的 candidate(标 skip)6 个月内不推
节奏元规则
按优先级(高→低):
- Buffer 优先于评分:红色警戒时不要因为"等更好的选题"而断更——拍 composite 7.5 的稳分比"等明天的 9.0"安全
- 复盘优先于新拍:T+RETRO_WINDOW_DAYS 到期当天先复盘再考虑拍新的——否则数据信号丢失,rubric 校准受损
- 同步优先于积压:buffer 满(蓝色)时不要再拍,先发掉再说——已拍议题的时效性会衰减
- 实验性最多 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 输出 |