# ③ 作用域（重）

本步**只干一件事**：给 ②产出的每颗知识标 5 类作用域里相关的几类，每类**平铺标出所有相关的具体值**，并把每个值**定位**到 5 棵分类树。
不碰框架结构、不碰其它标签（那些 ② 已做）。

> ⚠️ **本文里出现的所有具体词（食材搭配、制造悬念、治愈感…）都只是「示例」**，用来帮你认清每一类管什么。
> **真正的值必须从当前这篇帖子的内容里抽，严禁照搬示例里的任何词。**
> 作用域的「值」是**开放**的（定位不上就新建），固定的只有 5 个**类别**。

**按类型分粒度**：
- **How 颗**：**逐步**标——每个 step 一组作用域（写回 `step.作用域`）。
- **What / Why 颗**：**颗级**标——整颗一组作用域（写回 `knowledge.作用域`）；读 What 的 `概要` + `body`各条目(item_name/item_desc)、Why 的 `阐述`（整段）来判。

> 这是全流程最容易"串味"的一刀（5 类边界模糊），所以单独、写厚。判不准就标空 `[]`，不硬塞。

## 核心原则：平铺多值 + 摊正交（贯穿 5 类）

- 每类不是"给一个值"，而是标出这颗在这类里**真正涉及的所有值**，**全部对等、不选主次、不限数量**——一颗真有 3 个实质就标 3 个，只有 1 个就 1 个。
- 标多值前先脑内把它们**摊成几路不同视角(facet)**：同一视角下的值必须是**同一上位语义类型**（讲人物的归人物、讲题材的归题材）；若发现是近义或子面（人物 / 人物性格 / 人物动机）→ **收敛回一个**，别堆。
- "视角"只是**脑内组织、不输出成字段**；输出仍是多条 `{scope_type, value}`，定位由代码事后做。
- 意图除外：意图讲终极目的，**自然收敛到很少**（多为 1 个），不强求多值。

---

## 1. 五类列定义（认清各管什么；所有示例**勿照搬**）

> **`substance` 实质 —— 这颗讲的实质信息（"呈现了什么"）**
> 题材 / 对象 / 实体 / 概念 / 行为 / 关系。
> - **平铺多值、摊正交**：一颗真覆盖几个实质就标几个，不选主次、不限数量；同一视角下的值同一上位语义类型，近义/子面收敛回一个。
> - **边界**：≠形式（那是"怎么呈现"）；≠作用（那是创作效果，如"节奏控制"）；≠感受。✅「增肌动作」「冲突设置」=实质；❌「步骤分解」是形式。
> - **格式**：名词短语，砍前置动作动词（定位/揭示/制造… → 认知裂缝/人物刻画/悬念），原子化，专有名可略长。

> **`form` 形式 —— 剥离题材后、可迁移到别的题材的"怎么呈现/组织/表达"（覆盖视觉/文字/音频三模态）**
> 形式只改变**接收体验**（同一实质换种形式 → 理解/情绪/节奏/传播都变），不改变"讲什么"。平铺多值、摊正交。
> - **核心判据·可迁移性**：自检「**把题材换掉，这个"形式"还成立、还能照搬到别的题材吗？**」成立 → 是形式（三幕结构、悬念开头、九宫格排版）；只在这个题材里成立 → 那是实质。
> - **偏结构/手法层（关键分工）**：创作知识的形式重在**结构与手法**（叙事结构 / 悬念 / 对比 / 钩子 / 句式）；**具体表层呈现（配色 / 景别 / 字体 / 运镜）只在原帖把它当"原则/方法"教时才标，否则不追**——那是下游"形式元素"逐帧拆样片的活，我们不抢。
>   - 例：帖子讲「短视频前3秒要用悬念钩子」→ 标 `悬念钩子`（结构手法 ✅）；帖子只是某画面恰好用了高饱和配色、并没教"要用高饱和" → **不标**（只是样片表层，不是这条知识的形式）。
> - **三模态别漏**：视觉（构图/排版/字体动效）、文字（修辞/句式/叙事手法）、音频（语气/配乐）。
> - **实质剥离**：剥掉它承载的题材。❌`剧本三幕结构`→✅`三幕结构`；❌`美食九宫格`→✅`九宫格排版`。
> - **边界**（用判据划清）：↔**实质** = 题材绑定 vs 题材无关（可迁移性就是分界线）；↔**作用** = 手法本身 vs 它达成的功能（"悬念开头"是形式，"勾注意力/制造悬念"是作用）。
> - **格式**：名词/形容词短语（三幕结构、口语化、排比句式、慢节奏），原子化、砍前置动作动词。

> **`feeling` 感受 —— 这颗内容勾起观众的情绪体验（"看的人感到什么"）**
> - **平铺多值、摊正交**：一颗能同时勾多种感受（好奇 + 羞耻），都对等标上。
> - **要具体到"这颗真正勾的那种"**：别用可套万物的宽泛情绪（紧张/震撼/感动），能更准就更准（面对两难抉择那种 →「两难煎熬感」，比「紧迫感」贴）。定位分偏低（<0.75）只说明树里还没有，正常新建。
> - **边界**：感受=**观众实际感到的**，≠意图（创作者想要的）、≠作用（段内功能）。✅「治愈感」「羞耻感」=感受；❌「促进收藏」是意图。
> - **格式**：情绪名词/形容词，砍前置动作动词（营造治愈感 → 治愈感）。

> **`effect` 作用 —— 这颗帮创作者在内容里干成的活 / 创作效果（动名词）**
> - **"手段层"**：段落 / 手法在内容里**起的功能**（创作元动词名词化——展示/强化/铺垫/对比/收束 → 强化、铺垫、对比、悬念设置、节奏控制）。
> - **平铺多值、摊正交**：一颗常同时起几种作用（制造悬念 + 节奏控制），都对等标。
> - **边界（最易串）**：作用=**创作效果/段内干的活（手段）**，≠意图（最终目的）、≠实质（讲的对象）、≠形式（结构形态）。✅「冲突」「看点」「节奏控制」=作用；❌「完播」是意图、「三幕结构」是形式。
> - **格式**：**动名词**——名词+动作语素后缀（营造/设置/引导/控制）保留、是对的；只砍前置裸动词（「制造悬念」→「悬念」或「悬念设置」）。

> **`intent` 意图 —— 创作者做这颗最终图什么（创作目的·必须动词）**
> - 对齐意图树（仅 46 节点、讲终极目的），**自然收敛到很少**（多为 1 个，偶 2 个）；真有多个目的（科普 + 引流）才标多。
> - **层级对齐（别跳层）**：值贴**这颗本身的层级**——具体工具/手法颗标它自己那层（某叙事工具 →「勾住注意力/驱动情节」），别跳到整条内容的运营终极目标（涨粉/完播/下单），那是更大颗的意图，贴小颗上就串味。
> - **边界**：意图=**创作者最终目的**，≠作用（手段/段内效果）、≠感受（观众情绪）。✅「科普」「引流」「种草」=意图；❌「制造悬念」是作用。
> - **格式**：**动词**（科普/教学/引流/呼吁/种草/批判），别写成名词（流量/完播率/人设 → 引流/提升完播/立人设）。

**一颗/一步不必 5 类都给**——只给真正涉及的；判不准的类标空 `[]`。

---

## 2. 互斥边界（最容易错；反例跨题材，看的是"归类逻辑"不是词本身）

判每个值前，先过这几条边界，确认它没站错列：

- **实质 ↔ 形式**：实质=讲什么（内容对象）；形式=怎么呈现（结构/手法）。✅「增肌动作」=实质；「步骤分解」=形式。
- **实质 ↔ 作用**：实质=讲的对象本身；作用=帮创作者做成的**创作效果**（动名词）。✅「通勤穿搭」=实质；「节奏控制」=作用。
- **作用 ↔ 意图**：作用=创作动作/效果（**手段层**）；意图=**最终**想要的结果（目的层）。✅「看点」=作用；「完播」=意图。
- **感受 ↔ 意图**：感受=**观众**的情绪体验；意图=**创作者**的目的。✅「治愈感」=感受；「促进收藏」=意图。
- **形式 ↔ 作用**：形式=呈现的**结构形态**；作用=帮创作者达成的**创作效果**。✅「对比清单」=形式；「节奏控制」=作用。
- **层级对齐（意图别跳层）** / **自洽（值别和这颗自相矛盾）**：一颗讲「打破/反某结构」的知识，`substance` 不能标那个"被打破的结构"本身；先想清这颗到底在讲什么，再起词。

---

## 3. 值的格式与多值约束

1. **词性按类**：实质/形式/感受 = 名词/形容词短语；**作用 = 动名词**（营造/设置/引导后缀保留，只砍前置裸动词）；**意图 = 动词**。多为 2-4 字、上限约 6 字（专有名可略长，别写成长句否则定位不上）。
2. **原子化（拆到"独立有意义的概念"为止，平铺多值）**：
   - **含连接词（和/与/、/，）必拆**（代码也会兜底拆）。例：`主使人物与对立人物`→`主使人物`+`对立人物`；`社会共识与个体真实矛盾`→`社会共识`+`个体真实`。
   - **把捆在一起的几个独立概念拆开，但拆到"概念"为止、别再往下碎**。例：`爆款选题逻辑`→`爆款`+`选题逻辑`（"选题逻辑"是个完整方法概念，**别再削成`选题`、也别丢掉`逻辑`**）；`短视频创意策略`→`短视频`+`创意策略`。
   - **底线·空壳词不单独成值**：`逻辑 / 信号 / 模型 / 策略 / 方式`这类单独拎出来是放之四海的空壳，**不单独成一个值**；但它们和题材组成的完整概念（`选题逻辑`、`爆款信号`）**是合法原子**——别为了去壳反而把概念拆没了。
   - **张力/对照若本身就是要表达的实质**：用**单个不含连接词的词**命名（如 `虚实对照`、`知行落差`），别写成"虚拟与现实"这种连接式（会被拆开、丢掉那层关系）。
3. **平铺多值、摊正交**（见核心原则）：同一类的多个值必须是不同视角、同一视角内同一上位语义类型；近义/子面收敛回一个。
4. **不跨类重复**：一个值只进它该进的那列。
5. **去重**：同一组同一类不重复同义值。
6. 用**本帖语境里的具体词**，不要泛词（"内容/主题/信息"），更不要照搬本文示例词。

---

## 4. 判别顺序（每个候选值按序过一遍）

1. **范畴检查**：它是"讲什么/怎么呈现/勾情绪/起功能/图什么"哪一类？（对照 第1节+第2节，站错列就移列或剔除）
2. **原子检查**：复合？→ 拆。整句？→ 精简成短词。
3. **正交检查**：同一类已有的值里，它是不是某个值的近义/子面？是 → 收敛，别堆。
4. **泛词检查**：放之四海皆准的框架词、或本文示例词？→ 剔或换成本帖具体词。
5. 通过 → 进定位（第5节）。

---

## 5. 执行三阶段

### 阶段一 · 提候选值（平铺多值）
逐组读这颗（how 读 `input/directive/output`；what 读 概要+body各条目；why 读 阐述整段）的真实内容，按 第1节-第4节 标相关的几类，**每类把这颗真正涉及的值全部平铺列出**（先脑内摊正交、收敛近义），意图通常 1 个。

### 阶段二 · 定位对齐（调工具）
对每个候选值跑：
```bash
python 创作知识提取-skill/tools/scope-link.py "<候选值>" --type <substance/form/feeling/effect/intent> --top-k 5
```
按返回的 top-1 余弦分判定：
- **≥ 0.90**：复用返回的 `name`（value 写树原名），记 `link: "复用"`、`score`。
- **0.75–0.90**：看 top-K 有没有**真同义**的——有就复用其 name，没有就用自己的候选值（新值）。
- **< 0.75**：保留候选值为**新值**，记 `link: "新建"`、`score`（顺手丰富树）。

> 定位是代码（火山 embedding 最近邻），你只负责"起词"和"看分判定复用/新建"；**树上没有不是问题，新建即可**。

### 阶段三 · 验证（自检）
- 每个值都过了 第2节 边界、第3节 原子+正交、第4节 泛词？**有没有照搬本文示例词？**
- 同一类的多个值是不是真不同视角（没堆近义）？同一组没有跨类重复值？
- 判不准 / 模糊两可的类 → 标空 `[]`，别猜。

---

## 6. 输出格式（写回 `作用域`；下面是中性示例，值要换成本帖真实值）

```json
"作用域": [
  {"scope_type":"substance","value":"<实质值1>","link":"复用","score":0.93},
  {"scope_type":"substance","value":"<实质值2，另一视角>","link":"新建","score":0.61},
  {"scope_type":"form","value":"<形式值1>","link":"复用","score":0.91},
  {"scope_type":"form","value":"<形式值2，另一模态>","link":"新建","score":0.58},
  {"scope_type":"effect","value":"<作用值>","link":"新建","score":0.66},
  {"scope_type":"intent","value":"<意图值，通常1个>","link":"新建","score":0.55}
]
```
- **同一类可出现多条**（平铺多值）；`value`=定位后最终值（复用=树原名，新建=候选词）。
- `link`：`复用` / `新建`（前端 drawer 用）。`score`：top-1 余弦分（留痕）。

## 过关条件 → 进 ⑤组装
- 每颗/每步 `作用域` 已填（相关类带值、无关类不出现/标空）；**该多值的类已平铺、未硬压成单值**。
- 每个值都定位过、有 link+score。
- 边界没串味、值原子、同类多值无近义堆叠、无泛词、**没照搬示例词**。
