# v7.5.2 - 品牌舆情雷达 · Spec v1

> 状态：`spec-draft / design-v1 同步修订 / 待产品审阅 / PRD未生成`。
> 上游：[Input v1](input_v1.md)，内容来源为 handoff 实现输入规范 v1.7。
> 实现基线：`kol-next` / `codex/752-brand-reputation-radar` / `64b19fb349d3eb2e135f1989858a435839765bab`，核对日期 2026-09-08。
> 本文是当前唯一 Spec 评审稿。覆盖旧 VOC 能力去向、已实现品牌化逻辑、后续品牌增量和生产待决合同；不把未决项或 Demo 残留冻结成生产要求。

## 1. 使用规则与交付范围

### 1.1 上下游一致性

Input 负责目标、范围和已确认约束；本文将其展开为可供 Design、PRD、研发和测试逐项引用的业务规则。当前 kol-next Demo 是推进最远的实现事实，必须在其基础上保留成熟交互。源码证明“做了什么”，不能自行推翻 Input 的采样、权限、页面和排除边界。

Spec初稿只编制文档；2026-09-08经用户授权推进 [Design v1](design_v1.md)，同步已确认的局部Demo差异。第13节保留首次审查事实并追加处理状态，当前行为以对应正文与最新验证记录为准。PRD 必须保留本文规则编号、实现状态、分母、条件及未决项，不能只摘取模块标题。

| 标记 | 含义 | 下游处理 |
| --- | --- | --- |
| 已实现 | 当前路由实际挂载且存在可执行逻辑 | 保留并回归，不能重复开发 |
| 目标已定 / 有差异 | Input 已要求，但实现仍有缺口或口径偏差 | 使用本文规定的目标，按差异表补齐；不据 Demo 反向修改目标 |
| 后续增量 | C-01～C-03 的方向已在 Input 中出现，完整业务参数未关闭 | 单列设计与决策，不混入 Stage B 完成范围 |
| 生产待定 | 需要产品、数据或服务端给出明确合同 | PRD 必须保留阻断项，不能填入 Mock 参数代替 |
| 不纳入 | 已明确删除或排除 | 不因“继承全部 VOC”而恢复 |

“所有业务逻辑”指所有旧能力都明确去向，并完整描述当前有效与后续目标规则，不代表把旧组件、旧接口、受众画像和副作用全部搬回。第 12 节覆盖旧全景 15 项、旧动态 9 项及旧筛选字段。

### 1.2 产品目标与用户任务（BR-01）

品牌用户在一个已有 Brand 上下文中，查看已采集内容如何提及品牌、头部内容下的采样评论如何反馈，并从趋势、主题、情感和创作者分组回查证据。全景用于观察期整体阅读，动态用于近期窗口浏览。该模块为独立页面、独立付费模块，不是 Brand 第五个 Tab，不是竞品监控高级版。

主名称为“品牌舆情雷达”；页面 Tab 为“舆情全景 / 舆情动态”，默认全景。“口碑洞察”只能作为价值描述；`realtime` 是技术路由名，不构成实时采集承诺。

### 1.3 范围分层（BR-02）

| 层级 | 包含 | 当前状态 |
| --- | --- | --- |
| Stage A/B 基线 | 独立路由、固定示例、双域聚合、旧图表/表格/抽屉复用、全景筛选、动态整体地图、创作者双指标、状态降级 | 已实现为主，差异见第 13 节 |
| Stage C | 提及类型、主题关联、最多三项近期观察 | 后续增量；第 10 节写清确定边界和待决逻辑 |
| 生产适配 | 品牌身份、权益、真实内容与评论采样、来源状态、刷新与算法合同 | 尚未接入；第 14 节逐项承接 |
| 排除 | 竞品比较/竞争策略、达人机会发现、收件箱、Read/Dismiss、负责人、工单、站外通知、生成式总结编辑器、真实导出与分享、同步全量采集、移动端改造 | 不纳入 |

## 2. 对象、身份、入口与权益

### 2.1 核心对象（BR-03）

| 对象 | 业务含义 | 当前实现 / 生产约束 |
| --- | --- | --- |
| Brand | 来源品牌，业务主标识为 `pkId` | 不等同于旧 `vocBrandId` |
| 舆情范围 Scope | 经授权的品牌、平台/市场/语言、观察规则 | 当前未提供生产 scope resolver；不能靠 URL 拼接建立身份 |
| 内容 Content | 已采集集合中的一条平台内容 | Demo `id = videoId`；生产应有可去重且跨平台不碰撞的内部 ID |
| 采样评论 Comment | 可回链到内容的一条已取得评论证据 | `contentId` 必须存在于允许范围内；不是内容上的平台公开评论总数 |
| 主题 Topic / 标签 Tag | 内容或评论的分析维度 | Demo 以 topics 字符串兼作标签；正式 taxonomy 与平台 hashtag 不能默认为同一概念 |
| 创作者 Creator | 内容发布者及其规模/类型分组 | Demo 按 channelAlias 轮转指定规模/类型，非真实创作者识别 |
| 快照 Snapshot | 某范围、版本和观察窗的数据结果 | 聚合、表格、分页、证据必须来自同一快照；快照版本不能由刷新页面次数充当 |
| 证据引用 Evidence | 原始内容/评论或其内部引用 | 允许文本与内部 ID；没有合法原文链接时不伪造链接 |

### 2.2 入口与路由（BR-04）

1. 从 Brand 页面进入独立 `/brand/reputation-radar/overview`；`/brand/reputation-radar` 默认落全景，`/realtime` 可直接访问；其他 tab 不接受。
2. 当前演示入口在 Brand 基础信息“我的监控”操作区，同组次按钮。此位置是 Demo 事实；生产入口最终位置仍为 P-05，不能把它当新增全局导航或第五个 Tab。
3. Tab 切换保留现有 query；地图、主题和证据操作不跳转 `/customer-voice/:tab`。没有锚点导航、自动滚动和快速定位。
4. 打开/切页/筛选均不启动采集、重算、扣费、解锁、通知或写入。
5. 当前任何 `pkId` 均显示带示例标识的固定 SHEIN，不表示请求品牌已有数据。生产映射失败必须表达失败或未运行，禁止静默套用示例品牌。

| 参数 | 当前传递与效果 | 正式适配边界 |
| --- | --- | --- |
| `pkId` | Brand 入口传入，Tab 保留，store 记录 requestedPkId | 可信端完成 Brand→scope→查询身份映射，不能直接赋给 vocBrandId |
| `platform` | 保留来源页平台，记录 requestedPlatform；不直接裁剪雷达内容 | 与表格平台、高级筛选平台区分；生产默认范围须由 scope 合同定义 |
| `market` | 原 query 若存在会保留；当前不消费 | 投放市场/内容发布地区/受众地区不是同一字段，P-02 决定含义 |
| `language` | query 保留；不修改 UI locale 或内容/评论语言 | 三种语言概念分别定义，不能由 query.language 隐式兼任 |
| `scope_ref` | 不透明引用，未解析 | 权属、版本、有效期、失效与越权处理待 P-02/P-03 |
| `return` | 入口写入来源 fullPath，Tab 保留 | 当前无显式返回按钮；安全返回建议仅接受同站 Brand 相对路径，交互待 P-05，不标为已实现 |
| `demoState` | 固定示例场景开关 | 仅调试/验收，不是用户生产权限或生命周期 |
| `p` | Overview 兼容解码 platform、topicsComment、hash_tags 到本地筛选，随后移除 p 并保留其他 query；非法编码不覆盖已有条件 | 旧兼容输入，不新增快捷导航；不能取得生产数据或绕开授权 |

### 2.3 权益边界（BR-05）

拥有雷达权益即可查看基础内容/评论摘要、平台、时间、主题、情感（含未知）及 ID/证据引用；不以 Assets 解锁为前置。完整创作者画像、完整内容资产详情、保存到资产库及合作动作如后续提供，才独立检查 Assets 或对应权益。

当前 Demo 无真实权限矩阵、购买、解锁或有限真实预览实现。生产权益主体、免费示例/付费/到期/未运行/无权限的字段暴露、入口显隐与 CTA 由 P-03 定义。不得把现有站点登录状态、旧 VOC 白名单、Brand scope 45 或 Brand 分析基本/全部信息 scope 47/49 视作已实现 Radar 权益。

旧 Brand `unlockBaseScope` / `unlockHighScope` 虽为 GET，服务端会更新配额；任何页面读操作都不得调用这些接口。此规则按副作用判断，不按 HTTP 动词判断。

## 3. 数据集合与计算规则

### 3.1 双域集合与作用域（DATA-01）

记基础允许内容集合为 C0，已取得且可追溯的评论为 M0，当前观察窗为 W。

```text
C = C0 中满足内容条件、且发布时间落入 W 的内容
M = M0 中父内容属于 C、评论采样时间落入 W、且满足评论条件的评论
```

这是当前 Demo 的集合定义。评论条件只改变 M，不反向缩小 C；但依赖 M 的内容表评论情感、评论指标、评论主题和创作者次指标会变化。内容条件同时约束 C 与关联的 M。所有全局聚合先按完整筛选后集合计算，再作局部分页；不能只统计当前表格一页。

生产应对 C 按稳定内容 ID、M 按稳定评论 ID 去重，并保留平台原始 ID 与父内容关系。Demo fixture 的 ID 唯一，现 provider 没有可供任意脏输入使用的去重流水线。孤立评论、越权父内容或不可靠归属不能进入核心评论分母或创作者反馈。

局部内容表平台/搜索/情感/地图条件只改变该表，不缩小头部统计、地图、其它模块或评论域。局部评论表和主题表也不能反向改变全局集合。精确影响矩阵见第 7 节。

### 3.2 观察时间（DATA-02）

| 时间 | 定义 / 使用 | 当前 Demo |
| --- | --- | --- |
| 内容发布时间 `pubTime` | 内容入窗和内容趋势归桶 | 以此筛 C |
| 评论发布时间 `published_at` | 评论原始发表时间、评论表显示/排序 | 不用于同名采样新增趋势 |
| 评论采样时间 `sampled_at` | 已取得采样记录的时间、采样新增趋势 | 核心评论趋势、情感趋势、动态主题/语言小趋势、M 入窗使用此字段 |
| 观察截至 `observed_at` | 数据快照的观察/处理截至时间，不等于用户选窗上限 | 头部读取固定 fixture.lastUpdateTime；选择窗上限来自 snapshot.window.endTime。初始值恰好相同，选窗后不联动；真实处理语义待定义 |
| 查询版本 / 快照修订 | 定位可复现数据与算法版本 | 生产字段待落地，不能以 HEAD 或系统今天替代 |

Overview 为品牌允许观察窗与用户时间条件的交集；日期筛选包含开始日零点和结束日末尾。Demo 按 `+08:00` 自然日归桶，界面部分 dayjs 格式化依赖运行环境，尚未通过跨时区验证。Realtime 为固定快照截至 T 的最近 72 小时，当前实现 `[T−72h+1ms, T]`，按 6 小时分桶；旧 VOC 的 3 小时桶不再是当前 Demo 实现。生产统一时区、毫秒/秒精度、区间开闭和桶宽由 P-06 明确。

内容趋势表示“这些已采集内容何时发布”，不是新增采集任务数；评论趋势表示采样新增，不是全量评论发布量。Design同步统一了动态主题/语言小趋势的采样时间，回归必须包含published_at≠sampled_at的记录；生产窗口、旧内容近期评论的归属仍待P-06，不能由此宣称全部时间合同已关闭。

当前 M 还限制父内容发表于 W，因此不含 W 之前发布内容在 W 内新取得的评论。是否扩大为“所有已纳入头部内容在近期收到的采样评论”是 P-06 的关键决策；PRD 未关闭前必须保留此限制，不能宣称覆盖所有近期评论。

### 3.3 指标字典（DATA-03）

| 指标 | 计算与分母 | 缺失/限制 |
| --- | --- | --- |
| 已采集内容数 | C 的记录数（生产按内容 ID 去重） | 仅当前集合，不是全网声量 |
| 采样评论数 | M 的记录数（生产按评论 ID 去重） | 含已知与未知情感，不读取 `content.comments` 代替 |
| 已观测内容曝光 | Demo 为 Σ C.views | 是平台内容累计观看字段求和，非独立触达人数、非观察期增量、非跨平台去重曝光；生产字段可比性待 P-07 |
| 相关标签数 | 当前有效内容主题/标签标准化后去重数 | Demo 从 topics 小写化得到，不是新增标签数 |
| 正/负内容数 | C 中 videoSentiment 分别等于 1 / −1 的数量 | 中性和未知计入总量但不计正/负 |
| 正/负采样评论数 | M 中 sentiment 分别等于 1 / −1 的数量 | 同上；本版正/负情感占比以已知情感样本为分母。未知占比、覆盖率等使用各自定义，不能一律排除未知 |
| 内容表采样评论正/负占比 | 对该内容，当前 M 中正/负条数 ÷ 已知情感评论数 | 分母含中性；无已知评论返回 null/样本不足，不给 0% |
| 主题数量 | 对“主题 × 情感”的记录计数 | 内容可多主题，主题数之和可大于内容数；旧评论也可多主题，生产需行内去重，不能把各行相加当独立评论数 |
| 来源/地区数量 | 按内容平台/地区聚合当前 C；地图用 C72 | 只统计已知字段，缺失不构造地区/平台零值 |
| 负向评论语言数 | M 中 sentiment=−1 且语言可用的记录分组计数 | 语言缺失不解释为没有负向反馈 |
| 增长率/环比/同比 | 只有相同 scope、窗口、时间定义、模型版本与完整基线才能计算 | Demo 没有可比基线；增长值为 null，不输出增长箭头或解释原因；基期为 0 的行为待 P-06 |

所有展示值允许缩写和舍入，内部筛选、排序、分母保持原始精度。零表示“范围完整且已观察到零条”；null/unknown/unavailable 表示不能判断。真实空桶可为 0，但来源缺失、失败、未采样不得补成 0。

### 3.4 情感与主题（DATA-04）

1. Demo 情感编码为 `1 正向 / 0 中性 / −1 负向 / null或undefined 未知`；筛选值 `unknown` 能命中显式 unknown 和缺失值，不能命中中性。
2. 情感趋势保留正/负两条系列；中性与未知仍保留在总量、表格及证据。无正负记录不应推断品牌无反馈。
3. 主题表按“主题、情感”联合分组，同主题可出现多行；数量降序。主题筛选是主题值的多选 OR，选择后仍可出现该主题的不同情感行。
4. 典型内容/评论目前取该组第一条作为示例，不是“最有代表性”的模型排序，也不是按互动热度选出的结果。需要智能代表性算法时另行定义。
5. 单域主题统计不等于跨域主题关联；Demo 的 comment_topic_id 仍为主题字符串，不能当作 C-02 已具备稳定 taxonomy。
6. 情感应服务品牌反馈，生产需定义分析对象、混合立场、模型版本、置信度阈值及未知规则（P-01）；不把整条内容情感未经验证直接解释为对品牌的情感。

### 3.5 Demo 样本生成合同（DATA-05）

固定 SHEIN/17135，2026-09-01～2026-09-14，38 条内容，5 个平台（1 YouTube、2 Facebook、3 X、6 Instagram、10 TikTok）。评论以每平台每 3 个观察日观看量最高的一条内容作为示例采样头部，共 20 条父内容、180 条确定性评论；每条头部内容构造 7～11 条评论。Realtime 固定窗口包含 8 条内容、34 条采样评论。这些数值用于回归，不是平台生产配额或未来内容承诺。

评论文本、时间、语言与创作者分组均为模拟；并非来自本轮线上抓取。评论点赞数既未被确认采集，也不作为本期评论证据或热度排序字段。原 fixture 中平台公开评论计数与默认情感比例不能覆盖 Stage B 按 M 重算的采样字段。provider 返回深拷贝，调用方修改不得污染后续快照。

示例截至2026-09-14晚于本稿核对日2026-09-08，属于固定构造场景，不是预知未来或真实新鲜度证据；生产不能沿用这一日期。

## 4. 页面头部与信息架构

### 4.1 头部（UI-01）

品牌头像/名称、产品标题、示例标识、内容数、采样评论数、来源摘要、当前观察范围、观察截至和单行状态提示必须可识别。头部数量来自当前页全局快照：全景筛选后更新；动态切换到 72 小时集合后更新；局部表格筛选不更新头部。

数据状态仅弱提示，不另造数据回执区。来源/版本/失败原因需要解释时使用短 tooltip 或已有说明，不占主视图长段落。无快照时数量不可用，不把旧品牌头部数继续当当前结果。

### 4.2 固定阅读顺序（UI-02）

| 页面 | 一级分组 | 模块顺序 |
| --- | --- | --- |
| Overview | 核心概览 `core` | 品牌声量双趋势 → 核心内容指标 → 核心采样评论指标 |
| Overview | 内容舆情 `content` | 内容趋势 → 内容主题与标签（排行/所选标签趋势、词云）→ 内容情感/主题表 → 已观测来源/地区摘要 → 内容明细表 |
| Overview | 评论舆情 `comment` | 采样评论趋势 → 评论主题与情感组件（含主题表和典型评论）→ 评论明细表与主题抽屉 |
| Overview | 影响情感 `impact` | 创作者双指标、分组切换及组证据 |
| Realtime | 顶部整体看板 | 近期窗口 → RealtimeDashboard（世界地图主区域 + 72 小时新增内容/采样评论摘要 + 时间序列） |
| Realtime | 内容动态 | 内容主题/标签及所选标签趋势 → 负向内容主题 → 已观测内容地区/来源 → 热门内容表 |
| Realtime | 评论动态 | 评论主题词云 → 评论主题排行 → 负向评论语言 → 评论样本表 |

不渲染其它/受众画像/发布时间/频率一级组，不新增折叠背景组、无效入口或空卡片。影响情感在没有可用样本时使用短空态或按覆盖合同条件隐藏，不制造零分榜。两页自然连续阅读，保留一级语义标题与两个普通页面 Tab。

## 5. 舆情全景业务规则

### 5.1 核心概览（OV-01）

- 品牌声量趋势使用旧 TimeLine 的双序列、tooltip、缩放和时间范围选择，内容与采样评论分别命名；不能把两条数值相加成总声量。
- 时间选择写入全景内容时间条件，按 DATA-01 联动所有全局模块；保留其他已应用高级条件。完整范围通过清除恢复，不依赖锚点。
- 内容指标为内容数、已观测内容曝光、标签数、正向/负向内容数；评论指标为采样评论数、正向/负向采样评论数。保留旧指标行密度，不继承无基线环比。

### 5.2 内容主题与标签（OV-02）

- 排行与词云为同一个当前集合的两种展示，不使用“新增标签”语义。
- 排行指标支持内容数和已观测内容曝光；切换后按所选指标降序重排，并更新所选标签趋势。Demo 内部 `newViews` 字段映射的是累计 views，不能因此显示“新增曝光”。
- 内容数：每条内容对包含的标签计一次；曝光：关联内容 views 求和；趋势将这些值按内容发布时间分桶，不是每一天实际观看新增量。
- 点排行项只切换所选标签及其趋势，不筛内容表。全景内容标签词云当前无点击动作，不伪造证据入口。
- 无标签或字段不可用时使用短空态/条件隐藏，不保留无数据的可切换空图。

### 5.3 双情感实例与主题表（OV-03）

- 内容情感和评论情感为独立数据域实例，分别消费 C 与 M；不恢复唯一的“内容/评论切换”展示。
- 每实例包含正负情感时间序列、主题多选、主题×情感行、该组数量、第一条典型证据、主题详情按钮与分页。
- 内容域列语义为内容主题/情感/内容数/代表内容；评论域为评论主题/情感/采样评论数/典型评论。
- 主题多选只影响该域主题表，不过滤趋势、内容表、评论表或另一域主题表。应用高级筛选后，两域局部主题选择及页码重置。
- 主题详情打开该主题×情感组的全部当前证据，而不是表格当前页；关闭不改变筛选。详情数量是证据数，不是新采集结果。

### 5.4 来源和地区摘要（OV-04）

- 来源有记录则后置展示名称与内容数；单一来源保留短摘要、标记有限覆盖。没有来源不渲染空来源卡。
- 地区只在至少两个可比较地区时显示列表；单地区和无地区不建排行。地区指内容字段，不代表评论者或品牌受众地区。
- 不继承旧 Distribution 的饼图、全网平台占比或“曝光/评论/内容”三指标切换。百分比必须有成立的分母与覆盖，当前优先只显示计数。

### 5.5 内容明细表（OV-05；Realtime 共用）

| 行/控件 | 业务规则 |
| --- | --- |
| 内容信息 | 缩略图、标题、创作者、平台、发布时间。Demo 为普通文本和本地图片，不存在可验证的原文、完整资产或创作者详情跳转 |
| 内容情感 | 显示正/中/负/未知；列筛选当前仅正/中/负单选，未知可用全景高级筛选 |
| 已观测曝光 | 展示 views，支持升序/降序/取消排序；不是评论排行 |
| 增长与小趋势 | 只有真实可比历史时才展示增长；当前增长率 null。StageB不再输出复制的固定viewsTrend，无可靠序列时内容表隐藏小趋势列；底层旧fixture字段保留作历史参考 |
| 评论情感 | DATA-03 的当前采样正负比例；无已知情感评论显示样本不足，不能由平台总评论量推算 |
| 搜索 | 标题文本包含、大小写不敏感，Enter 提交；先trim再匹配，空白视为清除，不扩大为全局搜索 |
| 平台 | 单平台，默认 YouTube；控件顺序 YouTube/TikTok/Instagram/X/Facebook。全景受高级平台选项限制；未设高级平台时展示五平台，允许某平台空表 |
| 排序 | 当前仅 views；Overview 初始保留集合顺序，Realtime 默认 views 降序；取消恢复集合顺序。不要描述成默认按发布时间或提供赞数/互动量排序 |
| 分页 | 页码 1、默认 5 条，可选 5/10/20；平台、搜索、情感、排序、页容量变化均回第 1 页，页码边界无越界结果；翻页不滚动页面 |

局部条件之间 AND，与高级筛选后的 C 取交集。局部表为空不意味着整页没有内容；不能为了显示数据放宽高级条件。高级条件应用后重建表格并清局部搜索/情感/排序，页码回1，恢复集合顺序与空排序箭头一致。主题下拉候选按主题键去重，主题×情感明细行不合并。

### 5.6 评论明细表（OV-06；Realtime 共用）

- 字段：评论正文、作者/平台、主题、情感、所属内容 ID、发布时间。所属内容当前只展示 ID，不承诺可点原文或资产详情；评论点赞数不纳入本期数据合同。
- 正文关键词 trim 后即时大小写不敏感包含匹配，不搜索作者、主题或父内容；这些维度不得混同为标题搜索。
- 默认当前有评论的 YouTube；无该平台时选第一可用平台，平台选项只列当前 M 实际出现的平台。
- 默认发布时间降序；支持发布时间升序、降序、取消排序。页码与页容量规则同内容表；搜索、平台、排序、外部集合变化均回第一页。
- 点主题打开“当前评论表平台和关键词过滤后”的该主题全部记录；不只取当前分页，也不自动扩到其它平台。外部集合变化关闭旧抽屉。
- 评论表操作只影响本表和由它打开的抽屉，不反向影响内容情感基线。

## 6. 舆情动态业务规则

### 6.1 整体 Dashboard（RT-01）

世界地图是主区域，72 小时内容/采样评论摘要和旧 VOC 时间序列作为同一个 RealtimeDashboard 的叠加信息。不得拆成新摘要卡、地图卡、地区排行卡的并列体系；下面不得重复总体内容趋势，主题自身趋势仍可保留。

地图点值 = C72 中同地区新发布内容数，地区排行从同一 mapList 派生，不输入评论数、评论情感或受众地区。全部内容地区已知时地图各点合计 = 内容数；地区缺失时允许小于内容数，不能拿未知国家补齐。无地区时在地图位置显示“内容地区不可用”短空态，摘要/趋势保持可用。

摘要保留 72 小时新增内容数与 72 小时新增采样评论数，后者所在区明确“头部内容评论采样”。时间序列横轴显示实际日期/时间，固定示例不显示多个“今天”。不新增双轴柱形体系、未经证实的增长率或实时更新承诺。

### 6.2 内容动态（RT-02）

| 模块 | 统计/显示 | 点击行为 |
| --- | --- | --- |
| 内容主题/标签 | 按当前 C72 主题/标签计数降序；沿用 TopNumber，展示前 5 名和所选项趋势 | 选择标签只切换趋势，不筛表、不跳页 |
| 负向内容主题 | C72 中内容情感=−1 的主题计数，前 5 名 | 同项再点取消；筛内容表为该主题且负向；清地区条件，选择第一个匹配内容的平台，页码回 1 |
| 新发布内容地区 | mapList 的地区计数；多地区才显示排行，前 5 名 | 与地图 scatterClick 完全同义 |
| 已观测来源 | 按 C72 平台计数降序；多平台为旧 TopNumber+首位平台小趋势，单来源短摘要 | 当前无来源点击联动，不给它新增筛选语义 |
| 热门内容表 | 当前 C72 的共用内容表，默认单平台、views 降序 | 按 OV-05；局部条件标签可清除 |

TopNumber 的条形是排行相对量，不是全网平台份额。品牌局部适配器显示当前对象在该榜中的实际名次，空榜不展示排名；原VOC共用模板不修改。

### 6.3 地图到内容表事件（RT-03）

`scatterClick(country) → Realtime.selectRegion → 当前内容表筛选`。再次点击同地区取消；选择地区清除负向主题条件。切换到当前地区第一个匹配内容所在平台，并将页码回 1；原有标题/情感局部条件仍与地区取交集。

地区条件和负向主题条件互斥，不是同时叠加的多维高级筛选。条件可在内容表前的 tag 关闭；关闭仅移除该条件，保留现有平台、标题/情感和排序。空交集显示空表，不自动清其它条件。

这些操作不重建 C72/M72，不改变地图总量、评论趋势、评论表、品牌 query 或 URL；不自动滚动。保留可清除局部条件，不恢复“高级筛选 / 清除筛选 / 当前筛选结果”工具条。

### 6.4 评论动态（RT-04）

- 词云与主题排行来自 M72，按主题计数降序；排行显示前 5 名。点击词云或主题打开当前快照该主题全部采样评论；不应用评论表局部平台/关键词条件。
- 主题排行需具备足够评论样本；不足时降级为主题列表并保留可回查证据，不输出排行强结论。当前代码仅判断主题集合非空，尚未实现样本资格/最低门槛，见 DIFF-12；门槛未定义不能把一条评论视作足够样本。
- 选主题更新所选主题小趋势和摘要，不改变全局 M72，也不改内容表。词云与排行不分别创建独立数据集。
- 负向语言只统计已知语言且 sentiment=−1 的 M72；可用且有负向记录才显示排行。维度不可用显示不可用，已知零结果显示该范围无可用负向记录，不能混成补零的语言榜。
- 点击语言打开“该语言 + 负向”评论证据，保留同页上下文；语言小趋势按sampled_at统计采样新增，与DATA-02一致，生产窗口细则仍待P-06。
- 评论样本表使用 OV-06，按发布时间默认排序；不表达评论热度或全量评论排行。
- 旧热门表 views/comments 排行 Tab 已不挂载，不存在“全量评论最高内容”榜。未来若需要评论量排序，只能用可确认的 sampledCommentCount 并命名“采样评论最多的热门内容”；未定义前不恢复该 Tab。

## 7. 筛选、状态传播与证据交互

### 7.1 高级筛选（FLT-01）

仅 Overview 有一个统一抽屉，保持旧 VOC/Element 的抽屉交互形态，两组字段共用入口，不建立两套独立筛选器。

| 数据域 | 字段 | 比较方式 / 空值 |
| --- | --- | --- |
| 内容 | 关键词 | 标题+topics 文本 trim 后大小写不敏感包含；空=不限 |
| 内容 | 平台 | 多选 OR；空数组=不限，字段间 AND |
| 内容 | 时间 | 起止时间与品牌允许观察窗取交集；结束日包含整日 |
| 内容 | 情感 | 正/中/负/未知单选；空=不限 |
| 内容 | 创作者规模/类型 | 各单选精确值；空=不限；不能把 Demo 分组判定当真实生产分组 |
| 评论 | 关键词 | 评论正文包含；空=不限 |
| 评论 | 主题 | 精确单选，可搜索选项；空=不限 |
| 评论 | 情感 | 正/中/负/未知单选；空=不限 |
| 评论 | 所属热门内容 | 已有采样父内容 ID 单选；空=不限，不按同名标题模糊关联 |

Demo 候选 topics/父内容来自固定完整采样池，可能在当前内容条件下没有结果；选择后显示真实空集合，不扩大内容范围。旧 VOC 的地区、内容语言、多选内容主题、远程 hashtag 建议不在此抽屉重现；市场/语言定义见 P-02。

### 7.2 草稿与应用（FLT-02）

1. 打开时深拷贝已应用条件为草稿；改字段只改草稿，不即时影响图表。
2. 应用：传入草稿，重建全景快照并关闭抽屉；清局部内容搜索/情感、两域主题筛选和页码。展示按内容/评论数据域标记的已应用条件标签。
3. 取消、关闭按钮、Esc 或遮罩关闭：不应用草稿。再次打开读取最近已应用状态。
4. 抽屉“清除”及页面总清除立即清空两域高级条件，恢复当前品牌观察范围并关闭抽屉；不等用户再点应用。当前没有逐高级标签关闭能力。
5. 日期快捷 7/14/30/90 天锚定品牌快照结束日期，起点裁至允许起点；禁选观察窗外日期。不用机器今天推导演示窗口。
6. Realtime 挂载时清全景共享高级条件并读固定近期快照。因此当前“全景→动态→全景”回到默认全景范围，不承诺记忆原高级条件。未来若设计独立页状态缓存，需显式修订，不能留下隐藏筛选。

### 7.3 影响矩阵（FLT-03）

| 操作 | 全局内容 C / 内容基线 | 全局评论 M / 评论派生 | 局部表格/图表 | 其他副作用 |
| --- | --- | --- | --- | --- |
| 全景内容高级筛选/时间选择 | 更新 | 限制到关联评论 | 全景各模块同步、分页回1 | 无采集/扣费 |
| 全景评论高级筛选 | 不变 | 更新，包括内容表评论情感与创作者次指标 | 评论模块同步 | 不改变内容情感基线 |
| 内容表搜索/平台/情感/排序 | 不变 | 不变 | 仅该内容表，页码回1 | 不滚动 |
| 评论表搜索/平台/排序 | 不变 | 不变 | 仅该评论表和其主题抽屉 | 不滚动 |
| 情感主题多选 | 不变 | 不变 | 仅选中域主题表，页码回1 | 趋势不变 |
| 全景/动态标签选择 | 不变 | 不变 | 只切所选标签趋势 | 不跳页 |
| 动态地图/负向内容主题 | 不变 | 不变 | 仅内容表与所选项摘要；条件互斥 | 不滚动、不跨域 |
| 动态评论词云/主题/语言 | 不变 | 不变 | 所选项小趋势+对应快照证据抽屉 | 不改主评论表条件 |
| 创作者分组 scale/type | 不变 | 不变 | 重算分组展示 | 不改筛选/来源身份 |
| 翻页/切页容量 | 不变 | 不变 | 当前表的可见行 | 不触发新采集 |

### 7.4 主题与创作者证据抽屉（EVD-01）

复用右侧主题抽屉，内容为标题/主题、证据条数、作者/头像、日期、全文及可用 evidence_ref。评论证据不展示点赞数；内容证据仍可展示内容自身已有的互动字段。一次性传入当前匹配证据，内部滚动；当前无抽屉内分页、搜索、排序或真实外链。关闭只关闭视图，不清页面条件。

从内容情感打开的是内容证据，虽然 adapter 字段叫 comments，不得在产品上叫采样评论；评论情感打开的是对应主题×情感的采样评论；动态主题/语言从全局当前 M72 取证据；评论表主题从本表局部过滤集合取证据。

创作者证据仍在同一个抽屉内，按“内容证据/已采集内容集合”与“头部内容评论采样”分段，分别显示数量；顶部总数仅表示证据总条数。不是内容表/评论表双Tab，也不把混合条数命名为评论量。缺评论仍可查看内容证据；任何证据动作不得回退到Assets解锁。

## 8. 创作者影响情感指数

### 8.1 用户语义与图表（IMP-01）

以“内容情感基线”为主、“带评论内容情感”为次，比较当前内容所属创作者规模或类型组的反馈。不是创作者规模排名、合作价值评分、因果影响或营销 ROI。

两条水平发散条共用 −100～100、同零点/方向；主条粗实心高对比，次条细浅色/描边，有图例与文字补充。保留固定分组顺序，不按分数造达人排行榜。点条、分组标签或查看内容按钮打开组证据，无自动滚动。无有效基线不能画 0；评论不足显示“评论样本不足”，不展示覆盖率和偏移量。

### 8.2 已实现的演示公式（IMP-02）

对组 G，B 为内容情感已知且规模权重有效的内容，F 为 B 中至少有一条已知情感关联采样评论的内容。对内容 i，s_i∈{−1,0,1}；f_i 为该内容已知情感采样评论的情感分均值；w_i 为规模层级权重。

```text
主指标 = 100 × Σ(B 内 w_i × s_i) / Σ(B 内 w_i)
次指标 = 100 × Σ(F 内 w_i × (0.6 × s_i + 0.4 × f_i)) / Σ(F 内 w_i)
```

次指标需同时满足 `|F|≥2` 且 F 内已知情感评论数≥5，否则 null。无 B 时主指标为 null；评论缺失、未知情感不进入对应均值/分母。每条内容先形成自己的评论均值，再按内容权重汇总，不按评论多的内容无限放大。分数展示一位小数。

上游另要求评论覆盖率只作内部展示门槛、不进入图表。该要求仍保留；当前 Demo 尚无覆盖率门槛判断，仅实现上述两项绝对样本门槛。上游演示覆盖率为“取得评论的内容数/内容总数”，生产需进一步确定未知情感评论是否构成有效覆盖、分母取组内容还是有效内容及具体阈值（P-01）。不能把绝对条数门槛默认为已替代覆盖门槛，见 DIFF-13。

当前规模权重 Nano/Micro/Mid-Tier/Macro/Mega = 1/2/3/4/5，标签范围 0–10K / 10K–50K / 50K–500K / 500K–1M / 1M+；类型为 fashion/lifestyle/beauty/home。真实规模边界是否含端点、权重、0.6/0.4、样本门槛都不是已验证生产算法（P-01）。Demo 的分组来自轮转 fixture 而非真实粉丝值映射。

### 8.3 样本量与筛选（IMP-03）

主条末n为参与公式B的有效内容数`validContentCount`，排除未知情感和无有效权重的内容；次条n为有已知情感评论的有效内容数`commentedContentCount`。组全部内容量`contentCount`继续保留用于证据范围，不冒充计算样本量。tooltip和可访问文本沿用相同有效n；生产权重/阈值仍待P-01。

内容条件改变 B/F；评论条件不改变 B 与主指标，但会改变 F、评论均值、次指标及其能否达到门槛。未知创作者规模/类型或缺失归属不能猜一个分组。是否给出整体不分组结果另由数据方案定义，不新增本期图表。

## 9. 加载、异常、空态与覆盖

### 9.1 请求状态（ST-01）

页面组件→独立 Vuex→Mock Provider→统一快照。加载开始置loading、清当前错误；快速筛选/切页使用递增requestId，只允许最后一次结果落状态。失败清snapshot，结束loading并显示错误，不能保留与当前条件不符的旧数字。两页均提供重试，重新读取当前Mock快照，不触发主动采集或服务端写入。

旧副本 mixins/store/API 的存在不表示当前页面使用了所有 endpoint。当前两页直接消费 stageB snapshot；brand store 另调用 Mock 品牌元信息。scope 变更、tab 变更和后续品牌变更必须避免旧数据覆盖新身份；Demo 尚未证明同路由仅变 pkId 的生产刷新链。

### 9.2 数据状态（ST-02）

| 状态/场景 | 当前展示及数据处理 | 不得推断 |
| --- | --- | --- |
| `active_with_data` | 默认固定示例，核心模块可用 | 真实生产覆盖完整 |
| `active_partial` | 总体部分覆盖，来源 limited；评论语言 unavailable，负向语言降级 | 未回收语言=0条，或整页全网结论 |
| `active_delayed` | 延迟短状态、来源 limited，保留原内容与观察截至 | 已验证调度/多久恢复 |
| `active_stale` | 过期短状态，保留原快照日期 | 页面刚打开即数据最新 |
| `active_single_source` | 仅 YouTube 内容及关联采样，整体部分覆盖，来源短摘要 | 其它平台没有舆情 |
| `active_no_regions` | 内容地区字段缺失、无地图点/地区排行；保留内容、评论和Dashboard摘要 | 可以改成评论地图 |
| `active_empty` / 空交集 | 当前集合为空；明确范围内无记录，核心指标可为0，但无证据图不画假线 | 品牌全网无舆情 |
| 未识别状态/加载失败 | 不默认标可用，使用不可用/错误 | 可据状态参数扩大权限 |

每个模块逻辑上区分 available / limited / unavailable；Demo 目前仅 sources、regions、commentLanguage 等有显式覆盖字段，其余靠集合为空与条件渲染，不是已经具备完整生产覆盖元数据。生产需要模块/来源级状态及原因，不允许给所有空数组同一种状态。

### 9.3 空态条件（ST-03）

- 内容时间字段不可用：趋势不可用；采样不足：评论趋势/比例不冒充全量统计。
- 头部采样范围无法标定或采样父内容不足：评论趋势降级为“评论采样不足”；主题样本不足保留主题列表与证据，不维持完整排行强结论。数量事实可保留但必须说明范围，比例/排行/趋势各自的资格与最低门槛由P-04明确，当前非空判断并不满足全部目标。
- 无标签/主题：显示短空态或隐藏图表；无正负但有中性/未知时保留明细，不能误写成没有内容。
- 来源单一：摘要可见且有限；地区单一：不显示地区排行；地区缺失：地图专属短空态，不删除 Dashboard 摘要。
- 没有有效评论：显示评论样本不足/无可用采样；内容基线与内容证据仍可用。
- 只有在真实来源完整、时间桶有效且计数已知为零时画0；两域全空时总时间线无series，标签无记录时短空态。不以空集合生成可误读的零趋势；生产来源覆盖和资格门槛仍须另行定义与验收。

## 10. Stage C：后续品牌增量规格边界

本节保留 Input 已提出的全部新增业务方向，**尚未作为完整实现交付，也未批准全部候选算法**。不得因写入本文就标记已开发。下列确定规则可进入 Design 的待决清单；未关闭参数在 PRD 中必须有决策记录及版本，不得省略。

### 10.1 提及类型（C-01）

内容分类为自然提及 `organic_mention`、疑似推广 `suspected_promotion`、未知 `unknown`；保存判定理由与证据引用。只能依据可见标题、描述和披露特征，不推断真实合同、投放、付费或销量归因。信息缺失、冲突或证据不足为未知。

展示目标：嵌入现有内容聚合/表格附近，不新增卡片体系；具体列位置和高级筛选字段由 Design 形成方案。若有分类筛选，遵循内容域规则，不能额外改变评论归属合同。分类计数按内容 ID 去重，三类互斥且穷尽当前允许集合，未知不可隐藏以抬高自然占比。

尚需决策：自然提及需要何种正面证据（不能仅“没找到广告标识”就认定自然）；允许的披露信号、冲突优先级、模型/人工修订规则及可见证据范围。Stage C 提案建议字段 classifier_version/review_status，仅为建议，未接入生产模型。现 Demo 无 mention_type 完整字段/聚合/UI。

### 10.2 内容主题与采样评论主题关联（C-02）

展示同一规范主题下的内容数、关联采样评论数、采样评论负向占比，并可打开已有主题证据。必须存在稳定共同主题键和分类版本；不能用翻译后显示名称或字符串相似度硬关联。多主题记录在不同主题行可重复归属，主题行总和不代表唯一内容/评论总量。

当前单域主题表与 comment.contentId 可复用；生产统一 topic_id/topic_label/taxonomy_version 尚未成立。负向比例在有足够已知情感评论时才展示；无评论不显示 0% 负向。候选分母为该关联主题已知情感采样评论数，未知单列；正式门槛待决。

必须明确的关联选择：同主题的所有允许评论，还是同时要求父内容也被打上该主题；两者会产生不同集合。需在 P-08 中选定并提供跨域主题不一致示例、去重结果和父内容关系。选择前不以现有同名字符串推出关联结果，也不将本文写成某个 join 已上线。

### 10.3 近期观察（C-03）

在 RealtimeDashboard 后紧凑呈现最多三项当窗事实：内容负向与采样评论负向差异、同主题双域表现差异、内容传播来源与评论证据来源交集。证据沿用现有抽屉，不能自动定位或新增 Read/Dismiss、通知和工作流。

没有可比前序基线不使用“升温/恶化/爆发/增长原因”；不同分母的比例差不能解释成因果或风险等级；样本不足或来源不可比则省略相应项，不强凑三条、不伪造叙述。当前还未建立“传播来源/证据来源”的独立定义：若都用父内容平台，M的来源天然属于C的来源，交集成立只是集合包含关系，不能包装成品牌洞察。该项在P-10给出非平凡、可比较的来源定义和算例前不生成，不代表全网共振。

待决：先并列事实还是显示百分点差；两域分母、最小样本、主题关联模式、排序与重复抑制。提案中的“并列事实优先”未替代 Input 的差异方向，需明确接受后写入版本决策。当前没有观察计算/展示模块，不把已有主次指标差偷偷当观察。

实施建议顺序 C-02 稳定主题与归属 → C-01 可审计分类 → C-03 消费已定义事实；每项先关闭定义再同步 Demo，单独验收，不回退 Stage B。

## 11. 数据接口、实现隔离与设计承接

### 11.1 页面最小读合同（API-01）

以下为业务读模型，不预定生产 endpoint 或数据库表。

| 类别 | 最小信息 | 当前落地情况 |
| --- | --- | --- |
| 身份/范围 | brand_pk_id、scope 引用、来源平台/市场/语言、允许窗口 | 当前只有请求来源与固定fixture映射，真实scope未落地 |
| 内容 | id、平台原始ID、标题/摘要、发布者引用、发布时间、平台、地区、语言、主题、内容情感及版本、可用观看值、证据引用 | Demo 大部分具备；缺真实语义和处理版本 |
| 评论 | id、contentId、文本、作者、平台、发表时间、采样时间、主题、情感/置信度、source_status、evidence_ref | Demo具备确定性模拟字段，不能代替采样服务 |
| 快照 | window、observed_at、query_version、snapshot_revision、来源/模块coverage、限制原因 | window及部分coverage已实现；独立时间/修订合同待生产定义 |
| 聚合 | totals、trend/contentEmotion/commentEmotion、contentThemes/commentThemes、sourceList/regionList/mapList、tags、negativeTopics/negativeLanguages、impact | 来自同一 StageB snapshot |
| 筛选候选 | 可用平台、规模/类型、主题、采样父内容 | 当前固定池返回，不代表真实权限内候选服务 |
| 结果状态 | 成功、空、有限、不可用、错误；不能只给空数组 | 当前内存Promise封装 errorNum=0/retData，store支持失败；生产错误码未定义 |

数据 adapter 可兼容旧组件的字段名（如内容主题数量暂落 commentCount），但不得让字段名改变产品域语义。服务端可以采用聚合/明细分页接口，前端不能为了“一份快照”无限加载生产全量数据；一致性依赖 scope/query/snapshot 标识，容量、缓存、并发与分页传输由生产设计补齐。

### 11.2 旧系统可复用与不可直接复用（API-02）

旧 `/ws/voc/*` 已在 KOLServer 实现，涵盖品牌、内容/评论聚合、主题、标签、画像、发布分析和内容表。旧业务主键是 vocBrandId+industryId；其评论查询按 published_at，时间序列还存在补0和环比逻辑。这些都是适配参考，不是752当前请求路径或新采样策略。

kol_server_v2 存在 Brand 基础互动内部 provider，新旧服务间有适配，但本次检索未发现 Radar/VOC 全链已经迁移。Brand 的内容监控与基础/高级数据解锁有真实配额副作用，不能把这些接口接到 Demo 的读操作。

### 11.3 前端隔离与兼容（API-03）

- 业务壳、brand store、Stage B provider 独立在 brandReputationRadar 命名空间，旧 `/customer-voice/:tab`、store/voc、api/voc 保持现有行为。
- 通用 ECharts、平台切换、标题切换、TopNumber、词云、表格、分页优先复用；带旧业务身份的页面/mixin/Emotion/FilterDrawer 使用品牌副本或 adapter，不能直接带入旧网络请求。
- 共享 `realTimeAdditionBarChart.vue` 的 absoluteTimeLabels 默认 false，品牌 Dashboard 显式 true；旧调用方未 opt-in。共享兼容检查不能替代旧 VOC 带权限整页回归。
- 本期零雷达业务请求/采集/重算/计费/通知/导出/写入；全站壳层 SDK、统计、查询及开发 HMR 单列，不能宣传整站零网络。

### 11.4 Design 必须承接（DSN-01）

Design 以 `kol2.0-design-specification/README.md`、`playbook/design-principles.md`、`element-ui-alignment.md`、`accessibility.md` 和已实现 Demo 为依据，具体视觉只在 Design 冻结，不重新发明组件系统。

必须保留旧 VOC 桌面栅格与密度、半宽适配组件成对排布、白底卡片/标题结构、图表/表格/分页/抽屉；Creator 图与其它组件背景和标题对齐，主次条不只靠颜色区别。loading/empty/error 不混用；支持键盘焦点、Esc关闭、明确标签和采样文案。完整五语文本、长文溢出及未知状态需独立验证，不以局部词条解析代替。

Input 要求1440/1280桌面无新增溢出；历史验收记录同时报告全站1424px最小宽度。Design 必须区分继承全站宽度与雷达新增溢出，实测后记录，不能宣称1280已完全无横向滚动。手机适配不进入本轮范围。

## 12. 旧 VOC 全能力去向与 PRD 覆盖矩阵

### 12.1 Overview 15 项

| 旧模块 | 752 处理 | 有效规则 / PRD 必须保留的逻辑 |
| --- | --- | --- |
| 1 TimeLineChart | 保留并品牌化 | OV-01、DATA-02：双序列、tooltip、选窗、采样标签 |
| 2 DataRowSection | 拆内容/评论指标行 | DATA-03：绝对量；无基线不继承环比 |
| 3 平台 Distribution | 降级 | OV-04：已观测来源计数，单来源有限；无全网饼图/三指标切换 |
| 4 地区 Distribution | 条件展示 | OV-04：多地区列表，非受众/评论地区 |
| 5 HashTagSection | 保留排行/趋势/词云，取消新增语义 | OV-02：两指标、局部所选标签、词云无动作 |
| 6 EmotionSection | 内容/评论双实例 | DATA-04、OV-03、EVD-01：独立趋势、主题过滤、分页和证据 |
| 7 InfluencerScaleSection | 合并进入影响情感 | IMP-01～03：规模分组和演示权重，不独立排名 |
| 8 InfluencerTypeSection | 合并进入影响情感 | IMP-01～03：类型分组，不独立排名 |
| 9 AuditGenderSection | 不纳入主视图 | 不将受众性别推为评论者结构 |
| 10 AuditAgeSection | 不纳入主视图 | 不恢复年龄卡 |
| 11 AuditAreaSection | 不纳入主视图 | 与内容地区明确分开 |
| 12 AuditLanguageSection | 不纳入主视图 | 与负向评论语言明确分开 |
| 13 ContentScheduleSection | 不纳入主视图 | 无发布时间热图或折叠背景入口 |
| 14 ContentFrequencySection | 不纳入主视图 | 无频率/发布规律判断，底层字段可保留 |
| 15 ContentTableSection | 保留并改采样字段 | OV-05：标题搜索、平台、情感、观看排序、分页；非真实资产操作 |

### 12.2 Realtime 9 项

| 旧模块 | 752 处理 | 有效规则 / PRD 必须保留的逻辑 |
| --- | --- | --- |
| 1 RealtimeDashboard | 整体保留、数据域隔离 | RT-01、03：内容地图+两域摘要/趋势、局部地区筛选、不滚动 |
| 2 TopWordCloudSection | 评论采样域保留 | RT-04：主题词云、同页抽屉 |
| 3 评论主题 TopNumber | 保留 | RT-04：前5、所选主题小趋势、证据 |
| 4 负向评论语言 TopNumber | 条件展示 | ST-02、RT-04：语言可用门槛、负向集合、抽屉 |
| 5 内容地区 TopNumber | 降级 | RT-02/03：多地区、与地图同源、局部条件 |
| 6 内容平台 TopNumber | 改内容计数来源摘要 | RT-02：不沿用新增曝光排行，单来源摘要 |
| 7 热门标签 TopNumber | 保留 | RT-02：计数榜、所选项趋势，不跳Overview |
| 8 负向内容主题 TopNumber | 保留/条件展示 | RT-02/03：负向主题+局部表、与地区互斥 |
| 9 TopTableSection | 旧容器不挂载，双域表替代 | OV-05/06：当前内容表+新增评论表；旧views/comments Tab、地区/语言/赞数/互动量列不是已保留能力 |

### 12.3 跨模块旧逻辑

| 旧逻辑 | 当前决定 |
| --- | --- |
| 旧白名单、品牌选择器、vocBrandId 查询 | 不继承为新身份/授权；用 Brand 上下文与独立权益，生产待定义 |
| 旧时间、平台高级条件 | 保留并采用草稿应用规则；Realtime无高级抽屉 |
| 旧地区/语言多选、内容主题多选、远程 hashtag 建议 | 不在现高级抽屉暴露；内容表/主题表局部能力另述，market/language合同待定 |
| 旧按条件直接跳Overview并定位 | 改同页局部条件/抽屉；兼容p只处理既存链接，不恢复定位 |
| 旧动态3小时桶、前期环比、缺点补0 | 桶宽记Demo差异；无可比基线不算增长，缺失不补0 |
| 表格分页、排序、tooltip、图例、抽屉内部滚动 | 保留适用交互，按新数据域与集合边界使用 |
| 复制的 mixins/store、TopTable、频率与画像字段 | 未挂载参考资产；测试到旧provider不代表页面能力 |
| 导出/分享/主动刷新采集/重算 | 不作为当前继承能力，不新增真实副作用 |
| 新增评论明细表、Creator双指标、双域高级字段 | 本版已有新增能力，分别按 OV-06 / IMP / FLT 验收 |

## 13. 实现差异与验收缺口登记

以下表格保留Spec初稿源码/实页审查快照（修正前），用于追溯；不是当前未完成清单。2026-09-08 Design同步处理状态见表后“本轮处理”，对应正文已同步新行为。已有通过数不能覆盖未决门槛与生产问题。

| 编号 | 当前事实 | 本 Spec 对下游的要求 |
| --- | --- | --- |
| DIFF-01 曝光小趋势 | 内容 viewsTrend 共用固定示例序列；growthRate已null，但“曝光量增长趋势”列仍在 | 不能当逐内容真实历史；生产有同口径历史才显示，没有则降级/隐藏；Demo 如继续迭代，应修正标题/空态或生成与内容时间一致的模拟序列 |
| DIFF-02 评论时间 | 核心趋势/入窗用sampled_at；动态主题/语言用published_at；fixture二者相同 | 明确采样新增与发表趋势，使用同名指标时统一时间；补不相等样例验收，P-06关闭 |
| DIFF-03 排名标记 | TopNumber顶部#1硬编码，非首位选择也会替换top对象 | 名次应真实或不展示排名标签，不能给任意选中对象标冠军 |
| DIFF-04 内容搜索 | 非空关键词未统一trim，空白和有效词首尾空格处理不同 | 正式匹配trim后执行；保留Enter触发，不改变为隐式全局搜索 |
| DIFF-05 排序状态 | 全景应用高级筛选重建表格，但父videoSort可能保留、表头箭头复位 | 决定保留/重置时必须数据与可见排序一致；当前不宣称视觉与排序状态完整同步 |
| DIFF-06 Creator主n | 主条n=组全部内容量，公式分母排除未知；不是有效计算样本量 | Design明确n文案/有效样本数表达；PRD不能写错分母；不新增覆盖率主指标 |
| DIFF-07 证据域标识 | Creator抽屉把内容+评论合在一个comments形状列表，scopeLabel只写采样评论 | 保留单抽屉，区分记录域及数量，避免将内容证据标为采样评论；不新增证据工作流 |
| DIFF-08 空趋势与覆盖 | 空集合仍可产生带time的零序列；大部分模块未显式available/limited/unavailable | 缺失/不可用不画零趋势；真实完整空桶才可为0；建立最小覆盖原因并补状态验收 |
| DIFF-09 主题候选 | topicOptions来自主题×情感行，同主题候选可能重复 | 候选按主题键去重，主题表保留不同情感行 |
| DIFF-10 全量旧能力声明 | 实际未挂载旧TopTable、Distribution多指标、地区语言高级筛选 | 以第12节逐项去向为准，禁止“旧VOC全部零损保留”模糊交付 |
| DIFF-11 文档事实版本 | 复制Input保留历史旧分支/未提交与研究目录相对链接 | Input来源历史保留并显式标时态；当前版本和唯一Spec入口见README/本文，不用旧HEAD重建当前Demo |
| DIFF-12 评论模块门槛 | 评论主题非空即渲染排行，趋势/比例也未完整验证头部资格及独立最小样本门槛 | P-04区分eligible/insufficient/unavailable；不足时主题列表和证据可保留，趋势/比例降级，不把任意非空集合视为足够 |
| DIFF-13 Creator覆盖门槛 | Demo仅检查有效父内容≥2和已知评论≥5，没有Input要求的内部覆盖率门槛 | P-01明确覆盖率分子/分母/阈值后适配；保持覆盖率不进入主图，不恢复偏移量 |
| V-01 旧页回归 | 既有记录只有共享SFC兼容4项，非白名单旧VOC整页 | D-04不能宣布已关闭；具备授权环境再验收 |
| V-02 语言与宽度 | 历史五语词条检查非全页视觉，1280继承1424最小宽度 | Design列明全页五语/溢出/焦点测试，不能当新移动端开发 |

### 13.1 本轮处理：Design v1同步

| 原差异 | 本轮决定与实现范围 | 尚未关闭 |
| --- | --- | --- |
| DIFF-01/03/04/05/06/07/09 | 无可靠历史隐藏趋势列；实际名次；trim；全局条件重置局部排序；有效主n；同抽屉分域计数；主题候选去重 | 验证证据统一见 [Design验证记录](reviews/design_v1_review.md) |
| DIFF-02 | 所有同名采样趋势改用sampled_at，包含两个时间不等的回归样例 | P-06生产入窗/时区/旧内容归属未决 |
| DIFF-08 | 两域全空不输出总趋势；空标签短空态；全景增加Mock读取重试 | 生产覆盖资格和缺失原因元数据仍待定义 |
| DIFF-10/11 | 文档明确旧能力去向、来源快照与当前权威 | 后续同步必须保持唯一生效链 |
| DIFF-12/13 | Design定义不足/不可用的显示分支 | P-04评论资格与P-01覆盖门槛未定，未实现生产判断 |
| V-01/02 | 验证范围逐项记录，不用历史脚本数字代表全页或全语种验收 | 旧VOC授权整页与完整五语长文视觉仍待核验 |

以上决定的设计细则见Design D-01～10；代码实现状态与本轮命令结果以验证记录为准。本Spec保持v1并记录同步修订，不再生成一份并行生效规格。

## 14. 生产与 Stage C 待决合同

本表全部需要写进后续 PRD 的“未决/限制/验收”部分。责任为角色建议，不代表已分派给具体人员。

| 编号 | 决策主题 | 已确定部分 | 必须补齐的输入与关闭证据 |
| --- | --- | --- | --- |
| P-01 | 情感、创作者算法 | 双指标形式、未知不补0、不展示偏移/覆盖率，覆盖门槛仅供内部 | 产品+数据：品牌情感对象/模型版本、分组边界与真实来源、规模权重/混合比例/有效样本门槛、内部评论覆盖率分子/分母/阈值；提供含未知/缺评论/低覆盖/头部极值的算例 |
| P-02 | 身份与范围 | Brand pkId主身份；参数保留≠消费 | 服务端+产品：scope解析、品牌映射、market含义、内容/评论语言、范围版本/失效；给跨品牌和非法scope验证结果 |
| P-03 | 独立权益与预览 | 独立付费，基础证据不依赖Assets | 产品+服务端：权益主体、租户/角色/到期、示例与真实预览字段、入口显隐、错误态/安全CTA；不能沿用scope45/47/49猜测 |
| P-04 | 采样/刷新/覆盖 | 存量内容+头部评论采样；读页不采集 | 数据+服务端：头部选取、TopN、每内容上限、回补/去重、趋势/主题排行/情感比例各自的eligible/insufficient/unavailable门槛与降级、可保留的数量/列表；来源缺失、延迟/过期判据、刷新生命周期与数据时间。无采集SLA承诺，通知不纳入本Spec实施 |
| P-05 | Brand入口/返回 | 独立页面、带上下文；Demo与我的监控同组 | 产品+Design：正式入口位置、无监控/无权益入口状态、安全return白名单及缺省；不追加全局导航 |
| P-06 | 时间与比较 | 双域窗口隔离，无基线不输出增长 | 产品+数据：评论采样时间/发表时间、是否含旧内容近期评论、时区/桶宽/开闭边界、同口径基期、零基期处理；用采样晚于发表和跨日记录验收 |
| P-07 | 曝光/标签数据 | 当前views求和、topics兼作标签 | 数据+产品：平台观看字段可比性、累计/新增语义、每内容历史曲线、未知值、hashtag与分析主题分离；不外推独立触达 |
| P-08 | C-02主题关联 | 稳定共同键、去重、无样本不报0% | 产品+数据：taxonomy维护、join父内容限制、版本/多主题、负向分母与最小样本；跨域不一致主题算例 |
| P-09 | C-01提及判定 | 三类，疑似推广不等于合作 | 产品+数据：披露证据清单、自然提及正面依据、冲突/人工优先级和分类版本；三类及冲突样例 |
| P-10 | C-03观察 | 最多3项、有证据、无因果/基线外推 | 产品：并列或百分点差、门槛、主题可比性、传播来源/证据来源实体及平台维度定义、非平凡交集算例、排序/去重；不足时省略的例子 |

这些缺口不阻止复用已实现页面继续评审，但阻止把整份 Spec 宣称为可直接上线的完整生产数据/权益方案。当前可承接静态交互与数据域合同 PRD 草稿；生产研发冻结须关闭其所涉及的 P 项。

## 15. 验收与 PRD 转写合同

### 15.1 验收场景

| 用例 | 输入/动作 | 必须观察到的结果 | 对应规则 |
| --- | --- | --- | --- |
| AC-01 入口 | Brand入口/直接overview/realtime/非法tab | 默认全景、两普通Tab、query保留、非法tab拒绝；无VOC跳回 | BR-04 |
| AC-02 非示例参数 | 非17135、带market/language/scope_ref | Demo仍明确SHEIN示例；不伪装生产范围生效 | BR-03/04 |
| AC-03 页面组织 | 两页完整阅读 | 全景core/content/comment/impact；动态整体Dashboard+内容/评论；无其它/锚点/动态高级筛选 | UI-02、RT-01 |
| AC-04 集合一致 | 默认/平台/日期/关键词的全局过滤 | 头部/总量/趋势/来源/全表分页同快照；内容记录与评论父ID一致 | DATA-01/03 |
| AC-05 评论隔离 | 评论关键词/主题/情感/父内容筛选 | 内容数量和Creator主指标不变；评论指标及次指标变化 | FLT-03 |
| AC-06 抽屉草稿 | 编辑后取消/关闭，再应用，再清除 | 取消不改结果；应用有域标签；清除恢复品牌窗、页码重置 | FLT-01/02 |
| AC-07 跨Tab | 全景筛选→动态→全景 | 动态不带隐藏高级条件；当前全景返回默认，不承诺筛选记忆 | FLT-02 |
| AC-08 表格 | 搜索/平台/情感/排序/5-10-20/翻页 | 作用当前表；数量/页码有效，排序值与箭头一致，标题搜索和正文搜索区分 | OV-05/06 |
| AC-09 标签与主题 | 标签指标切换、主题多选、翻页/打开详情 | 标签排序/趋势联动；主题只筛主题表；抽屉证据集合正确 | OV-02/03、EVD-01 |
| AC-10 地图/负向主题 | 点地区、复点、点负向主题、关闭tag | 内容表筛选、两条件互斥、平台/页码正确；评论与scrollY不变 | RT-03 |
| AC-11 动态评论 | 点词云、主题榜、负向语言、评论表主题 | 各抽屉按入口对应集合取记录，未自动扩大或缩小其它域 | RT-04、OV-06 |
| AC-12 时间差异 | published_at≠sampled_at、旧内容近期评论、跨时区边界 | 按已决窗口定义统计；不得因fixture相同误判通过 | DATA-02、P-06 |
| AC-13 Creator | scale/type、无评论、全未知、阈值以下与边界 | 同尺度、主次差异、null非0、n语义准确、有内容证据 | IMP-01～03 |
| AC-14 降级 | partial/delayed/stale/single_source/no_regions/empty；仅1条评论、父内容采样资格未知 | 不补缺失来源、无地区保留摘要、旧日期不冒充新数据、零与不可用分开；样本不足降级列表/证据，资格未知不默认画趋势/比例 | ST-02/03、P-04 |
| AC-15 并发/错误 | 连续改条件、旧结果晚回、加载失败后重试 | 最后请求生效、失败不露旧范围数据、不执行副作用 | ST-01 |
| AC-16 权益/请求 | 读页及所有本地交互 | Radar业务写入/采集/解锁/计费/导出请求为0；壳层请求单列 | BR-05、API-03 |
| AC-17 兼容/视觉 | 旧VOC授权整页、1440/1280、五语、键盘 | 无旧页回归、无新增溢出、实际焦点/抽屉/分页可用；缺口单列 | DSN-01、V-01/02 |
| AC-18 Stage C | 三分类、跨域主题、足/不足观察样例 | P-08～10关闭后再执行；当前未实施为不适用，不记通过 | C-01～03 |

### 15.2 本次证据与结果

本次在 Node 14.21.2 下重新执行 Stage B 测试 13/13、Demo acceptance 37/37，退出码均为0。内置浏览器实际查看两页，核对默认38/180、动态8/34、四组全景、动态两域与整体看板；高级筛选可打开并取消。此为本次抽样实页核对，不冒充所有 AC 场景都已通过。

历史 T3 53/53、补充交互39/39、共享图表4/4只引用既有验收记录，本次未全量重跑；D-04整页旧VOC和完整五语视觉仍未关闭。本次不调用真实服务端读写 API，不运行生产构建。详见 [Spec 证据与一致性审查](reviews/spec_v1_review.md)。

### 15.3 转写 PRD 的强制检查

1. 按 BR/DATA/UI/OV/RT/FLT/EVD/IMP/ST/API/DSN/C/AC 编号逐项承接；第12节每个旧模块都能在PRD找到保留、修改、降级或排除结果。
2. 每个可交互模块写明输入、前置条件、默认/空/错误、筛选作用域、排序/分页、证据集合和副作用，不只贴截图。
3. 每项统计写对象、窗口、时间字段、去重、分母、未知值、来源及版本；不把Demo常量写成生产采样策略或算法。
4. 第13节差异和第14节未决项逐项给出已关闭证据或保留状态；不能在PRD生成时静默消失。
5. Design需明确视觉与交互状态，但不得改变本文已确认业务范围；新决策先回写Input/Spec及_sync_inbox，再同步Demo。
6. 静态Demo可用、Spec稿件完成、产品审阅通过、生产可交付分别记录；本稿不宣称后面三者已同时完成。

## 16. 源码与上游引用索引

源码以 `/Users/yukuangji/Work/NoxInfluencer/pm-workspace/` 为根；以下编号可供PRD引用，实际行号和验证证据见评审记录。文档内相对链接以本目录为准。

| 证据 | 路径 | 覆盖内容 |
| --- | --- | --- |
| IN | [input_v1.md](input_v1.md) | 上游范围、旧模块矩阵、Stage B/C、采样与排除合同 |
| FE-01 | kol-next/pages/brand/reputation-radar/_tab.vue；index.vue；components/brandAI/pageComponent/brandBasic.vue | 路由、入口、头部快照、参数传递 |
| FE-02 | kol-next/components/brandReputationRadar/overview.vue；realtime.vue | 当前真正挂载的模块、集合映射与交互 |
| FE-03 | kol-next/components/brandReputationRadar/section/{filterDrawer,contentTableSection,commentTableSection,emotionSection,themeDrawer,hashTagSection,creatorImpactSection,realtimeDashboard,brandTimeLine}.vue | 字段、筛选、分页、证据、图表 |
| FE-04 | kol-next/api/brand/reputationRadarStageB.js；reputationRadarMock.js；assets/demo/brandReputationRadar.js；store/brandReputationRadar/{stageB,brand}.js | Mock数据、样本选择、聚合、时间、Creator算法与异步状态 |
| OLD-01 | kol-next/components/voc/{overview,realtime}.vue；overviewMixin.js；realtimeMixin.js；section/；api/voc.js；store/voc/ | 旧15/9模块、旧查询与被移除行为 |
| BE-01 | KOLServer/WebService/src/main/java/com/nox/kol/ws/upgrade/voc/VocController.java；Common/src/main/java/com/nox/kol/upgrade/vo/VocParamDto.java；ServiceInternal/src/main/java/com/nox/kol/upgrade/service/voc/ | 旧VOC身份、查询、主题/时间与分页参考 |
| BE-02 | KOLServer/Entity/src/main/java/com/nox/kol/entity/KolScope.java；ServiceInternal/src/main/java/com/nox/kol/service/brandMonitor/BrandMonitorV2Service.java | scope45/47/49及解锁配额副作用 |
| BE-03 | kol_server_v2/data.api/src/main/java/com/nox/kol/data/api/brand/api/BrandInteractiveSearchApi.java | 新服务Brand内部互动合同，不是Radar接口 |
| DSG | kol2.0-design-specification/README.md；playbook/design-principles.md；playbook/element-ui-alignment.md；playbook/accessibility.md | Demo事实、视觉token、成熟组件、状态/焦点边界 |
