feat: minis launch, cold-start watch and delivery watch skills

Three TikTok Minis skills for Codex and Claude Code, with the cold-start
playbook and five benchmark accounts through 88776-1 (2026-09-30).
install.sh links them into ~/.codex/skills and ~/.claude/skills.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-30 15:10:54 +08:00
co-authored by Claude Opus 5.5
commit 9f9e70ea2d
18 changed files with 2250 additions and 0 deletions
@@ -0,0 +1,187 @@
{
"note": "每小时消耗与 D0 回收(USD),账户报表时区。新户关户后把它追加进来:outcome 写结果,lesson 写一句教训。",
"accounts": [
{
"short": "88775-5",
"date": "2026-09-27",
"kind": "good",
"enabled": "10:55",
"outcome": "消耗 1676.64 / 回收 2095.31 / ROAS 1.25,赚 419,未被罚,约 21:00 手动关",
"lesson": "起量第一个整点 1.29;每计划 1 条主力 CTR ≥ 23%;前期预警都自己回升;16-17 点最赚,18 点起衰退",
"hourly": {
"11": [
0.68,
0.38
],
"12": [
82.44,
106.38
],
"13": [
336.33,
453.4
],
"14": [
365.39,
396.63
],
"15": [
184.6,
242.2
],
"16": [
108.13,
200.48
],
"17": [
191.26,
289.46
],
"18": [
212.82,
211.89
],
"19": [
106.92,
118.26
],
"20": [
78.03,
73.49
],
"21": [
7.05,
4.93
],
"22": [
2.08,
2.9
],
"23": [
0.91,
0.7
]
}
},
{
"short": "88794-9",
"date": "2026-09-29",
"kind": "bad",
"enabled": "10:08",
"outcome": "消耗 218.97 / 回收 201.70 / ROAS 0.92,亏 17,未被罚,19:00 手动关",
"lesson": "起量就 0.86;CTR 全 20%+ 仍亏;按 ROAS 关 5 条后该段 1.12;跨 18 点冲回本反而回吐",
"hourly": {
"11": [
2.43,
1.88
],
"12": [
85.49,
73.76
],
"13": [
81.31,
71.89
],
"14": [
7.15,
10.63
],
"15": [
7.89,
10.8
],
"16": [
30.43,
28.81
],
"17": [
3.55,
3.63
],
"18": [
0.84,
0.47
],
"19": [
0.01,
0.0
]
}
},
{
"short": "88775-9",
"date": "2026-09-26",
"kind": "punished",
"enabled": "13:37(重开)",
"outcome": "消耗 280.69 / ROAS 1.84,约 15:00 ADVERTISER_ACCOUNT_PUNISH",
"lesson": "与剧无关猎奇图 + 性暗示;前一天开投约 4 小时被整体停用未查原因就重开;ROAS 高也被罚",
"hourly": {
"13": [
0.06,
1.03
],
"14": [
280.63,
522.34
]
}
},
{
"short": "88775-7",
"date": "2026-09-26",
"kind": "punished",
"enabled": "约 17:00",
"outcome": "消耗 1041.71 / ROAS 0.79,约 21:27 ADVERTISER_ACCOUNT_PUNISH",
"lesson": "晚上开投撞衰退时段;20 点一小时花 644 仍在亏;猎奇素材且检测 502 无人检查",
"hourly": {
"17": [
0.06,
0.0
],
"18": [
85.11,
74.36
],
"19": [
204.46,
192.82
],
"20": [
644.45,
486.49
],
"21": [
107.63,
72.95
]
}
},
{
"short": "88776-1",
"date": "2026-09-30",
"kind": "bad",
"enabled": "09:59",
"outcome": "停时消耗 38.11 / 回收 24.93 / ROAS 0.65,亏约 13,未被罚,13:13 按运营「亏损不超 20」全停",
"lesson": "20 张与剧无关猎奇图;CPM 约 0.1、CTR 20-30% 但回收差,4 部剧全在 0.5-0.75;起量第一个整点 0.64,SilverWing 在本户也亏(前两户 >1.1)",
"hourly": {
"10": [
0.04,
0.0
],
"11": [
8.23,
4.88
],
"12": [
25.11,
16.07
],
"13": [
4.73,
3.98
]
}
}
]
}
@@ -0,0 +1,59 @@
# 判断点手册
来自 2026-09-25 至 09-30 五个 WISH 图文户(`benchmarks.json`)。ROAS 一律是 D0 广告变现 ÷ 消耗,
时间一律是账户报表时区。`scripts/watch.py` 里的阈值和这里一一对应,改一边就改另一边。
样本只有 5 户,出现反例就改阈值并在 `benchmarks.json` 追加那个户。
## 六句话
1. 素材决定会不会被封,ROAS 救不了(88775-9 重开 ROAS 1.86,1.5 小时后被处罚)。
2. 起量后第一个整点看好坏:≥ 1.2 好户,< 0.9 差户(88775-5 是 1.29,88794-9 是 0.86);< 0.7 直接提示可以提前止损(88776-1 是 0.64)。
3. 关广告看 ROAS,不看 CTR(88794-9 的 20 条广告 CTR 全在 20% 以上,照样亏)。
4. 前 3 小时的小样本预警多半自己回来;单条消耗 < 5 美元不下结论。
5. 18 点是分界线,两个健康户都是 18 点后每小时 ROAS 掉到 1 附近。
6. 不跨 18 点冲回本,不在 18 点后加预算。
## 阶段
| 阶段 | 时间 | 做什么 | 不做什么 |
|---|---|---|---|
| 开投前 | 建计划当天 | 素材过红线;核对账户 id/小程序/身份/剧集页;视频转 1080×1920;推送后先不启用,核对表确认后再开 | 不用被罚户的素材,不改图「去重」 |
| 等量期 | 开投后 0–1.5h | 只看过审、曝光、有没有被整体停用;满 2h 仍 0 消耗再同步查审核 | 不关、不加 |
| 判断期 | 起量后 1–3h | 看起量后第一个整点 ROAS;找每个计划的主力广告(通常 1 条吃掉 70–90% 消耗) | 小样本不关;后台和系统数对不上时不关 |
| 放量期 | 开投 3–7h,约 13–18 点 | 盯主力的 ROAS 和 CTR;好户 17 点前可以加预算;差户进入止损 | 不因为 CTR 高就留住亏损广告 |
| 收尾期 | 18 点后或开投满 7–8h | 最近 30 分钟 ROAS < 1 就收 | 不加预算,不冲回本 |
## 判断点速查
| 动作 | 条件 | 依据 |
|---|---|---|
| 立刻关户 | 状态出现 `ADVERTISER_ACCOUNT_PUNISH`,或没人操作但计划全部变停用 | 88775-9、88775-7 被罚前后都是这样 |
| 先确认,别误报 | 全户 10–20 分钟不花钱 | 先看 TikTok 小时数(`runtime_hourly_metrics`),再同步看状态;按天数据常晚 30–60 分钟 |
| 放弃这个户 | 开投满 4h,累计 ROAS < 0.9,最近 30 分钟也 < 0.9 | 88794-9 全天 0.92;88775-7 全天 0.79 |
| 按差户处理 | 起量后连续两个整点 ROAS < 0.9 | 88794-9 12 点 0.86、13 点 0.88 |
| 提示提前止损 | 起量后第一个整点 ROAS < 0.7;运营给了亏损上限就按上限提前停,预留停后回补的几美元 | 88776-1 12 点 0.64,13:13 亏 13 停(上限 20) |
| 关户止损 | 最近 30 分钟花 ≥ 30 美元,这段 ROAS < 0.8 | 放量阶段越跑越亏 |
| 关广告 | 单条消耗 ≥ 10 美元,累计 ROAS < 0.8,最近 30 分钟也 < 0.8 | 88794-9 关掉 5 条后下一段 1.12 |
| 关计划 | 峰值 ROAS > 1 后,连续两个 10 分钟窗口回收 < 消耗 | 别把早上赚的吐回去 |
| 等一手 | 前 3h 计划 ROAS < 0.8 但单条消耗 < 5 美元 | 88775-5 前期几次预警全部回升 |
| 等一手 | 后台 ROAS 与系统数对不上,或按天数据没更新 | D0 回收晚 10–20 分钟补齐(0.48 → 0.93) |
| 加预算 | 预算用到 80%,ROAS > 1.3,17 点前 | 18 点后加的 200 美元只跑出约 1.0 |
| 收尾 | 18 点后或开投满 8h,最近 30 分钟 ROAS < 1 | 两个健康户都在 18 点起衰退 |
## 做了什么,ROAS 会回来
| 操作 | 结果 | 用不用 |
|---|---|---|
| 按 ROAS 关掉亏损主力 | 88794-9:下一段 ROAS 0.76 → 1.12,亏损 24.4 → 16 | 用,最有效的止损 |
| 等回收补齐 | SilverWing Ad 1:0.48 → 10 分钟后 0.93 | 用,小样本和数据延迟时 |
| 好户前期预警不关 | 88775-5 的几个计划从 0.5–0.7 回到全天 1.1–1.3 | 用 |
| 18 点后加预算 | 88775-5:加完两段 1.16、0.84,基本保本 | 不用 |
| 跨 18 点冲回本 | 88794-9:亏 15.99 → 17.27 | 不用 |
| 换户继续用被罚户的素材 | 88775-9 第一天整体停用,第二天处罚 | 不用,也不改图规避 |
## 素材红线
与剧无关的猎奇/搞笑图;性暗示(臀胯特写、紧身背影、食物摆成性器官);像诈骗的诱饵图(畸形身体特写、
价签商品、钱和奖品);明星、名人、政要的脸,包括恶搞表情包;别人社交帖的整屏截图(带点赞图标或水印);
烟酒、危险行为、儿童;被罚户用过的素材。系统检测只查性内容和诈骗诱饵图,检测返回 502 等于没检查。
优先用剧本身的画面:剧照、剧集截图、剧集视频片段。
@@ -0,0 +1,35 @@
# 停投小结模板
停投(运营关户、计划全部停用)或被罚时,先跑 `scripts/summary.py`,再按下面的结构写。每个数字都要能在
summary.py 的输出里找到;找不到的不写。写给投放新手看:先结论,再时间线,再原因。
```
# <户名>(<账户 id>)停投小结(<日期>)
**结果**:消耗 X,D0 回收 Y,ROAS Z,盈亏 ±N。<没被罚 / 几点被处罚>,<谁、几点关的>。
## 时间线
| 时间 | 发生了什么 |
开投 → 首次曝光 → 起量(第一个整点 ROAS)→ 预警与处理 → 最赚/最亏的时点 → 衰退 → 停投
## 钱
- 亏得最多 / 赚得最多是什么时候,多少
- 每次干预(关广告、加预算、关计划)前后那一段的 ROAS,各救回或多亏了多少
## 广告
消耗前 5 到 7 条的消耗、ROAS、CTR;哪几条 ROAS ≥ 1;哪个计划没跑起来
## 同生命周期对比
summary.py 的「同生命周期对比」表,挑 3–4 行,并说明本户像哪个基准户(好户 / 差户 / 被罚户)
## 经验
3–5 条,每条带数字;和 references/playbook.md 冲突的要明说(阈值该不该改)
```
写完之后:
1. 在 `references/benchmarks.json` 的 `accounts` 里追加这个户:`hourly` 用 summary.py 的每小时数,
`kind` 取 good / bad / punished,`outcome` 一句结果,`lesson` 一句教训。
2. 在运营的 Claude Code 记忆里存一条这个户的生命周期(结果、起量时间、第一个整点 ROAS、转折点、教训),
并链接已有的同类户。
3. 阈值被这个户推翻的,改 `references/playbook.md` 和 `scripts/watch.py` 里对应的那一条。