# Oracle Compass Retro

> 罗盘复盘 / 账号级诊断。每 2 期已复盘作品后提醒执行，以两期为诊断单元：五维增量数据闸门（封面点击率/平均播放时长/完播率/跳出率/短完播）→ 选题/表达问题分类（A/B 类）→ 四阶段成长诊断 → 变现与信任框架检查 → 协作自进化 → 下一期动作清单 + **内容规划修订候选**（轨道占比/增删轨建议，只提候选不代改）。触发词："罗盘复盘"/"账号诊断"/"阶段复盘"/"成长复盘"/"这两期有什么问题"/"复盘我们的协作"。

- Skill: `huanyu-hibiki/oracle-compass-retro` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add huanyu-hibiki/oracle-compass-retro`
- Raw SKILL.md: https://api.skillmd.com/api/skills/huanyu-hibiki/oracle-compass-retro/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: Huanyu-Hibiki (https://skillmd.com/u/huanyu-hibiki)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/huanyu-hibiki/oracle-compass-retro

---


# /oracle-compass-retro — 罗盘复盘（账号诊断 + 规划修订候选 + 协作自进化）

每 2 期已复盘作品后提醒执行（oracle-retro 每期校准预测；本 skill 以两期为单元校准**创作者、内容规划和协作系统**）。

它回答五个问题：
1. 这两期暴露了什么内容问题？
2. 账号卡在四阶段的哪一关？
3. **内容规划（轨道/占比）要不要修？**
4. 下一期保留/删除/强化/实验什么？
5. 这次 AI/skill 协作哪里拖后腿，下次规则怎么变？

## 边界

- **不改预测段**（immutable）
- **不直接改 rubric 公式**——只写候选观察，升级走 /oracle-bump
- **不直接改 content-plan**——只写修订候选，**用户拍板后**同步 state（content-funnel-protocol 修订机制）
- **不直接改 skill**——协作问题写候选规则；连续复现或用户明确确认才改
- **不替代 oracle-retro**——没实绩数据可做初步创作复盘但标 `data_incomplete: true`
- 节奏：凑满 2 期新复盘后提醒，等用户确认再跑；不足 2 期被叫起只回提醒不诊断；手动触发不受限

## Inputs

| 来源 | 用途 |
|---|---|
| `.oracle-state.json` | 账号状态 / tracks / baseline / 样本数 |
| `content-plan.md` + `user-profile.md` | 长期定位 / IP 内核 / 轨道规划（优先级高于现场提问） |
| `audience-profiles.md` | 各轨画像（对照实际观众） |
| `rubric_notes.md` / `script_patterns.md` | 当前预测逻辑 / 写作 pattern |
| 各作品 predictions + report.md + 定稿 | 历史表现与实绩 |
| `python <skill包>/tools/score-curve.py <项目根> --json` | 预测系统收敛（分轨偏差方向 / bucket 命中率）——账号级诊断素材：预测持续高估是预期管理问题，不是内容问题 |
| `benchmark.md` / `study/**` | 对标参照 |

## Workflow

### Phase 0: 定诊断单元

1. 用户传两期 → 直接用；缺省 → 取最近两期已发布且已复盘作品（按 published_at）
2. 距上次罗盘复盘新增复盘作品 <2 → 不跑全量，只提醒"还差 N 期凑满单元"
3. 中文路径 glob 失败 → 用目录读取二次确认，不凭 glob 判定不存在
4. 校验两期都跑过 oracle-retro——没有 → 允许继续但标 `data_incomplete: true`

### Phase 1: 汇总事实（不下判断）

**数据获取（按优先级）**：
1. **自动采集（推荐）**——项目根有 `content-analytics.db`（快照库）时：
   ```bash
   # <PY> = auto-collect 自带 .venv 的 python（见包根 SKILL.md「Adapter 铁律」；Windows 是 .venv/Scripts/python.exe）
   # 快照过期（最近 run 距今 >3 天）先补采：
   <PY> <包根>/adapters/perf-data/auto-collect/collect.py all --days 30
   <PY> <包根>/tools/snapshot_store.py archive --db content-analytics.db --input <unified.json>
   # 出看板（diff + 分位阈值 + 规则建议 + 五维 A/B 粗分）：
   <PY> <包根>/tools/dashboard.py --db content-analytics.db --markdown
   ```
   dashboard 输出直接填本 Phase 事实表 + Phase 2.5 闸门 + Phase 4.5 建议素材。
   🚫 **采集只走上面这条脚本路径——禁止 computer-use/GUI 自动化/亲手开浏览器当采集器**（确定性脚本才能保证校准数据可信；脚本失败走下面的 manual 分支，不是换方式）。
2. **manual paste**——无快照库时按原流程问用户要数。

**🔴 登录态协议（采集报"未授权"时照此办理，禁止自由发挥）**：
- 登录态存在 `~/oracle-bone-profiles/<平台>`（Playwright 专用持久 profile）——**与本机日常 Chrome/Edge 是否登录无关，不要让用户检查日常浏览器、不要挨个开浏览器试**
- 网页登录态通常 1-2 周过期——"之前能采、现在要扫码"是正常现象，不是故障
- headful 采集遇到失效：脚本自己会弹登录页**等你扫码（3 分钟）**，此时明确告诉用户"现在请扫码"，耐心等，不要催
- headless 采集遇到失效：脚本退出码 2 并打 `NEEDS_AUTH=<平台>`——**唯一恢复动作**是逐平台跑 `collect.py <平台> --auth-only`（弹浏览器等 10 分钟），完成后重跑采集
- 部分平台失效：只对失效平台跑 auth-only，其余平台数据照常使用，不因单平台失效放弃整轮复盘

```markdown
## 1. 两期事实
- 作品 / 轨道 / 平台 / 发布时间 / 时长
- 播放 / 点赞 / 评论 / 收藏 / 转发
- 赞播比 / 评播比 / 收播比 / 分播比（公式+结果）
- 五维增量指标（后台没有写 N/A，不脑补）
- Top 评论关键词
```

### Phase 2: 五维增量数据闸门（两期必跑）

| 指标 | 公式 | 方向 |
|---|---|---|
| 封面点击率 | 点击÷曝光 | 越高越好 |
| 平均播放时长 | 总时长÷总次数 | 越长越好（参考：≥总时长 30% 合格） |
| 完播率 | 完整播放÷总播放 | 越高越好 |
| 短跳出率（2s/3s） | 短播放÷总播放 | 越低越好 |
| 短完播率（5s） | >5s 播放÷总播放 | 越高越好 |

数据源：auto-collect 采集的详情指标（`data_normalizer` 已做口径标注——3s/2s 跳出率不硬统一，比较时同口径对比）；无详情数据时后台没有的维度写 N/A。

**A/B 问题分类**（dashboard.py 的 `ab_classification` 自动粗分，AI 复核）：

| 类型 | 数据特征 | 本质 | 解法方向 |
|---|---|---|---|
| **A 类选题问题** | 点击率低 + 短跳出高 + 短完播差（不点进来、不停留） | 选题无法让人产生兴趣 | **同领域抄选题**（长期被验证的优质选题/其他平台同领域） |
| **B 类表达问题** | 点进来了但中途流失、完播/时长差 | 呈现与讲述留不住人 | **异领域抄结构**（脱口秀/TED/故事类——学悬念、打破预期、收尾） |

```
- A/B 分类：作品A = X 类（证据：具体数字）；作品B = ...
- 两期连续同类 → 账号级问题，进 Phase 3 主诊断
- 单期孤例 → 该期执行问题，进 Phase 6 动作清单
```

**纪律**：分类必须引用具体数字（"点击率 2.1%、2s 跳出 68%"），禁"偏低"式含糊话。

**quantile 建议联动**：dashboard.py 的 `recommendations`（高互动低播放 / 高播放低互动 / 增长最快旧作品）在 plays>0 样本上算分位阈值生成，每条带证据作品——直接作为 Phase 3 问题表和 Phase 6 动作清单的素材（建议里的 actions 已对接 oracle-title / oracle-derivative / oracle-who-for / oracle-apprentice 等子 skill）。样本 <4 条时 dashboard 不给建议（分位不稳定），回到 AI 手工诊断。

### Phase 3: 四阶段罗盘诊断

| 阶段 | 核心问题 | 主要证据 | 常见反证 |
|---|---|---|---|
| 1 新手入门 | 平台和用户知道你是谁吗？ | 主题一致、定位清晰、评论能复述定位、曝光稳定 | 播放极低评论少；只记住信息不记住人 |
| 2 赛马竞争 | 同类内容有赢面吗？ | 完播、评论率、前 30 秒留存、故事性 | 赞高但完播评论低；有价值但不好看 |
| 3 价值输出 | 内容值得保存转发吗？ | 收藏率/转发率、"收藏/转给朋友"评论 | 播放高收转低；热闹无复用价值 |
| 4 IP 成型 | 用户追你这个人吗？ | 复看、追更评论、关注转化、用户复述你的框架 | 只说内容有用，不说你这个人 |

输出：当前主阶段 + 次级信号 + 证据 + **反证**（必须有，防自嗨升级）+ 置信度。允许混合状态（"定位接近 2 但分发仍在 1"）。

**规则**：阶段不是奖章是策略——判断阶段只为决定下一期优化什么指标。

**约束回写**：综合 Phase 2 A/B 分类 + 本阶段诊断 + Phase 3.5 问题表，判定当前最大约束（四类表见主 SKILL.md「stage_constraint」段）。🔴 CHECKPOINT：展示拟写入的 `state.stage_constraint`（值 + 依据 + 升级条件）→ 用户确认后更新（含 updated_at）。与上次判定**不同向 → 只记候选不切换**，连续两次同向才切换（防单期噪声）；用户明确拍板可立即切换。

### Phase 3.5: 内容问题诊断

结合 content-plan / user-profile / script_patterns / 数据评论：

```markdown
## 3. 本期主要问题
| 问题 | 证据 | 严重度（L1 致命/L2 重要/L3 可优化） | 下一期改法 |
```

必查：定位清晰度（一眼看出你是谁讲什么为什么看）/ 钩子与谜题（能撑全片的洞而非一句开场）/ 故事性与完播 / 价值密度（值得收藏转发复看吗）/ IP 记忆点（强化账号内核了吗）/ 商业闭环（服务长期变现路径吗）。

### Phase 4: 变现与信任框架检查

- 变现闭环：这两期最终服务什么长期商业路径？
- 降低决策风险：观众看完更敢信你/试你产品/找你合作了吗？
- 真材实料：有真实经历、真实过程、真实结果吗？
- 抗压能力：暴露的问题被正视，还是被话术遮住？
- 方向匹配：内容方向与变现目标匹配吗？

非营销内容也必须回答"它如何积累未来变现所需的信任资产"。

**定位验证回路**（引自做号提炼 §3.3）：转化轨检查私域质量（咨询者是不是目标客户）/ 评论区职业构成（画像准不准）/ 转化率链路（看到→咨询→付费哪一环断了）——画像偏了回 content-funnel-protocol 修订画像候选。

### Phase 4.5: 内容规划修订候选（本 skill 独有）

对照 state.tracks 的规划与两期实际执行 + 各轨 success_metrics 表现：

```markdown
## 4.5 规划修订候选（只提候选，用户拍板后才改 plan/state）

- 占比建议：[如"转化轨连续 3 期指标达标且咨询爆发，建议 40/60 → 30/70"]（依据：具体数据）
- 增删轨建议：[如"破圈轨连续 3 期垫底且与画像不符，建议降占比或删轨"]（依据）
- 画像修订候选：[如"评论区实际人群与 audience-profiles 的画像 X 偏差大——建议修订该轨画像"]
- 成功指标修订候选：[如"该轨指标'涨粉'连续无信号，建议换成'同频评论数'"]
- 预测系统修订候选：[score-curve 显示某轨连续 N 期同向偏差（如持续高估 40%+）→ 建议跑 /oracle-bump（方向性偏差）或 --bucket-only（命中低但方向随机）；预测系统健康则明说"预测收敛良好，无需动"]
- 反向校验：[规划没问题的证据——避免为改而改]
```

**边界**：修订建议必须双向（有"改"的建议也要有"不改"的校验）；🔴 **CHECKPOINT · 拍板门**——用户明确拍板前只出候选不动 plan/state，拍板后同步 `state.tracks`（definitions + mix_ratio + mix_ratio_note 追加修订记录）和 content-plan.md / audience-profiles.md。

### Phase 5: 协作自进化（SkillOpt 式）

把本次协作当一条 trajectory，做候选规则提取，**不直接改 skill**：

| 概念 | 对应 |
|---|---|
| trajectory | 本次从输入到产出的完整协作过程 |
| scored failure | 用户指出的错误、返工、多余提问、误判 |
| bounded edits | 候选规则（skill 文档一小段的新增/删除/替换） |
| validation gate | ≥2 次复现 / 用户明确确认 / 不破坏三原则 |
| 正式规则 | 通过验证后才进 SKILL.md |

输出：本次暴露的问题（问题/证据/根因/影响）+ 候选规则修改（类型/目标文件/候选文本/验证门槛/状态 candidate）。

必查协作问题：是否先读了 state / content-plan / rubric 再提问；是否因路径或 glob 失败误判状态；是否问了已有文件能回答的问题；是否把用户当 cold-start 而其实有校准池；是否把外部方法论直接硬编码而非先作待验证假设。

### Phase 6: 下一期动作清单

```markdown
## 6. 下一期动作
- 保留： / 删除： / 强化： / 必须实验的变量： / 不要再犯：
- 下一期最小可执行改稿动作：
```

每条具体到稿件或制作层面，不写"提升内容质量"空话。

### Phase 7: 落盘

写作品目录 `compass-retro.md`（两期单元写到较新一期目录下）。协作复盘明显失误时可选写 `meta-retros/<date>_collaboration-retro.md`。

### Phase 8: 候选观察转交

```markdown
## 7. 候选观察转交（不自动追加，用户确认后进）
- rubric_notes.md 候选： / script_patterns.md 候选：
- content-plan / audience-profiles 修订候选： / skill 改进候选：
```

## Key Rules

1. **先读已有文件再提问**——content-plan / user-profile 能回答的不问用户
2. **数据和判断分离**——先事实后诊断
3. **证据和反证都写**——阶段判断必须有反证
4. **规划修订只提候选**——占比/轨道/画像是用户战略决策
5. **SkillOpt 只给候选不自动自改**
6. **路径现实优先于标准约定**——尊重用户已有工作台结构

## Refusals

- 「直接把感受写进 rubric 公式」 → 拒绝，写候选观察走 /oracle-bump
- 「阶段到 3 了以后只看收藏转发」 → 拒绝；阶段判断须数据支持且允许混合
- 「把规划占比直接改了」 → 拒绝；只出修订候选等拍板
- 「把这次 AI 错误立刻改进所有 skill」 → 用户确认具体规则文本才改；否则写候选

## Integration

- 上游：两期完成 oracle-retro 后运行（也可手动）
- 并行参考：who-for 的受众假设 / open-source 的信任假设
- 下游：候选流向 rubric_notes（bump）/ script_patterns / content-plan（修订拍板）/ skill 改进

