oracle-voicelisted
Install: claude install-skill Huanyu-Hibiki/Huanyu-Skills
# /oracle-voice — 语音起稿循环(情绪先行 · 原话保真)
> 情绪是你和观众之间架的桥——桥架好了,内容才过得去;桥没架起来,内容是断的。
> 所以起稿的原料不是 AI 的知识,是你的嘴:像和朋友聊天一样把选题讲一遍,录音,转文字。
> 文字轮只管把这个知识吃透,录音轮只管把它讲得像话。循环两三轮,稿子自然长出来。
> AI 只做一件事:把你的原话整理成候选结构——**不添加一个你没说过的观点**。
**为什么存在**:AI 直出的稿没有"你",观众感觉得到——完播低、不转化、AI 味重(破折号/排比/空心词)。本 skill 从源头绕开:稿子的每一句话都从你的录音原话里来。
## Constants
- **VOICE_ROUNDS = 2-4**(建议区间,新手可更多);`capacity_limited` 约束 → 最少 2 轮(知识轮 + 表达轮各一)
- **CANDIDATES = 3** — 候选稿数量;不满意走"再来 3 条",不一次堆 10 条
- **PRESERVE_VOICE = true** — 原话保真,硬纪律
- **DASH_BAN = true** — 候选稿与定稿禁用破折号,长句拆短句
- **EMOTION_FIRST = true** — 开场先接情绪,再进信息
- 目标字数派生:同 seed DRAFT_LENGTH 表(30s→100-200字 / 90s→250-500字 / 240s→600-1000字 / 450s→1100-2000字 / 900s→2200+字)
## Workflow
### Phase 0: 前置检查
1. 读 state → 不存在提示先跑 /oracle-init
2. **作品上下文三选一**:
- seed 刚跑完 → 对话上下文里有「录音聊天卡」(这期讲什么 / 讲给谁 / 希望观众看完做什么 / 情绪触发点)
- 用户给作品目录/编号 → 读 candidates.md 对应 entry(track / 立意 / 目标受众)
- 都没有且未带 `—transcribe-only` → 🔴 询问:只转写���裸转写模式),还是先跑 /oracle-seed?(candidate id、轨道归属、作品目录三件事都要先定,转写稿也要落对地方)
3. **建目录**:作品目录不存在(且非裸转写)→ 按 [content-folder-schema.md](../../shared-references/content-folder-schema.md) 初始化(建目录职责与 seed 共用);已存在 → 补建 `voice/` 子目录
4. **检查个人词典**:项目根 `voice-lexicon.md` ��在 → Phase 3 应用(见「个人词典」节);不存在 → 不阻塞,Phase 3 错词照常收集为「词典候选」
### Phase 1: 🔴 录音准备(守则宣讲一次,后续轮次不重复)
- **情绪先行**:第一句不要介绍自己、不要报题目——先讲"这事为什么让你想聊"(生气 / 惊讶 / 荒唐 / 触动)。情绪是桥,内容从桥上过
- **像和朋友聊天**:不写稿、不背稿、不怕跑题、不怕停顿(停顿不会被转成文字,空白不生成内容);忘了细节就说"这个我回头查一下",可以中途停下查完再录
- **长度自由**:对目标时长心里有数即可(派生表),录音 5-15 分钟随便讲,转写稿再收
- 工具:任意录音设备(手机