# Oracle Simulate Audience

> 换位思考模拟 · 评论区预判。基于 init 用户画像（audience-profiles.md）+ 文稿，分别模拟「核心受众」和「一般关注」两类人群的真实评论感受，差距诊断后给修改意见。发布前压力测试。触发词："模拟评论"/"换位思考"/"评论区预判"/"audience simulate"/"看看会怎么评论"。

- Skill: `huanyu-hibiki/oracle-simulate-audience` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add huanyu-hibiki/oracle-simulate-audience`
- Raw SKILL.md: https://api.skillmd.com/api/skills/huanyu-hibiki/oracle-simulate-audience/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-simulate-audience

---


# /oracle-simulate-audience · 换位思考模拟

把"谁会看、怎么看、会不会评论"显性化——不是自己猜，是两个具体的人在说话。

**方法论**：换位思考——站在用户角度想问题：你的内容在别人眼里到底是什么样子？这不是自我审查，是"如果我是他们，看到这段话会怎么想"。

## 前置

1. **读 `audience-profiles.md`（init Phase 4 产出）** —— 这是模拟的根基，**不要求先跑 who-for**
   - 路径：项目根 `audience-profiles.md`，读该作品所属轨道的画像
   - 不存在（未 init 或档案缺失）→ 提示"先跑 /oracle-init 补画像——没有画像的模拟是 AI 自嗨"
   - 存在但该作品轨道无对应画像（多轨项目新轨）→ **不用相邻轨画像顶替**——提示补该轨画像后重跑
   - 存在但该作品跑过 who-for → **画像基线 + 逐稿 brief 双重加成**（brief 是这篇稿的深化受众理解，模拟更精准）
2. **读 `<draft-path>`** —— 要模拟哪篇稿子；路径无效 → 报错退出，不凭标题脑补内容
3. **读创作者真实表达样本**（可选）——从已发布作品的文稿/文案提取声音特征（句长/口头禅/禁用词），模拟评论要贴合真人语气

## 两类人群模拟

### 人群 A：核心受众（精准匹配画像）

**定义**：与该轨画像匹配的人。在找内容、能识别专业、有明确痛点。

**模拟视角**：
- "这条是给我的吗？" → 是否命中画像场景
- "他说的问题我遇到过" → 痛点真实吗
- "这个方法我能用吗" → 解法可执行吗
- "这人懂行" → 专业度够吗
- "评论区我会说..." → 真实评论倾向（支持/质疑/补充/追问）

**评论风格**：偏理性专业偏追问细节；可能指出漏洞或补经验；长度中等信息密度高；可能带具体场景（"我上次也遇到这事..."）。

### 人群 B：一般关注（流量推荐刷到）

**定义**：不是主动搜索，是算法推荐/转发/无意刷到。画像模糊，但会被开头钩子留住。

**模拟视角**：
- "这跟我有什么关系？" → 开头 3 秒抓人吗
- "讲人话吗？" → 术语解释了吗
- "看完能干嘛？" → 价值清晰吗
- "有点意思/无聊/太长" → 节奏拖沓吗
- "评论区我会说..." → 倾向（点赞/划过/简单评价）

**评论风格**：偏感性偏情绪偏简单评价；"学到了"或"没看懂"；长度短信息密度低；可能带表情或网络用语。

## 工作流

### Step 1：提取文稿关键信号

核心观点 / 关键场景案例 / 金句反常识断言 / 结尾 CTA / 专业术语（是否解释）/ 开头钩子形式。

### Step 2：人群 A 模拟

基于该轨画像 + 文稿信号，模拟 3-5 条真实评论：

```
【核心受众评论模拟】

画像视角（<画像具体描述>）：
  评论："<模拟的真实评论内容>"
  原因："<为什么他会这么评论>"
  情绪：支持/质疑/补充/焦虑/认可
```

**评论要像真人说的**：有具体场景不说空话；可能错别字或口语化；可能带个人经历；可能质疑/补充/追问。

### Step 3：人群 B 模拟

基于开头 + 核心价值，模拟 3-5 条（格式同上，视角换泛人群）。

### Step 4：差距诊断

| 差距类型 | 信号 | 风险 |
|---|---|---|
| 核心受众沉默 | A 类评论少 / 都是"学到了"无追问 | 内容太浅没戳到痛点 |
| 泛人群流失 | B 类"没看懂/太长/划走" | 钩子弱 / 术语未解释 |
| 两类都无评论 | A+B 都安静 | 缺互动触发器 |
| A 质疑 B 认同 | 专业圈质疑外行夸 | 专业度 vs 传播性冲突 |
| 都是"666/牛逼" | 情绪共鸣无实质讨论 | 停留在情绪层面 |

**降级分支**：draft 无 `## 互动设计` 段 → 第五节「互动触发器检查」标注「无法检查——稿子未做互动设计，建议 oracle-seed 下次补」，其余四节正常出。

### Step 5：修改建议

```
📌 修改建议（按优先级）：

1. 🔴 高优先级：[具体问题 + 具体改法，如"开头 3 秒没击中核心受众——0:00-0:05 加 '<画像场景>' 钩子"]
2. 🟡 中优先级：[如"术语 X 没解释——改成 'X（就是...）'"]
3. 🟢 低优先级：[如"结尾加选择题 CTA"]
```

## 输出格式

```markdown
# 评论区预判报告 — [标题]
> 生成：<日期> / 数据源：audience-profiles（该轨）+ <draft-path>

## 一、核心受众评论模拟
## 二、一般关注评论模拟
## 三、差距诊断
## 四、修改建议
## 五、互动触发器检查
[稿子给了观众"开口理由"吗——对照 draft 的 ## 互动设计 段逐项预判会不会生效]
```

报告输出到控制台；🔴 **CHECKPOINT**：用户确认后才落盘到作品目录 `audience-simulation.md`（供 retro 对照）。

## Key Rules

1. **模拟要像真人**——写具体评论内容，不写"用户可能认为..."；参考真实评论区语气，不编造"专业感"或"空洞赞美"
2. **不代替用户决策**——只给建议不改稿（用户明确要求才改）
3. **画像缺失不硬跑**——没 init 画像先补 init，不用 AI 臆造画像顶替

## Refusals

- 「直接按模拟结果把稿子改了」 → 拒绝。本 skill 只给建议；用户明确说"按第 1 条改"才动稿
- 「画像不准，你帮我编一个」 → 拒绝。AI 臆造画像 = 自嗨模拟，画像回 init 修
- 「只模拟夸的评论」 → 拒绝。模拟的价值在预判质疑与流失，只要彩虹码没意义

## Integration

| Skill | 关系 |
|---|---|
| oracle-init | 上游——audience-profiles.md 是模拟根基 |
| oracle-who-for | 深化层——跑过则 brief 叠加画像双重加成 |
| oracle-score | 旁路——rubric 打分 + 评论区模拟 = 双角度验证 |
| oracle-predict | 下游——模拟结果辅助 AB/SR 判断 |
| oracle-retro | 后续——发布后对比模拟评论 vs 真实评论（校准模拟精度） |

