Back to skills
SKILL.md
Oracle Seed
ASecurity跟用户对话讨论选题——**默认一次一个**,用户主动给主题或经历,AI 围绕用户的输入深挖、提炼角度。不是 AI 拿三个开放问题追用户,也不是一次 dump 15 个候选。**选题定稿后默认引导 /oracle-voice 语音起稿**(用户的录音原话才是稿子原料);AI 直出 draft 降级为显式降级路径(用户点名才走,脚手架警告)。触发词:"找选题"/"我想做一条 X"/"最近有个想法"/"seed"/"启动种子"。可选 batch 模式:--batch 5 走 brainstorm N 候选 + 写 N draft(同样默认接 voice)。
- 2 stars
- 0 votes
- 0 copies
- 2 views
- Added September 19, 2026
Security analysis
100/100Pro scans all 2 files and shows the line behind each finding
npx -y skills add Huanyu-Hibiki/Huanyu-Skills --skill oracle-seed --agent claude-codeAre you the author of Oracle Seed?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/huanyu-hibiki-oracle-seed)---
name: oracle-seed
description: 跟用户对话讨论选题——**默认一次一个**,用户主动给主题或经历,AI 围绕用户的输入深挖、提炼角度。不是 AI 拿三个开放问题追用户,也不是一次 dump 15 个候选。**选题定稿后默认引导 /oracle-voice 语音起稿**(用户的录音原话才是稿子原料);AI 直出 draft 降级为显式降级路径(用户点名才走,脚手架警告)。触发词:"找选题"/"我想做一条 X"/"最近有个想法"/"seed"/"启动种子"。可选 batch 模式:--batch 5 走 brainstorm N 候选 + 写 N draft(同样默认接 voice)。
argument-hint: "[— batch: N] [— track: <id>]"
allowed-tools: Bash(*), Read, Write, Edit, Glob, WebFetch, Skill
---
# /oracle-seed — 选题对话(默认)/ 批量 brainstorm(可选)
核心是**跟用户讨论选题**,不是机械 brainstorm。好内容来自用户的真实经历 + 观察 + 情绪——这些 AI 不可能凭空生成。AI 的角色是**听用户讲 → 帮提炼角度 → 按轨道写一份 draft**。
**默认模式**:对话式一次一个。**Batch 模式**(`--batch N`):brainstorm N 候选 + 写 N 份 draft,给"完全没想法 + 想批量初始化"的用户。
## Overview
```
[Phase 0: 加载 context(state + rubric + patterns + 历史 + benchmark)]
↓
[Phase 1: Mode 分流 — A 有具体主题 / B 只有方向 / C 没想法 / Batch]
↓
[Phase 1.5: 轨道分流(init 注册的轨道 + 按占比补稀)]
↓
[Phase 2A: 深挖(带选项反问,≤4 轮)→ 三关检验 → 角度收敛]
↓
[Phase 2A-2: 钩子设计 + 兴趣属性声明 + 互动设计]
↓
[Phase 3: 算 candidate id + 落候选池 + 初始化作品目录]
↓
[Phase 4: 起稿路由 — 默认 voice(录音聊天卡 → /oracle-voice);AI 直出稿为显式降级]
↓
[Phase 5: 下一步清单 + 询问继续]
```
## Constants
- **MAX_DEEP_DIVE_TURNS = 4** — 收敛阶段最多 4 轮反问
- **DRAFT_MODE = voice** — 确认角度后默认引导 /oracle-voice 语音起稿(录音原话才是稿子原料);用户点名"你直接写"才走 AI draft 降级路径;"我自己写" → 交还用户
- **DRAFT_LENGTH** — 派生自 `typical_duration_seconds`:30s→100-200字 / 90s→250-500字 / 240s→600-1000字 / 450s→1100-2000字 / 900s→2200+字
- 深挖弹药:`references/xu-zuohao-positioning-distill.md` §5(选题挖掘问卷)+ `references/dbskill-essence-distill.md` §1(定位选题)
## Workflow
### Phase 0: 前置检查 + 加载 context
1. 读 state → 不存在提示先跑 /oracle-init
2. 读 `rubric_notes.md`(粗打分用)+ `script_patterns.md`(选结构用)
3. **context 来源 A**:已有 predictions(含 init import 的 reconstructed)——用户历史
4. **context 来源 B**:`benchmark.md`(如 imported)——对标账号
5. 检查入参决定 Mode
**context 优先级**:用户数据能驱动方向(该轨样本 ≥10,或出现 ≥3 个与 benchmark 不一致的强样本)→ A 主导;数据少 + benchmark 有货 → B 主导;都缺 → 输入 + 抓热点,先跑 /oracle-study --mode benchmark。
### Phase 1: Mode 分流
- **含具体名词 + 情绪/经历词**("我昨天开会...")→ **Mode A**
- **含方向词但无具体内容**("想做职场方向")→ **Mode B**:"太广。最近哪件具体事让你想做这个方向?a) 真实经历 b) 读到的内容 c) 长期困惑——挑一个开始讲"
- **显式说没想法** → **Mode C**:先问"最近有没有一件小事让你特别[开心/生气/荒唐/有意思]?一句话也行"(碎片素材优先于纯热点)→ 再抓热点 + 读历史 → **提议 1 个**(不是 5 个)
- **显式 `--batch N`** → 3 清单问题 → brainstorm 15 候选 → 挑 N → 写 N draft
- **纯触发无附加内容** → 唯一一次入口问题("有主题直接说 / 有方向告诉我 / 没想法说'帮我想' / 批量说 batch N")
### Phase 1.5: 🔴 轨道分流(init 注册的轨道,必确认——决定 rubric/review 链/校准池归属)
> 这是"按哪套 rubric 打分、走哪条 review 链、算哪轨校准样本"的决策——不能默认猜。
**判定规则**:
1. **入参信号明确**(内容明显属于某轨——如转化轨用户说"讲产品案例"、破圈轨用户说"蹭热点破圈")→ 直接判定并告知"这期走 <轨名>(从你的入参判断)",用户不反对就继续——**不要明知还问**
2. **信号不明确** → 必须显式询问,列出 content-plan 注册的轨道 + 各轨一句话说明 + 例子,附"不确定——你给一句话我帮判断"
3. **用户说"不确定/你看着办"** → 按 mix_ratio 补稀轨(读 state 看最近发布哪轨占比低于计划)+ 标 `track_inherited: true`(bump 时权重略降)
**分流后路由**:
- 转化类轨道 → 加载 `references/conversion-track-playbook.md`(选题必过"极刚痛点 6 问")+ starter 用 conversion-video
- 破圈/认知类轨道 → starter 用 opinion-video
- 交叉题(跨两轨)→ 用户明确要求才算;两轨 rubric 各打一次
**review 链路由**(写完 draft 后):转化轨 → oracle-open-source;破圈/认知轨 → oracle-who-for。**不要错配**——拿不准回 state 查 `tracks.definitions[].review_skill`,不要凭印象。
### Phase 1.6: 约束检查(state.stage_constraint)
读 `state.stage_constraint`(字段缺失按 `none`;判定表见主 SKILL.md「stage_constraint」段):
- `positioning_unclear` → 本期优先 Mode A 经历锚点(init Q4 锚点库优先于热点);走 Mode C 热点路径前提示"定位未明期追热点易产出同质化内容——建议先挖 1 条你自己的经历"
- `expression_unstable` → 提示"/oracle-study --mode practice 拆 1-2 条对标稿补 pattern 后再批量起稿"
- `capacity_limited` → 单条深做优先于 batch;提示规划 derivative(一期多发)
- `conversion_blocked` → 转化轨选题必过 conversion-track-playbook"极刚痛点 6 问"(Phase 1.5 已加载时不重复)
- `none` → 无额外动作
约束与轨道分流正交:先 Phase 1.5 轨道、再本节约束,叠加生效。
### Phase 2A: Mode A 深挖
围绕用户给的内容深挖,**不切到别的 topics**。
**反问类型**(按场景挑,一次只问 1 个,**必须带选项**):触发瞬间("最初是哪个瞬间?a 某句话 b 某件事 c 某个数据")/ 情绪锚点("最让你[生气/荒唐/有意思]的是哪个细节?")/ 角度选择(a 现象批判 b 自我反思 c 泛化)/ 受众想象("说给哪种人听?听完会怎么转发?")/ 反对意见探测("有人反驳说 X,你怎么回?")/ 痛点裂变(大痛点拆 3-5 个小痛点,各自可独立成一条)/ 立意提炼("一句话简化成最易共情的视角?")。弹药不足 → 提炼文档 §5 问卷("五分钟跨年演讲你会说什么?"等)
**反问纪律**:一次 1 问带选项(选项是决策锚点,不是从零回忆);≤ MAX_DEEP_DIVE_TURNS 轮,超过主动收敛;用户回答变短/不耐烦 → 立刻收敛
### 三关检验(收敛前强制过)
角度收敛后、写 draft 前,过三关——少一条,内容做到死也拿不到及格分:
**① 别自嗨(外行检验)**:发给不懂行的家人朋友,他们想看吗?窄到只有同行在乎的题,天花板就是同行数量。
**② 记得住吗(酒局分享测试)**:想象酒局上你愿意拿出这个选题分享吗?关键不是"广不广",是**听完能不能复述给朋友**——复述的关键是"有没有一个让人记住的点"(金句/反差/极端案例)。
**③ 谜题(极端到极端缺口)**:素材有没有"从一个极端到另一个极端"的变化(复仇故事/名著弧线)?用一句话写出这个缺口——写得出 = 有谜题;写不出 = 素材太平,结构再好也救不了。
任何一关不过 → 建议换角度(回深挖)。
### Phase 2A-2: 钩子设计 + 兴趣属性 + 互动设计
> **AI draft 降级路径专用前置**。voice 默认路径下本节**不在 seed 执行**——钩子/兴趣属性/互动设计由 oracle-voice Phase 5-6 基于**真实转写材料**声明(规则以本节为单一来源)。
**开场原型选型(结构层,先于文案层)**:读 [references/hook-prototypes.md](../../references/hook-prototypes.md),按选题匹配 1 个主原型(不混用),draft header 的 `开场策略` 字段写明原型名 + 起手证据。原型决定骨架(第一秒放什么),下面的钩子 6 方向决定锐度(观众为什么停下)——两层都要过。
**行为触发点前置(红线)**:观众看完前 5 秒知道为什么要继续看吗?
- ❌ 错误开头:自我介绍 / 身份锚点 / 连续剧 callback("跟我有什么关系")
- ✅ 正确开头:直接亮价值 / 信息缺口+悬念 / 争议立场+身份认同
- 自我介绍可以作为**第二句**,不能是第一句
**钩子 6 方向自检**(开头 5 秒至少命中 2 个):
| 方向 | 原理 |
|---|---|
| ① 预期违背 | 大脑对超预期信号本能停下 |
| ② 自我参照 | 与"我"有关的信息天然敏感 |
| ③ 信息缺口 | 想知道大于已知,痒点 |
| ④ 冲突 | 对冲突/争议的生存本能级敏感 |
| ⑤ 身份反差 | 反常规的人生选择天然好奇 |
| ⑥ 利益承诺 | 直接告诉能获得什么,降低决策成本 |
0 命中 → HP≤2 重写;1 个 → HP 3;2 个 → HP 4;3+ → HP 5。流量轨常缺信息缺口(开头就给结论断了悬念);转化轨常缺冲突(习惯走共情)——每期至少补一次短板方向。
**兴趣属性声明**(每条内容只能选 1 主属性 + 最多 1 辅属性——什么都想要 = 什么都得不到):
- 信息型(来拿干货,看藏播比)/ 情绪型(来找共鸣,看评论)/ 传播型(来看新鲜,看转发)
- 选了主属性但内容不支撑 → 红旗(选"信息型"但没有可截图清单)
- 不选 → draft 退回("还没想清楚观众为什么来看这条")
**互动设计**(写入 draft 的 `## 互动设计` 段,不是 metadata 填空):
- 情绪触动点 ≥1(戳痛点/风险落差/预期落差/身份认同)——决定用户"想不想说话"
- 评论触发器必选 1(争议立场/留白 vs 选择题/痛点提问——**不用"你怎么看"这种开放高门槛**)——决定"怎么开口"
- 收藏触发点(可截图清单+口播提示)+ 转发触发点(转给谁+理由)
- 情绪触动点要**中段就埋**,不堆结尾 5 秒
**用户视角检查**(写前写后各一次):开头是用户痛点还是我的自我介绍?产品介绍讲"这帮你做什么"还是"有什么功能"?连续 2 段没有"你" → 标出修正。
**信息排列检查**(倒金字塔):删掉最后 30% 内容——观众仍能获得核心价值吗?不能 → 核心信息前移。
### Phase 2B/2C/2D
- **Mode B**:收敛到具体经历(三选一引导)→ 转 Mode A
- **Mode C**:碎片素材 + 热点交叉 → 提议 1 个;转化轨优先用"核心词 × 对象词 × 痛点词"连连看内部筛 1 个(过 6 问才留)
- **Batch**:3 清单问题(兴趣/调性/红线)→ 15 候选 → 挑 N → 写 N draft
### Phase 3: 落候选池 + 初始化作品目录
1. 算 id:`sha256("seed-" + 立意 + 触发时间)[:12]`
2. 写 entry 到 `candidates.md`([candidate-schema.md](../../shared-references/candidate-schema.md) 格式):`tier=tier1` + `track=<轨道id>` + `read_status=deep_read`
3. **初始化作品目录**(schema 见 [content-folder-schema.md](../../shared-references/content-folder-schema.md)):`<NNN>_<工作标题>/`(NNN 从 state 已登记作品数派生,**先看已有作品目录的实际结构**照着建)
4. 只建必需目录——audience-brief.md 等 review 产物后续流程才建
### Phase 4: 起稿路由(🔴 默认 voice,AI 直出稿必须用户点名)
**voice 路径(默认,DRAFT_MODE=voice)**:Phase 3 落候选池 + 建目录完成后,输出「**录音聊天卡**」并引导 /oracle-voice:
```
🎙️ 录音聊天卡(<NNN>_<工作标题> / 轨:<轨名>)
- 这期讲什么:<一句话立意>
- 讲给谁听:<该轨核心受众一句话>
- 希望观众看完做什么:<本轨成功指标对应的动作>
- 情绪触发点:<深挖出来的那个瞬间/细节>
像跟朋友聊天一样讲 5-15 分钟,情绪先行,不怕跑题不怕停顿。
说"录音起稿"开始 → /oracle-voice(录音 → 转文字 → 文字轮吃透知识 → 表达轮 → 3 候选稿)
```
聊天卡四要素来自 Phase 2A 深挖结论,不新造信息。
**AI draft 降级路径(用户明确说"你直接写/AI 起稿"才走)**:
**写前必读 script_patterns.md**(cheat sheet 选结构;骨架阶段用 starter 通用框架)。
**三条反编造铁律**:
1. **禁止编造数据**——draft 任何段落不得出现用户没提供的具体数字。用户没给数字 → 用机制做钩子("一天三件事")或问"有没有真实数字可用"——**绝不自己编**
2. **禁止编造功能**——不得写产品实际没有的功能/未验证的能力。写前问"你的产品目前有哪些能力?这期演示哪个?"——能力不够支撑故事就商量调故事线
3. **禁止越界写发布文案**——seed 产物只有 draft 正文 + 互动设计段(简介归 description,封面归 cover)
**draft 格式**:
```markdown
# [立意标题]
> ⚠️ **Draft by AI — 你必须改写后再拍**
> 这是脚手架不是成品。你的语气/节奏/个人经历无法 AI 生成。
> 1. 直接在本文件改写(加语气/经历/真实金句,砍铺垫砍术语)
> 2. 改完跑 /oracle-predict
> 3. 做完跑 /oracle-shoot
**Article ID**: <12 位 hash>
**Track**: <轨道 id + 轨名>
**调性**: [讨论得出的]
**目标时长/字数**: [按时长派生]
**结构选型**: [pattern 编号]
**开场策略**: [行为触发点类型 + 命中的钩子方向]
---
[draft 正文,段落版,每段 100-300 字——不写逐行字幕格式]
## 兴趣属性声明
[主属性 + 辅属性 + 判断依据]
## 互动设计
[情绪触动点 / 评论触发器 / 收藏转发触发点 / 评论区运营预案]
```
### Phase 5: 下一步清单
**voice 路径**(聊天卡已给):
```
✅ 选题已定:<NNN>_<工作标题>/(候选池已登记)
说"录音起稿" → /oracle-voice;或"状态"看全局。
下一篇做什么?(直接说 / "今天就这样")
```
**AI draft 降级路径**:
```
✅ Draft 写完:<NNN>_<标题>/scripts/<date>_<id>_<short>.md
接下来你可以:
- 改写 draft(原文件改)——或"录音起稿"用你的原话重讲(推荐)
- "给我标题" → oracle-title;改完 "打分这篇 ..." 看 composite
- [按轨道] "这是拍给谁的 ..." / "自我开源 ...";要发 → "启动预测 ..."
下一篇做什么?(直接说 / "今天就这样")
```
## Key Rules
1. **AI 不主动开放问**——只在纯触发时问一次入口问题,其他时候等用户给输入再深挖
2. **一次一个选题**;批量必须显式 --batch
3. **反问带选项 + ≤4 轮 + 不耐烦就收敛**
4. **深挖围绕用户给的话题**,不切平行话题
5. **轨道必确认**——信号明确直接判定告知;不明确必问;不猜、不默认、不用 ratio 兜底(除非用户说"你看着办"→ 补稀轨 + 标 inherited)
6. **draft 是脚手架**——header 加醒目"必须改写"警告
## Examples(选题 → 原型匹配 → 钩子,示范判断路径)
### 例 1:Mode A 经历类
> 用户输入:"我昨天用 AI 一下午写完了以前要一周的投标文件,特别震撼"
三关:外行检验过(投标慢是工程人共识痛点)/ 复述点:"AI 一下午 = 我一周" / 缺口:一周手动 → 一下午 AI 的极端落差成立。原型:**同题成本对照**(人 vs AI 时间成本落差自现),起手证据 = 投标文件截图/计时。钩子:③ 信息缺口 + ⑥ 利益承诺。兴趣属性:信息型(可截图对照清单)。
### 例 2:Mode C 热点类
> 用户没想法,当天热点:"某平台更新了推荐算法"
不直接讲算法新闻(小变化不抓人)。原型:**事件公布引出知识冲突**(小更新 → 流量分配逻辑长期争论 → 对创作者意味着什么)。钩子:① 预期违背("这次更新杀死的不是大号,是中号")+ ② 自我参照。反面示范:套"生活传说追查"就错了——没有"多人同款问题"证据,硬套是编造。
## Refusals
- 「跳过深挖直接写」→ "OK 但质量可能差——给我一句话立意我就写"
- 「AI 替我决定 topic」→ 拒绝 Mode A/B 路径;真没想法 → Mode C 给 1 个让用户判断
- 「一次写 5 个 draft」→ 必须显式 --batch 5
- 「懒得改写直接拍 AI draft」→ 警告"AI 稿 ER 偏低会污染校准数据";坚持则标 `unmodified_ai_draft: true`
- 「帮我编个数据让钩子更有冲击力」→ 拒绝。反编造铁律 #1
## Integration
- 上游:oracle-init(轨道注册)/ oracle-trends(候选池)
- 下游(默认):oracle-voice(语音起稿循环)→ oracle-title → description → cover → no-ai-slop → 按轨道 review → oracle-predict
- 下游(降级):AI draft 直出后同上(跳过 voice)
- draft header 的 track 字段是 prediction/candidates 链路的轨道 source of truth
- 录音聊天卡是 seed → voice 的交接物;voice 消费 candidates.md entry 的 track/立意/受众
Files in this skill
- SKILL.md
- test-prompts.json
Attribution
Comments
Loading comments…