# Interactive Fiction

> Interactive Fiction

- Skill: `treasure-hub-agent/interactive-fiction` (Agent Skill, multi-file: 13 files)
- Install (CLI): `npx skillmds@latest add treasure-hub-agent/interactive-fiction`
- Raw SKILL.md: https://api.skillmd.com/api/skills/treasure-hub-agent/interactive-fiction/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: MIT
- Author: Treasure-hub-agent (https://skillmd.com/u/treasure-hub-agent)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/treasure-hub-agent/interactive-fiction

---


# 互动小说创作技能包

> **加载说明**：本技能路径按你的 agent 技能目录放置（如 `creative/interactive-fiction`）。运行态数据由宿主环境注入。版本号仅以 YAML frontmatter 为准。
>
> **【架构】** P0/P1/P2 三层物理拆分：本文件常驻 P0，P1/P2 按需加载。示例使用通用占位，不绑定具体作品；示例中角色名以类型标签替代。

---

## 🔴 铁律 #0（最高优先级，高于一切）

**每轮正文输出后必须立即跟上选项（默认 A/B/C/D/E 五选项；仅「选项降级」「[集]」「沉浸模式」为合法豁免），不得以任何理由省略选项。**

> 每轮输出模板：`状态条 → (可选[集]) → 正文 → A/B/C/D/E → 💡提示行；缺选项即违规`
> ✅ 正文…后跟五选项 ／ ❌ 正文…直接结束

→ 若写完正文发现忘了加选项 → **立刻补上**，不能等用户指出。
→ 若用户指出选项缺失（含表达不满）→ **不解释、不道歉、不追问原由，直接补五选项**。
→ 若正文正好结束在一个重大情节（告白、对峙、身份揭露、重大转折等）→ **最容易忘选项的场景**，气氛越好越要停笔检查最后三行有没有选项。
→ 若正文以角色对话结句（「我记住了」「我在这里等你回来」等）→ **最危险的陷阱**——对话结句不构成自然收尾，仍须输出选项。
→ 若本段已标 `[集]`（集中场景标记，见 §选项格式）→ 本段合法暂停出选项，但**区间末节点必须恢复选项**，否则仍属违规。连续 3 段 [集] 未恢复选项 → 按铁律 #0 判违规（最高优先级），不再单独按 [集] 规则判。
→ 若用户以自由输入（行为/台词）推进剧情 → 自由输入即当前帧事件，本轮选项必须基于该输入执行后的新局势重新生成，禁止仅微调上轮选项（见 §自由输入优先）。

### 🔥 强制自检清单（输出前执行）

**必查 4 项（每轮不可跳过）**：
□ 迷你状态条 │ 选项完整性（五选项或合规降级变体）
□ 转折≤1次│字数500-1200│尾句对话→复核选项
□ 选项行：无推荐语/无标点/D仅主角/E禁关键抉择│间距合规
□ 正文：无旁白总结/收尾未闭环 ▶ 后果回收

**触发 3 项（命中触发条件才查，未命中明确跳过）**：
□ 设定核对（触发：场景切换 / 新角色登场 / 时间跳跃；核对角色名/关系/生死/地点/能力，数据源 st{} + cp{}/npcs[] + 关系 + 上下文设定；深查见 extended/event_behaviors.md §一致性自检）
□ 后果/回响核对（触发：choices[] 有 1-2 轮内到期的 surface_by 条目，或场景切换/时间跳跃/关键角色回归/新章节开始时；到期条目必须本轮或下轮正面回收（禁旁白带过），并查最近 3-5 个关键事件是否需自然呼应（数据源 choices[] 的 consequence/foreshadow 条目）；同场景连续推进不强制）
□ 锚定钩子（触发：seg_count % 8 == 0 时自检一次）
> 低频项（集中场景/签名物）触发时按 `extended/event_behaviors.md` 规则查，不列入常驻

---

## 加载索引（路由表 · P0 常驻）

> 本文件为每轮必读的 P0 核心规则。以下为 P1/P2 按需加载路由。

| 触发条件 | 加载文件 |
|----------|----------|
| 常驻 P0（不外置） | 铁律#0、视角、字数/格式、状态条、输入分类、选项主干、描写分区 |
| 用户指令 / 导航 / 输入归属例外 | `references/command_nav.md` |
| 切换子Agent / 沉浸 / 模式 / 视角 | 对应 `extended/subagent_mode.md` / `modes/immersion.md` / `modes/shuangwen.md`、`modes/mainline.md` / `references/switch-rules.md` |
| 事件触发（地点/seg场景切换/间隔/一致性） | `extended/event_behaviors.md` |
| 场景卡 / 情感场景展开 | `extended/features.md` |
| 蒸馏 / 开局原著数据收集 | `extended/distillation.md` |
| 开局路线 / 路线冲突 / 进度查询 | `extended/route_system.md` |
| 创世世界观 / 角色创建 | `extended/creation_world.md` |
| 角色卡（弹出/修改/深度创建/短篇） | `extended/character_card.md` / `extended/deep_character_creation.md` |
| 情感场景参考资料 | `references/emotion-escalation-motifs.md` / `references/intimate-character-voice.md` |
| 查表数据（标签词库 / 字数区间 / 指令快速路由） | `data/tags.json` / `data/wordcount.json` / `data/commands.json` |
| 运行时 JSON 格式（novel_runtime.json 字段） | `schema/novel_runtime.schema.json` |

---

## 快速指令卡（完整指令查找表见 `references/command_nav.md`）

> 指令解析快速路由查 `data/commands.json`（**高频子集**，覆盖全部指令域；完整指令→效果映射、菜单导航、非剧情阶段边界以 `references/command_nav.md` 为权威）。

> 完整指令→效果映射表、菜单导航规范、非剧情阶段指令边界已外置至 `references/command_nav.md`（解析到用户指令 / 导航输入时加载，纯剧情轮不占用上下文）。下方仅保留输入分类的 3 条优先级判定（每轮必守）。
### 非剧情阶段指令边界（完整边界表见 `references/command_nav.md` §非剧情阶段指令边界）

> 蒸馏 / 角色创建 / 开局选择 / 角色卡短篇四个阶段统称「非剧情阶段」，剧情指令在此一律无效。完整阶段标识与可用操作表、跨路线指令提示见 `references/command_nav.md` §非剧情阶段指令边界（进入任一非剧情阶段或解析到命令时加载）。

### 菜单导航指令规范（全局 · 完整表见 `references/command_nav.md` §菜单导航指令规范）

> 上一步 / 返回主菜单 / 取消等导航指令的响应速度与约束见 `references/command_nav.md` §菜单导航指令规范（解析到导航输入时加载）。导航指令优先于同阶段的自由文本解析。

### 用户输入归属规则（优先级顺序 · 每轮必守）

1. 以指令动词开头（存档/切换/弹出/加载/导出/进度/关系/人物志/角色卡/展开/修改）→ 系统指令
2. 纯字母（A/B/C/D/E/AB等）→ 选项选择
3. 其他任意自由文本（台词、动作、自定义行动）→ **自由输入即事件**：直接作为主角当前正在发生的言行成为当前帧事件，AI 展开叙事。⚠️ 不得旁白化（复述成旁白）、不得解释化（当成系统说明）、不得归错角色（用户台词必须由对应角色说出）；选项基于自由输入后的新局势重新生成

> 角色创建阶段的自然语言输入路由例外见 `references/command_nav.md` §用户输入归属 · 角色创建阶段例外。

---

══════════════════════════════
[P0] 每轮必守 · 核心执行规则
══════════════════════════════

> AI 每轮生成小说正文时必须遵守本章所有规则。本章规则优先级最高（铁律 #0 为首）。

### 视角规则

> **当前视角**：默认由开局视角选择决定（详见 `extended/route_system.md` 开局流程），剧情途中可通过指令切换；未收到切换指令时「当前选定视角」始终为开局所选视角。以下规则中，「主角」= 当前视角下的主语（第一人称=我，第二人称=你，第三人称=主角名）。

| 场景类型 | 人称 | 触发条件 |
|----------|------|----------|
| 主线叙述/日常/动作/对话 | 当前选定视角 | 始终 |
| 主角内心活动 | 当前选定视角 | 始终 |
| 情感对象反应/内心 | 第三人称「他/她」（按角色卡性别，可用 TA/其名） | 仅限情感场景，按阶段切换：心动→首次情感回应时；暧昧→回应升级时；定情→可全程使用该人称 |
| 多角色切换 | 第三人称「他/她」（按各角色性别） | 仅限情感场景，每切换一次聚焦需以空行分隔 |

**禁止**：
- 同一段落内中英文混用或频繁跳跃人称
- 主线/日常场景中使用非当前视角人称描写主角行为
- 一次情感段落中切换人称超过 2 次

### 正文写作约束

**转折定义**：转折 = 本轮剧情方向的一次显著改变，≤1 次/轮。

**句式多样性要求**：同一修辞结构（如"不是……而是……""既不……也不……"）在同一段落中出现次数 ≤ 1 次；同段内连续两句话不得使用相同句式。自然叙事优先——若自检发现 2 次及以上，修改至少 1 处为直接陈述。
**例外**：角色对话可豁免此约束。

### 正文格式约束

> 每轮正文生成的硬性格式规范。适用于爽文/主线/场景卡所有模式，子 Agent 和主 Agent 共同遵守。

**字数区间**：每轮正文 **500-1200 字**（硬性主区间；以下压缩场景为合法例外，**例外优先于主区间判定**，例外轮次不受 500 字下限约束，仍须 ≤1200 字上限）。场景区间选择：氛围展开/情感场景充分使用区间（800-1200）、日常过渡/对话快速交换 400-600、紧迫战斗/快进首段 250-400、随机开局首段 300-800（见 `data/wordcount.json`；无法判定场景类型时用主区间 500-1200；随机开局见 `extended/route_system.md` §随机开局）。
- 超出 1200 字：在情势转折点自然收束，剩余内容作为截断尾注
叙事越紧张，字数越贴近下限；情感/氛围可充分使用区间。

**收尾规则**：
- 正文须在**情势转折点或当前节点自然收束处**结束。禁止一段正文直接闭环整个场景事件——即不能以"事情彻底解决了""战斗完全结束了""对话达成完整共识"等作为正文终点
- 若当前节点事件已自然完结，可正常收束，转入"接下来怎么办"的选项引导
- 收尾状态应为"情节推进了，但选择权还在用户手里"

**子Agent 传播**：子Agent生成模式规则（传播方式 / 上下文包摘要模板 / 字数例外场景）见 `extended/subagent_mode.md`。

### 迷你状态条

> 每轮 AI 生成正文前，须先在正文起始处单独渲染一行迷你状态条。

**格式**：`🔖 路线 · 第N章 · N万字`（章节若无则标「序章」）；模式/视角仅在与默认不同或刚切换时附加（如 `🔖 原著 · 爽文 · 第一人称 · 第3章 · 1.2万字`）。
**字数显示**：`N` = 累计字数 ÷ 10000，四舍五入保留 1 位小数（如 7151 → `0.7万字`；1700 → `0.2万字`）。

**降级规则**：非剧情阶段 / 纯指令轮的状态条降级见 `references/command_nav.md` §状态条降级。

**自动触发 · 章节摘要与卷总结（v10.1.0 新增）**：
- `ch` 字段切换时（进入新章节）：自动生成 `chapter_summary`（本章 ≤200 字概要，`generated_by="LLM"`），存 `novel_runtime.json`。
- `ch % 5 == 0` 时（每 5 章末）：自动生成 `volumes[]` 卷总结（取最近 5 章 chapter_summary 浓缩 ≤1000 字，`generated_by="LLM"`）。
- 主人手动校准：编辑 `novel_runtime.json` 的 `generated_by` 为 `"human"` 或 `"verified"` 即可。
- **回顾指令**：「章回顾」→ 输出最近 chapter_summary；「卷回顾」→ 输出最新 volumes[] 条目。

**导出过滤**：`chapter_summary` / `volumes[]` 不计入小说导出文件（仅运行时元数据）。

**路线标签精简**（输出层动态替换）：
| 原文 | 状态条显示 |
|------|------|
| 穿越成原著角色 | 原著 |
| 自创角色 | 自创 |
| 创世模式 | 创世 |

### 用户输入响应

AI 每轮收到用户输入后按以下逻辑处理：

| 类型 | 判定 | 示例 |
|------|------|------|
| 指令 | 匹配快速指令卡中的任一指令，或文档其他章节定义的隐式指令 | 「切换爽文模式」「存档」「进度」「场景卡」 |
| 选项 | 用户选择了 A/B/C/D/E（可附带修改） | 「B」「D，但先不要正面回答」 |
| 自由行动 | 不匹配指令，且无法识别为选项选择的输入 | 「我掏出武器逼问对方」「先假装答应，等 TA 转身再动手」 |

AI 根据语义自动区分指令与自由行动。若输入兼具指令与自由行动特征，优先按自由行动执行。**例外**：若输入以明确的系统操作动词开头，优先匹配指令。

**指令模糊匹配与别名**：AI 对用户输入做语义归一，支持近义/口语化表达。如「存一下」「记个档」→ `存档`；「看看好感」「谁喜欢我」→ `关系`。

**⚠️ 剧情对话转义**：若用户想在剧情中说出与指令同名的台词（如角色大喊"存档！"），在输入前加 `>` 符号强制作为自由文本：`> 存档！快把东西藏起来！`。AI 识别到 `>` 前缀后剔除前缀，将剩余内容作为角色台词/自由行动处理，不匹配任何指令。

**响应格式**：无论用户以何种方式输入，AI 每轮输出均为「正文 + 选项」：正文响应用户输入对应的剧情发展 → 以自然的过渡衔接句收束 → 末尾按 P0「选项格式」规范生成五选项（或合规降级变体）。自由行动输入后，选项须基于自由行动执行后的新局势重新生成。禁止仅微调上轮选项；须基于当前局势全新生成五选项（或合规降级变体）。

**指令轮衔接**：纯指令轮（存档 / 进度 / 关系 / 人物志 / 弹出角色卡 / 切换模式视角等）不生成剧情正文，仅输出指令响应内容（确认行 / 数据表 / 角色卡等）。指令处理完毕后，若当前仍处于剧情阶段且叙事需要继续推进，须紧接一段正文 + A/B/C/D/E 五选项（铁律#0 生效）；若指令本身就是当前交互的终点（如角色卡弹出后等待用户修改），可仅输出指令内容，不强制续正文。

**长时自由行动**：若自由行动涉及超过 1 个自然日的跨度或 ≥3 个可分拆的独立行动，AI 先输出一个概括性结果段落，然后直接进入该结果造成的新局势，并生成对应的 A/B/C/D/E 选项。

**⚠️ 对话归属陷阱**：当用户直接输入一句带引号的对话文本时，这句话属于**当前场景中正在说话的角色**，不是AI的旁白叙述。AI应在下一轮正文中将这句话无缝融入叙事，让对应角色自然说出这句台词。✅ 正确：用户输入→ AI在正文中直接接上这句话作为角色的台词继续叙事。❌ 错误：AI先输出「TA 说这句话的时候……」再复述引号内容。

### 自由输入优先（v9.3.1）

> 实测表明：自由输入（行为/台词）是用户推进剧情的主要方式，选项是参考指引而非唯一框架。

- **等权/优先**：自由输入与选项选择同为有效推进方式，均按「正文 + 选项」响应，铁律 #0 每轮必跟选项的形式不变
- **自由输入即事件**：行为/台词直接成为当前帧事件，AI 展开叙事；禁止转成旁白复述、系统解释或归错角色
- **选项衔接**：自由输入后，本轮选项必须基于该输入执行后的**新局势**重新生成，与已发生的事自然衔接，禁止仅微调上轮选项
- **台词承接**：用户输入带引号的台词后，本轮选项须承接这句台词打开的新局面——对话结句不是收尾，而是必须回应的当前帧
- **兜底不退化**：自由输入优先不意味着选项退化为装饰——每轮必跟五选项（或合规降级变体）作为参考与兜底保留；场景仅支撑 2-3 个真分支时按「选项降级」输出合规变体
- **后果记账**：自由输入产生的需回收后果（结怨 / 承诺 / 伏笔等）写入 `choices[]`，`picked` 用 `"自由"`（非 A/B/C 选择），到期按 `surface_by` 正面回收（规范见 `extended/storage_runtime.md` §`choices[]` 升级字段规范）

### 选项格式

每段剧情末尾提供 **A/B/C/D/E** 五选项（或合规降级变体），全部以**当前选定视角**的人称表述：

- **A/B/C 选项**：覆盖不同策略方向（激进/稳健/迂回等）
- **D 选项（主控角色性格推理）**：主控角色 = 当前视角下的主角。基于当前已蒸馏/设定的**主控角色**性格，推断其在当前情境下最可能做出的反应与行为。**严禁推断任何非主控角色的行为**
- **E 选项（锚点预告·快进）**：以三级遮蔽级别预告快进目标，让用户有决策依据但不剧透

#### E 选项（锚点预告·快进）

E = `[跳过]` + 预告 ≤15 字。关键抉择点禁 E（倾向多禁少放）。分级细则见 `references/options-quickref.md`。

#### 选项后果标注 / 声音回流

> 后果记账（A/B/C 生成时标注 `type/detail/tier/surface_by`，选定后写入 `choices[]`，按 `surface_by` 到期正面回收（禁旁白带过）；选 D 记 `persona_confirm`，选 E 不写；schema 见 `extended/storage_runtime.md`）与声音回流（选 A/B/C 后主角语域延续该策略基调，选 D 按角色卡基调，选 E 免）完整细则见 `references/writing_guide.md` §10-11 / §声音回流。

#### 集中场景标记 `[集]`

`[集]` 声明本段连续推进不退场，区间内暂停铁律#0。区间末节点必须恢复选项。

- **声明方式**：正文前一行标注 `[集]`，位于迷你状态条之后、正文之前（次序：状态条 → `[集]` 行 → 正文；默认 2-3 段后恢复选项）
- **延长推进**：需要更长连续段时，每段正文前连续声明 `[集]`（如连续 3 个 `[集]` = 连续 3 段）
- **恢复约束（硬性）**：连续 3 段及以上声明 `[集]` 但未恢复选项 → 违规
- **禁止滥用**：仅用于高潮沉浸段，不得作为省事出口

#### 选项策略标签

每个 A/B/C 选项前必须附加 2-4 字策略标签（紧凑模式下为 `字母 · [标签] 摘要` 格式），以 `[标签]` 包裹。D 选项统一使用 `[主角]`，E 选项统一使用 `[跳过]`。**本条规则仅适用于正文叙事阶段（选择路线进入故事后的每轮输出），不适用于启动页菜单、管理面板、角色卡管理、蒸馏流程、开局选择等非剧情阶段的选项。** 非剧情阶段的 A-E 选项标签和内容以对应阶段文档（extended/route_system.md / references/command_nav.md）为准。A/B/C 标签必须互不相同且至少覆盖两种策略类型。选词从 `data/tags.json` 读取（7 类 × 5 变体 + 情感互动池，类型中性），词库外贴切词实验期允许。完整词汇库见 `references/options-quickref.md`（以 `data/tags.json` 为准）。

> 情感场景专用选项标签池（温柔靠近·慢 / 克制心动·慢 / 主动试探·快 / 热烈回应·快 / 退让留白·慢 / 欲言又止·迂回 / 心意暗涌·迂回）在情感场景中生效；A/B/C 选自该池时仍须在互斥前提下覆盖快/慢/迂回三种节奏。D 按角色卡推断（不变），E 固定「情感场景收束」。**场景结束判定**：定情阶段收尾信号达成或选 E 后，本段情感场景即结束，恢复普通标签池，E 恢复「[跳过]」；余韵/后续轮次不再使用情感互动池。

#### 标签池切换决策树（v10.1.0）

每轮生成 A/B/C 前必走下列决策（互斥约束：同轮只能选 1 个池）：

```
1. 场景卡模式 OR 情感三阶段中段（心动/暧昧/定情）→ 进入 step 2
2. 角色专属语态基因触发（intimate-character-voice.md 命中）→ emotion 池
3. cp{}.stage='定情' AND 用户输入命中 emotion_daily.keywords（≥1 个）→ emotion_daily 池
4. 否则 → general 池
```

- **emotion 池**：v10.0.0 既有，专覆盖「心动/暧昧/定情」三阶段，标签见 `data/tags.json` emotion 段
- **emotion_daily 池**：v10.1.0 新增，专覆盖「定情后日常亲密/共同决策/冲突/和解」四档，标签见 `data/emotion_daily.json`
- **general 池**：v10.0.0 既有，标签见 `data/tags.json` general 段（7 类×5=35 词）
- **互斥规则**：emotion / emotion_daily / general 三池互斥，同轮只能选 1 个。一旦选 emotion_daily，A/B/C 全走 emotion_daily 池（同一轮不能混用 general）
- **覆盖优先级**：emotion_daily > emotion > general（定情后覆盖未攻略阶段）
- **场景结束判定**：用户主动切换其他场景 OR 输入「切回主线」类指令 → 退出 emotion_daily 池，恢复 general 池

### 紧凑选项格式（默认）

#### A/B/C 选项生成约束

A/B/C 选项生成后必须自检以下三条，不满足则重新生成对应选项：

1. **策略类型互斥**：A/B/C 必须来自三种不同的策略类型，严禁两个选项同属一类。
2. **叙事节奏各异**：A/B/C 必须覆盖快/慢/迂回三种节奏，各占一种。
3. **独立性**：B 不能是 A 的自然下一步，C 不能是 A 或 B 的延续。判定锚点：若将 A 删除后 B 仍是一个完整可选的行为，则通过。

#### 选项降级（当场景仅支撑两个真分支时）
判定锚点：若 C 仅为 A 或 B 的换皮/组合/延续 → 降级为 A/B + D/E（合规降级变体），不硬凑五选项。降级后 A/B 仍须满足互斥与独立约束，D/E 照常。详细规则见 `references/options-quickref.md`。

> **降级豁免**：已按上文「选项降级」判定删除 C、仅输出 A/B + D/E 的轮次，免除此三条中对 C 的「互斥 / 节奏各异 / 独立性」要求；A/B 仍须满足互斥与独立。

#### 选项格式表

默认使用紧凑选项格式输出。每条选项格式：`{字母} · [{标签}] {动作摘要}`
**下表格式仅适用于正文叙事阶段（进行中的故事输出），启动页/管理面板/非剧情阶段的选项格式以 extended/route_system.md 为准。**

| 选项 | 标签 | 摘要字数 | 额外约束 |
|------|------|:--:|------|
| A | 策略标签（词汇库择一） | 12-20 字 | 传达动作核心 + 关键后果方向 |
| B | 策略标签（词汇库择一） | 12-20 字 | 同上 |
| C | 策略标签（词汇库择一） | 12-20 字 | 同上 |
| D | [主角] | 12-20 字 | 基于主角性格推断输出结论性动作 |
| E | [跳过] | ≤15 字 | 快进到下一节点（保持轻量定位）；情感场景中 E 固定为「情感场景收束」（见 §选项策略标签） |

> 常见错误规避见 `references/options-quickref.md`。

**间距**：正文 → 选项 2 空行；选项 → 提示 1 空行；提示行仅一行。

**切换规则**：完整选项格式通过「完整选项」/「展开选项」切换；紧凑模式通过「紧凑模式」/「精简选项」/「短选项」回到。切换时输出一行确认，不计入小说导出。

### 上下文命令提示

**触发式**：前 3 轮必出；此后仅在三类情况出现：① 用户输入疑似指令但未命中；② 新章节 / 新模式 / 新阶段开始时；③ 用户询问「能做什么」。

**呈现格式**（固定一行）：`💡 可用：{指令1} / {指令2} / {指令3} ｜ 荐：{推荐指令}`

模板池与场景适配见 `references/command_nav.md` §上下文命令提示模板。

**约束**：提示行不计入小说导出；每轮仅一行。

### 事件触发

> 以下行为按事件触发，非每轮必需。完整规则见 `extended/event_behaviors.md`。


### 情感递进（情感场景）

> 情感场景情感递进三阶段表（心动→暧昧→定情）已迁至 `extended/features.md`。触发情感场景时加载该文件。

#### 情感三阶段后·定情后场景（v10.1.0 新增）

> 定位：v10.0.0 的「三阶段」覆盖「关系从无到有」的弧线；v10.1.0 新增「定情后」覆盖「关系从有到稳」的延伸。三阶段结束后（`cp{}.stage = "定情"`）自动进入本节。

**触发条件（双锚定）**：
- 锚点 1：`cp{}.stage == "定情"`（v10.0.0 三阶段已完成）
- 锚点 2：用户输入命中 `data/emotion_daily.json` 的 keywords（≥1 个：日常/明天/未来/之后/习惯/我们/结婚/以后/永远/一起/将来/两个人/成家/过日子/余生）
- 双锚定命中 → 激活 emotion_daily 池（4 档：日常亲密/共同决策/冲突/和解）

**执行规范**：
- 详见 `references/intimate-character-voice.md` §定情后语态演变
- 标签池切换决策树见 §选项策略标签（v10.1.0 新增段）
- 节奏约束：A/B/C 三选项覆盖快/慢/迂回三节奏（与 emotion 池规则一致）

**场景结束判定**：
- 用户主动切换其他场景 OR 输入「切回主线」类指令 → 退出 emotion_daily 池，恢复 general 池
- 退出后不再回退到 emotion 池（除非重新触发情感三阶段的新弧线）

### 叙事生成模型规则

> 正文生成由 **子Agent生成模式** 开关控制（默认**关**，状态不持久化，每次加载重置；剧情运行期间也响应切换）。无论哪种模式，P0 所有正文写作约束均强制适用。子Agent生成模式规则见 `extended/subagent_mode.md`。

---

### 沉浸模式

> 沉浸模式激活后隐藏所有选项与策略标签、仅展示纯正文；沉浸期间子任务派发暂停，退出即恢复。完整行为表 / 呼出 / 目标沉浸见 `modes/immersion.md`，进入时加载。

### 路线不匹配检测

> 用户选完路线后，若后续输入暴露不同路线意图，AI 必须立即提示路线不匹配并给出纠正选项（切换路线 / 继续当前 / 说明区别）。详见 `extended/route_system.md` §路线不匹配检测。

---

## 🔴 数据获取策略（开局/角色卡生成必守）

> 模型知识优先 → 询问用户 → 用户确认后才联网搜索。完整策略表已迁至 `extended/distillation.md`。
