# v7.5.2 - 品牌舆情雷达 · 实现输入规范（handoff spec / Input）v1.7

> 状态：`implementation-input / v1.7 / stage-b-scope-locked`
>
> 适用范围：`kol-next` 中品牌舆情雷达页面的设计、实现与验收
>
> 实现方式：在 `kol-next` 中基于旧 VOC 页面能力完成独立实现
>
> 本文是 `v7.5.2 - 品牌舆情雷达` 的正式上游 Input，源自 handoff v1.7。旧稿及 Research 下 `legacy/` 文档仅作来源追溯；当前业务细则由 [Spec v1](spec_v1.md) 展开，Spec 不覆盖本文已确认的产品边界。

正式版本入口见 [README](README.md)。v1.6 保留于 Git `d7ea123`；本文件承接 v1.7 的目标合同与接管历史。第 5～13 节为上游边界，第 17 节是当时实现状态，不代表当前代码尚未提交。当前 Demo 已位于 `kol-next/codex/752-brand-reputation-radar`，提交 `64b19fb349d3eb2e135f1989858a435839765bab`；本次核对与差异见 [Spec 评审记录](reviews/spec_v1_review.md)。

## 1. 文档目的

下游同步说明（2026-09-08）：[Design v1](design_v1.md) 承接本文与Spec，明确页面/控件状态，并同步既有Demo的样本量、证据域、搜索排序和空态差异。本文上游范围不变；第17节继续保留接管历史，最新实现和验收见 [Design验证记录](reviews/design_v1_review.md)。Stage C与生产未决项不因Design完成而自动获准实施。

本文只回答一个问题：

> 如何以旧 VOC 的成熟页面为基线，迭代出 Brand 功能群中的独立付费模块“品牌舆情雷达”。

本文不负责：

- 重新设计一套脱离旧 VOC 的页面；
- 决定 Brand 页面入口的最终位置；
- 实现生产接口、采集、计费或通知；
- 继续维护旧静态 Demo 的自建卡片结构；
- 将竞品策略或达人发现并入口碑舆情一期。

## 2. 权威与协作关系

### 2.1 事实权威

1. 旧 VOC 页面结构与交互事实：`../kol-next/components/voc/`。
2. 旧 VOC 数据动作与字段使用事实：`../kol-next/store/voc/`、`../kol-next/api/voc.js`。
3. Brand 页面身份与入口上下文事实：`../kol-next/pages/brand/brand-analysis.vue` 及其组件。
4. 视觉和 Element UI 行为：`../kol2.0-design-specification/README.md` 与 `playbook/`。
5. 本文：旧 VOC 到品牌舆情雷达的产品改造合同。

代码存在只证明已有实现，不证明线上数据健康、当前权限、覆盖、成本或 SLA。

### 2.2 文档使用与变更规则

- 本文定义产品约束和验收要求；代码与页面记录实现事实。两者不一致时记录差异，不以实现结果自动覆盖产品定义。
- 已确认并实现的要求作为回归基线，不要求重新执行 Stage A/B；Stage C 为后续增量，须在范围明确后实施。
- 字段或组件阻塞按模块矩阵判断保留、降级、条件展示或移除；产品决策差异进入主 VDR 回流入口，不另建并行定义。
- 后续 VDR 的 Input、Spec、Design、PRD 在同一版本流程内维护；通过版本内决策记录追踪变更依据及影响章节。
- 下文 `../kol-next/` 和 `../kol2.0-design-specification/` 均以 `pm-workspace/drafts` 仓库根为路径参照；文档位于 worktree 时，仍指向 `pm-workspace` 下的同级仓库。未带仓库前缀的文档路径以本文件目录为参照。

## 3. 产品定义

### 3.1 产品关系

```text
Brand 页面
└── 品牌舆情雷达入口（具体位置后定）
      ↓ 继承品牌上下文
品牌舆情雷达（独立页面 / 独立付费）
├── 舆情全景（默认）
└── 舆情动态（次级）
```

- 模块主名称：`品牌舆情雷达`。
- `口碑洞察`可作为页面价值描述，不作为另一套产品或第三个 Tab。
- 页面独立于 Brand 现有 Overview / Strategy / Dynamics / Assets 四个 Tab。
- 基础口碑证据不依赖 Assets；只有完整创作者资产、保存资产和合作动作需要 Assets 权益。
- 本模块不是竞品监控的高级版，也不包含竞品比较。

### 3.2 核心原则

```text
品牌舆情雷达
= 旧 VOC 成熟页面
+ Brand 品牌上下文
+ 有限的品牌专属分析
```

旧 VOC 是内部页面和交互复用基线，不是用户需要理解的产品参照。目标是尽可能把已经成熟的 VOC 能力开放成品牌舆情产品；只有在存量数据不足以支撑原有全量语义时，才对模块做降级、条件展示或移除。

本期数据来源以已有存量内容和头部内容评论采样为主，不做为了某个品牌预览而启动的定向全量采集。内容模块可以表达已采集内容集合的全量语义；评论模块只表达头部内容评论采样中的品牌反馈，不能外推为全量评论声量。

## 4. 页面总结构

### 4.1 页面头部

沿用旧 VOC 品牌头部的信息密度，调整为 Brand 上下文：

- 品牌头像与名称；
- 内容总量、采样评论总量；
- 覆盖平台；
- 当前观察范围；
- 数据观察截至时间；
- 数据状态的单行弱提示。

数据状态只表达 `可用 / 部分覆盖 / 延迟 / 过期`，不把数据回执做成主模块。完整来源、查询版本和失败原因进入 tooltip 或折叠说明。

### 4.2 一级 Tab

| Tab | 旧 VOC 来源 | 品牌雷达职责 |
| --- | --- | --- |
| `舆情全景` | `overview` | 默认页；阅读内容集合、采样评论及影响情感 |
| `舆情动态` | `realtime` | 最近采集周期的增量结构与值得关注的观察 |

Brand Radar 默认进入 `舆情全景`。旧 VOC 的 `realtime` 默认顺序不沿用。

“实时”不作为正式承诺。页面采用“舆情动态”命名，并在范围信息中展示实际观察窗。

## 5. 舆情全景：旧 VOC 模块改造矩阵

旧页面基线：`../kol-next/components/voc/overview.vue`。

| 顺序 | 旧模块/组件 | 旧形态 | 品牌雷达处理 | 归属 |
| --- | --- | --- | --- | --- |
| 1 | `TimeLineChart` | 内容/评论双趋势时间线，可选择时间范围 | 原形保留；改名为“品牌声量趋势”并保留内容/评论双序列 | 全局 |
| 2 | `DataRowSection` | 内容、评论、标签、曝光、情感五项数据 | 复用指标行，按核心内容/核心评论拆分；保留适用指标和信息密度 | 全局 |
| 3 | `DistributionSection` 平台 | 按曝光/评论/内容切换的饼图与图例 | 降级为“已观测来源”摘要；只有分母和覆盖成立时才显示比例 | 数据范围 |
| 4 | `DistributionSection` 地区 | 按曝光/评论/内容切换的地区分布 | 降级为“已观测地区”列表；仅在多地区可比较时显示 | 内容背景 |
| 5 | `HashTagSection` | 热门标签排行+趋势、新增标签词云 | 条件展示；归入“内容主题与标签”，口径为已采集内容集合 | 内容舆情 |
| 6 | `EmotionSection` | 内容/评论情感切换、趋势、主题表、典型评论、抽屉 | 拆为“内容情感分析”和“评论情感分析”两个数据域组件；分别沿用原趋势、主题表、典型评论和抽屉能力 | 内容舆情 / 评论舆情 |
| 7 | `InfluencerScaleSection` | 创作者粉丝规模 | 不再独立展示；作为创作者影响情感指数的传播权重 | 内容/评论情感增量 |
| 8 | `InfluencerTypeSection` | 创作者类型排行 | 不再独立展示；作为指数的分组维度，用于比较不同类型创作者内容的情感反馈 | 内容/评论情感增量 |
| 9 | `AuditGenderSection` | 受众性别仪表图 | 不进入舆情全景主视图；默认降级或隐藏 | 不进入主视图 |
| 10 | `AuditAgeSection` | 受众年龄分布 | 不进入舆情全景主视图；默认降级或隐藏 | 不进入主视图 |
| 11 | `AuditAreaSection` | 受众地区地图 | 不进入舆情全景主视图；与内容地区分布严格区分 | 不进入主视图 |
| 12 | `AuditLanguageSection` | 受众语言排行 | 不进入舆情全景主视图；与评论语言严格区分 | 不进入主视图 |
| 13 | `ContentScheduleSection` | 内容发布时间热力图 | 不进入舆情全景主视图；观察窗不足时不显示规律 | 不进入主视图 |
| 14 | `ContentFrequencySection` | 内容发布频率与周趋势 | 不进入舆情全景主视图；观察窗不足时不显示规律 | 不进入主视图 |
| 15 | `ContentTableSection` | 内容搜索、平台切换、情感筛选、排序、分页 | 原形保留，作为全景页主要证据入口 | 内容证据 |

### 5.1 全景页分区顺序

完整组件顺序统一见第 10 节“Stage B 内容/评论模块排序与分组方案”。

一级分组为：核心概览 → 内容舆情 → 评论舆情 → 影响情感（条件展示）。内容与评论各自的主题、情感和证据连续出现。受众画像、发布时间和发布频率不进入主视图，不设置“其它”或“更多 VOC 明细”分组。

### 5.2 全景页品牌增量（Stage C）

只新增以下两类能力：

1. **提及类型**
   - 在内容聚合与内容表中增加 `自然提及 / 疑似推广 / 未知`；
   - 只依据标题、描述和可见披露特征；
   - “疑似推广”不等于真实合作或流量归因。
2. **内容主题与评论主题关联**
   - 以标准化主题为关联键；
   - 同时显示内容量、评论量、评论负向占比；
   - 不能在没有共同主题键时用文案强行建立关联。

上述增量应嵌入旧组件附近，不创建一套与旧 VOC 并行的新卡片墙。

## 6. 舆情动态：旧 VOC 模块改造矩阵

旧页面基线：`../kol-next/components/voc/realtime.vue`。

| 顺序 | 旧模块/组件 | 旧形态 | 品牌雷达处理 |
| --- | --- | --- | --- |
| 1 | `RealtimeDashboard` | 世界地图 + 内容/评论新增总量、变化率和分时趋势 | 世界地图仅聚合新发布内容数量；同一组件叠加展示 72 小时新增内容、采样评论摘要和分时趋势，评论数不参与地图聚合 |
| 2 | `TopWordCloudSection` | 热门评论主题词云 | 条件展示；标题改为“近期评论主题”并标注当前样本 |
| 3 | `TopNumberSection` 评论主题 | Top 主题、趋势、排行 | 保留；无足够评论样本时降级为主题列表 |
| 4 | `TopNumberSection` 负向评论语言 | Top 语言、趋势、排行 | 条件展示；缺失时显示降级态，不补零 |
| 5 | `TopNumberSection` 内容地区 | Top 地区、趋势、排行 | 降级为已观测地区；单一地区时移除排行 |
| 6 | `TopNumberSection` 内容平台 | Top 平台、曝光趋势、排行 | 降级为已观测来源；无法证明分母时移除曝光排行 |
| 7 | `TopNumberSection` 热门标签 | Top 标签、趋势、排行 | 条件展示；标签字段不足时显示不可用 |
| 8 | `TopNumberSection` 负向内容主题 | Top 负向主题、趋势、排行 | 保留或条件展示；无同口径情感时不输出比例结论 |
| 9 | `TopTableSection` | 热门内容/热门评论切换、平台、分页 | 拆为内容表和评论表，分别放入对应数据域；保留搜索、筛选、排序和分页能力 |

### 6.1 动态页品牌增量（Stage C）

旧实时看板之后或首屏数据区下方增加一个紧凑的“近期观察”区域，最多三项：

1. 内容负向与评论负向的样本差值；
2. 同一主题在内容端与评论端的表现差异；
3. 传播平台/证据来源是否形成交集。

规则：

- 只描述当前观察窗内的可计算差异；
- 缺少前序基线时不使用“升温、恶化、爆发、增长原因”等词；
- 不创建负责人、状态流转、Read/Dismiss 或工单操作；
- 观察项使用已有主题/证据抽屉展示关联记录，不新增证据工作流，不通过页面锚点跳转。

### 6.2 Realtime 页面与交互合同

- `RealtimeDashboard` 保持一个整体：世界地图是主区域，新增内容/采样评论摘要和分时趋势作为同一组件内的叠加信息。
- 地图只聚合新发布内容数量，与内容地区排行使用同一数据集合。内容地区不可用时显示短空态，不以评论数据代替。
- 内容/评论 72 小时趋势仅在 `RealtimeDashboard` 展示一次；内容动态组不重复渲染独立的内容总趋势。主题/标签自己的趋势仍保留。
- 横轴使用实际日期/时间段。固定演示快照使用绝对时间，不因快照与系统日期不一致显示重复的“今天”。
- 地图保留 `scatterClick` 事件链，点选地区后筛选热门内容表，显示可清除的地区条件；不自动滚动或跳转，不跳回旧 VOC 路由。
- 沿用旧 VOC 模块容器、栅格和信息密度；在父层重排“内容动态 → 评论动态”，不拆成新的摘要卡、地图卡和排行卡系统。
- 热门内容与热门评论分别放入各自数据域，复用既有表格能力；不再要求统一容器内的内容/评论 Tab 切换。
- 内容排行可以覆盖观察窗内的内容集合；按评论数排序时只能表达“采样评论最多的热门内容”，无法确认采样范围时移除该排序。
- 舆情动态不提供高级筛选按钮，也不挂载 `FilterDrawer`；保留地图、表格等局部筛选。全景页的筛选条件不得作为不可见条件残留到动态页。
- 两页均不提供锚点导航、快速跳转或证据定位滚动；主题明细使用现有抽屉。
- 验收比较的是组件骨架、数据域归属、可读性和交互能力，不要求最终用户识别或比较旧 VOC。

## 7. 证据与 Assets 边界

### 7.1 基础证据

品牌舆情雷达权益内至少可见：

- 内容/评论文本摘要；
- 平台与发布时间；
- 内容或评论主题；
- 情感及未知状态；
- 对应内容/评论 ID 或内部证据引用。

旧 VOC 已有的内容表、主题表、典型评论和主题抽屉是首期主要证据形态。无需再在每张图表旁新增独立证据卡。

### 7.2 Assets 增强

以下行为才检查 Assets 或相关资产权益：

- 查看完整创作者画像；
- 进入完整内容资产详情；
- 保存到资产库；
- 发起合作或营销动作。

Assets 未解锁时不隐藏基础口碑证据。

## 8. 数据适配合同

### 8.1 身份链路

```text
Brand pkId
  -> reputation scope / watch target
  -> VOC query identity
  -> query version
  -> snapshot revision
  -> old VOC view model
```

- Demo 使用确定性 Mock adapter，不请求 `/ws/voc/*`。
- 生产实现必须由服务端或可信 adapter 校验映射；前端不能自行把 `pkId` 当作 `vocBrandId`。
- 打开页面不触发采集、重算、扣费或通知。

### 8.1.1 当前 Demo 的上下文消费合同（B-02）

| 参数 | 保留/传入 | 当前实际生效 | 后续边界 |
| --- | --- | --- | --- |
| pkId | Brand 入口传入，Tab 切换保留，store 记录 requestedPkId | 固定 SHEIN 示例，不查询对应品牌 | 生产映射由可信服务端解析，不直接当作 vocBrandId |
| platform | Brand 入口传入，Tab 保留，store 记录 requestedPlatform | 来源页面上下文；不自动裁剪内容集合 | 与内容表平台切换、Overview 高级筛选是不同字段语义 |
| market | 已有 query 保留；入口暂未构造 | 未应用到内容 country | 市场可能是投放市场、作者地区或受众地区，含义待定义，不从地区统计反推 |
| language | 已有 query 保留；入口暂未构造 | 不影响数据语言、不改变 UI locale | 内容语言范围、评论语言范围、站点界面语言须明确分开 |
| scope_ref | 已有 query 保留 | 不透明引用，未解析或应用 | 范围身份、版本、权限和失效行为待定义 |
| return | Brand 入口写入原 fullPath，Tab 保留 | 无显式返回控件；浏览器历史返回不等于产品返回能力 | 返回交互尚未实施。建议后续只接受同站 Brand 相对路径，拒绝协议 URL 与 //，缺失时使用安全 Brand 入口；该建议待交互定义后实施 |

参数保留不等于范围生效。任意 pkId、市场或语言仍显示带“示例数据”标识的 SHEIN，不宣称已适配真实品牌数据。本轮只明确消费边界，不添加未定义的市场、语言筛选或返回控件。

### 8.2 旧 VOC 数据合同必须覆盖

Demo fixture 应覆盖保留组件的数据合同，或提供明确不可用状态。以下清单用于核对旧 VOC 能力去向，不要求所有字段都渲染到主视图，也不要求为已移除模块补造数据：

- 内容/评论时间线和总量；
- 平台、地区分布及指标切换；
- 热门标签、新增标签和标签趋势；
- 内容/评论情感趋势；
- 主题表、典型评论和抽屉明细；
- 创作者规模层级、类型及其与内容/评论的归属关系（用于创作者影响情感指数）；
- 受众性别、年龄、地区、语言；
- 发布时间、发布频率；
- 内容表搜索、筛选、排序和分页；
- 实时地图点和分时趋势；
- 实时评论主题、负向语言、内容地区/平台、标签和负向主题；
- 热门内容/热门评论表格。

每个模块至少需要能判断 `available / limited / unavailable`。`limited` 必须带已观测样本和限制说明，`unavailable` 不得用零值图表代替；Mock 数据可以完整覆盖旧组件合同，但展示层应按本节模块处理矩阵裁剪。

Demo 中的 Mock 数据必须在总量、分布、趋势、表格和分页之间内部一致。

### 8.3 品牌新增字段

内容最少新增：

- `mention_type`：`organic_mention / suspected_promotion / unknown`；
- `mention_type_reason`；
- `content_topic_id`；
- `evidence_ref`。

评论最少新增或明确：

- `comment_topic_id`；
- `sentiment`；
- `sentiment_confidence`；
- `source_status`；
- `evidence_ref`。

范围最少明确：

- `brand_pk_id`；
- 平台、市场、语言；
- 观察窗；
- `observed_at`；
- `coverage`；
- `query_version`；
- `snapshot_revision`。

## 9. 组件复用注意事项

不能把“引用旧组件”简单等同于“零改造复用”：

- `overviewMixin.js` 和 `realtimeMixin.js` 直接绑定 `state.voc.*` 与 `voc/*` actions，需要独立命名空间或适配层；
- `EmotionSection` 直接调用 `@/api/voc` 获取评论主题筛选项，需要改为 props/provider 或独立适配；
- `FilterDrawer` 同时依赖旧 VOC store 和 API，需要隔离；仅供舆情全景使用，舆情动态不挂载该组件；
- 通用 ECharts、表格、分页、平台切换、标题切换等无业务身份依赖的组件优先直接复用；
- 旧 `/customer-voice/:tab` 的路由、白名单、store 和 API 行为不得被新页面修改。

实现可以复制页面级业务壳和 mixin 到独立命名空间，也可以抽 adapter；无论采用哪种技术方式，最终 DOM 结构、交互能力和模块覆盖必须满足本文。

## 10. Demo 迭代顺序

### Stage A：旧 VOC 基线对齐

- 核对 Overview 15 个组件实例和 Realtime 9 个可视模块的能力与字段，建立保留、降级、条件展示或移除清单；
- 使用确定性 Mock 补齐旧组件合同；
- 核对旧筛选、切换、分页、抽屉和表格行为；品牌页面按 Stage B 的保留/裁剪合同实现；
- 建立独立路由、store/provider 边界，不影响旧 VOC。

退出条件：旧 VOC 的核心内容/评论能力可用，且每个模块都根据存量数据覆盖完成保留、降级、条件展示或移除判定。

### Stage B：品牌化信息架构与数据边界适配

- 接入 Brand 品牌名称、头像、平台、市场、语言和观察窗上下文；
- 默认 Tab 改为“舆情全景”，Realtime 改名“舆情动态”；
- 以“内容舆情 / 评论舆情”为一级信息架构，按数据域重排旧 VOC 模块；来源和地区作为内容数据范围，创作者规模/类型作为影响情感的分组维度；
- 针对存量数据的样本边界，对平台分布、地图、受众画像等模块执行保留、降级、条件展示或移除；
- 保留适用的旧 VOC 图表、筛选、分页和抽屉交互；优先通过父层排序、分组、显隐和文案适配完成，双情感域及创作者双指标按专节处理；
- 数据状态收敛为单行弱提示，窄视口仅用于检查模块顺序和分组是否连续，不进入移动端样式改造。

退出条件：用户能明确感知这是当前 Brand 的舆情产品；内容舆情和评论舆情的归类清晰；旧 VOC 核心图表与交互没有缩水；页面没有对全网覆盖、完整平台分布或实时性作出超出数据能力的暗示。

#### Stage B 详细执行范围

Stage B 处理品牌语义、模块排序与分组、页面上下文和数据边界适配。创作者双指标展示纳入 Stage B；其正式算法仍待确认。提及类型、主题关联和近期观察属于 Stage C。

| 编号 | 修改项 | 要求 | 边界 |
| --- | --- | --- | --- |
| B-01 | 页面身份 | 标题、浏览器 title 和品牌上下文统一为“品牌舆情雷达”，显示当前品牌 | 不新增全局导航，不决定 Brand 入口位置 |
| B-02 | 路由与上下文 | 保留 `/brand/reputation-radar/overview`、`/realtime`；默认全景，动态可直接访问；继承 Brand 身份与范围参数 | 不把 `pkId` 当作 `vocBrandId`，不修改生产身份映射 |
| B-03 | 顶部摘要 | 保留品牌、内容量、采样评论量、来源、观察窗和“观察截至”；状态为弱提示 | 不新增独立数据回执区或证据墙 |
| B-04 | 一级结构 | Tab 使用“舆情全景 / 舆情动态”；按连续阅读顺序组织 | 不提供锚点导航或快速跳转 |
| B-05 | 全景分组 | 核心概览 → 内容舆情（含内容表）→ 评论舆情（含评论表）→ 影响情感 | 无“其它”组；受众、发布时间/频率退出主视图；不加入 Stage C 提及类型 |
| B-06 | 动态分组 | 地图与摘要/趋势整体在前，内容动态和评论动态在后；具体顺序见本节排序方案 | 不用收件箱、Read/Dismiss、负责人或工单状态替代看板 |
| B-07 | 文案与状态 | 内容表达已采集内容集合，评论表达头部内容评论采样；延迟、部分覆盖、过期使用短状态词 | 不外推全网或承诺实时；Stage B 不生成近期观察结论 |
| B-08 | 局部交互 | 保留适用模块的时间、平台、指标、主题切换，以及搜索、排序、分页和抽屉 | 移除模块不保留空操作；内容/评论表分开，不强制保留跨域 Tab |
| B-09 | 高级筛选 | 仅全景提供；内容条件包括关键词、平台、时间、情感、创作者规模/类型，评论条件包括关键词、主题、情感和所属热门内容 | 动态无入口/抽屉，不继承隐藏筛选；筛选不触发采集或重算 |

评论条件只影响评论域，不反向缩减内容基线；内容条件限制内容集合及其关联评论。抽屉取消不应用草稿，清除筛选恢复当前品牌观察范围。

##### B-01 至 B-09 的执行边界

- **允许改动**：页面 title、Tab 文案、区块标题、区块顺序、品牌上下文摘要、数据状态短文案、页面级 route 默认值。
- **优先保留**：内容/评论趋势、情感、主题、热门内容/评论表、舆情全景高级筛选抽屉、分页、主题抽屉、加载态和空态。
- **允许裁剪**：平台/地区分布、受众画像、曝光量排行、标签和创作者背景模块，按数据矩阵处理；Realtime 地图默认保留，地区缺失时按第 6.2 节降级。
- **暂不改动**：`../kol-next/components/voc/` 旧页面、`store/voc/`、`api/voc.js`、旧 `/customer-voice/:tab` 路由。
- **数据层约束**：Stage B 可以增加页面级 view-model adapter，但不得通过补零、改名或前端计算伪造覆盖、更新时间或实时性。
- **评审顺序**：先核对 B-01/B-02 的身份和路由，再核对 B-04/B-05/B-06 的组织，最后核对 B-07/B-08/B-09 的文案与交互；不得跳过旧 VOC 能力回归直接评审 Stage C。

##### Stage B 完成判定

```text
页面具备成熟数据产品的信息承载感
且用户能明确理解它属于当前 Brand
且内容舆情 / 评论舆情的归类清晰
且在窄视口审阅时两个数据域能连续阅读
且旧 VOC 的图表与交互没有缩水
```

满足以上条件才进入 Stage C。若只完成了改名，但核心内容/评论能力被隐藏、折叠或替换，Stage B 判定为未完成；非核心来源/画像模块则按下一节的覆盖判定处理。

#### Stage B 数据边界适配与模块裁剪

内容按已采集集合统计，评论按头部内容采样统计。旧组件的标题、分母、比例和排行范围必须与对应数据域一致。

##### 适配原则

1. **内容与评论口径分开**：内容样本按已采集内容集合表达，可沿用全量内容语义；评论只来自头部内容采样，所有评论数量、主题、情感和排行都必须在标题或所在数据域明确标注这一限制。
2. **内容/评论事实优先**：内容趋势、评论趋势、主题、情感、热门内容/评论和证据是品牌舆情核心，优先保留。
3. **来源分布不等于全网覆盖**：平台、地区、语言和地图只能表达“当前已观测来源/样本分布”，不能表达品牌在全网或所有市场的完整占比。
4. **存量样本不支持主动补齐**：缺少平台、地区、语言或评论来源时，不补零、不推算、不把缺失当作没有舆情。
5. **展示策略由覆盖状态决定**：每个模块使用 `available / limited / unavailable` 三态；`limited` 显示已观测样本和限制，`unavailable` 显示短空态或不渲染图表。
6. **不要为了页面丰富保留误导性图表**：移除一个会造成全网错觉的模块，比展示一个口径不成立的图表更符合品牌雷达定位。

##### 模块处理矩阵

| 数据/模块 | 默认策略 | 保留形式 | 降级或移除条件 |
| --- | --- | --- | --- |
| 内容趋势 | 保留 | 旧 VOC 时间线；可使用“内容总量/已发布内容”全量内容语义 | 没有可用时间点时显示样本不足，不渲染零值趋势 |
| 评论趋势 | 降级 | 单独展示头部内容评论采样趋势；标题和 tooltip 标明采样范围 | 采样内容不足或无法标定头部内容范围时显示“评论采样不足” |
| 核心内容指标 | 保留 | 保留 `DataRowSection` 结构；可使用全量内容语义 | 无同口径分母时隐藏比例或显示“无法计算” |
| 核心评论指标 | 降级 | 保留数量和情感事实，但标注“头部内容评论采样”；评论覆盖率仅作为内部展示门槛 | 不显示全量评论占比、全量评论排行或评论覆盖率 |
| 平台分布 | 降级 | 从主分析区移到“数据范围/来源”摘要；使用来源列表或紧凑比例条 | 单一来源、来源状态不完整或无法证明分母时移除饼图，不显示“平台占比” |
| 地区分布 | 降级 | 只在存在多个可比较地区时显示“已观测地区”列表 | 单一地区、地区字段缺失或样本不足时移除地图/饼图 |
| Realtime 世界地图 | 保留 | 仅聚合新发布内容数量，按内容发布地区展示；不接入评论数 | 没有内容地区字段时显示内容地区不可用，不改为评论地图 |
| 内容平台曝光量 | 降级 | 显示“已观测内容曝光”或来源排序，不显示全网平台曝光排行 | 没有同口径曝光字段或无法确认分母时移除排行 |
| 标签/词云 | 条件展示 | 复用旧 VOC 排行、趋势和词云；内容标注已采集集合，评论标注头部内容评论采样 | 标签字段缺失、样本不足或无法区分内容/评论来源时显示不可用 |
| 评论主题/负向主题 | 保留或条件展示 | 复用 Top Number、主题表和典型评论 | 仅有极少评论或没有同口径情感时降级为主题列表，不输出比例结论 |
| 负向评论语言 | 条件展示 | 保留旧 VOC 语言排行和趋势 | 评论语言覆盖不足、识别不稳定或延迟源未回收时显示短空态 |
| 创作者规模/类型 | 改为复合指标 | 不独立展示；作为“内容情感基线”和“带评论内容情感”的传播权重/分组维度 | 缺少创作者规模或类型时不做分组；评论覆盖不足或无法建立内容—评论归属时不计算带评论内容情感，保留内容情感基线 |
| 受众性别/年龄/地区/语言 | 移除主路径 | 不进入品牌舆情一期主页面；后续若有可靠来源再作为可选背景模块 | 当前存量数据不能证明这是品牌评论者或全体受众画像时直接移除 |
| 内容发布时间/发布频率 | 移出主视图 | 保留字段及历史组件作为参考，不设置背景分组 | 不渲染发布日历、频率或隐藏入口，不据短观察窗推断稳定规律 |
| 曝光量增长率、环比/同比 | 条件展示 | 只有在相同 scope、观察窗和快照基线存在时展示 | 没有可比 baseline 时移除增长箭头和“增长/下降”文案 |
| 72 小时评论数最高的内容 | 降级或移除 | 改为“采样评论最多的热门内容”，明确仅覆盖头部内容评论采样；无法确认采样范围时移除 | 不显示“全量评论最高”或全量评论排行 |
| 热门内容/评论表 | 保留 | 内容表可沿用全量内容语义；评论表标注头部内容评论采样，保留平台切换、排序和分页 | 没有任何可回查记录时显示空态，不用零值表格替代 |

##### 平台分布的具体处理

平台分布是默认降级项，不再作为品牌舆情主分析图表。页面可以让用户知道“本次看到了哪些来源”，但不能让用户把它理解为“品牌在各平台的全网声量占比”。因此：

- Overview 不再把 `DistributionSection` 平台饼图放在内容舆情首屏核心区；优先改为来源摘要或折叠明细。
- Realtime 不再默认展示“按平台划分的内容曝光量”排行；只有曝光字段和分母同口径时才保留。
- 如果只有一个来源或某来源处于延迟状态，显示来源状态，不补齐其他平台，不生成百分比。
- 所有“平台分布/平台占比”文案改为“已观测来源/来源样本”，直到数据合同能够证明分母和覆盖范围。

##### Stage B 裁剪判定

```text
保留：能直接回答品牌被如何提及、评论如何反馈的事实模块
降级：能帮助理解样本来源，但容易被误读为全网覆盖的模块
条件展示：只有在字段、分母和样本门槛成立时才展示的模块
移除：当前存量数据无法支撑且会制造全网承诺的模块
```

本节的裁剪不是做小页面，而是把旧 VOC 的成熟能力转换成与品牌舆情数据边界相匹配的产品语义。

#### Stage B 内容/评论模块排序与分组方案

两个页面按内容与评论数据域分组，通过移动模块位置和调整排序完成布局。此处“移动模块”指页面内部重排，不是移动端样式改造。

##### 分组目标

- 用户先理解两个数据域：品牌内容如何被提及，热门内容下的评论如何反馈；
- 不要求用户知道 VOC，也不要求用户理解内部数据接口；
- 同一数据域的趋势、主题、情感和证据连续出现，避免在页面上下跳转寻找对应模块；
- 来源和地区说明内容范围；创作者规模/类型用于影响情感分组，不独立展示画像；受众模块不进入主视图。

##### Overview 模块顺序

```text
品牌上下文 → Tab：舆情全景 | 舆情动态 → 全景高级筛选与范围
↓
核心概览
  品牌声量趋势（内容/采样评论双序列，可选时间范围）
  核心内容指标
  核心评论指标（头部内容评论采样）
↓
内容舆情
  内容趋势（已采集内容集合）
  内容主题与标签（排行、趋势、词云；条件展示）
  内容情感分析（趋势、主题表、代表内容、主题抽屉）
  内容来源/已观测地区摘要（条件展示）
  内容明细表
↓
评论舆情
  评论趋势（头部内容评论采样）
  评论主题与情感分析（情感趋势、主题表、典型评论、主题抽屉）
  评论明细表
↓
影响情感（条件展示）
  创作者双指标水平条形图
```

每个一级分组使用连续内容区块；组内复用已有组件，内容/评论情感分别使用独立数据域实例。评论主题和情感属于同一组组件，不重复创建两套分析区。受众画像、发布时间/频率及“其它”分组均不渲染。桌面和窄视口保持相同语义顺序，不要求在首屏同时展示所有分组，不新增移动端样式规则。

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

该指标用于回答“哪些创作者来源带来的品牌反馈更正面或更负面”，不再单独回答创作者规模或类型分布。计算以创作者规模层级作为传播权重，将内容情感作为直接信号，并将该创作者内容下已采集到的评论情感作为反馈信号；评论必须能回溯到具体内容和创作者，否则不纳入评论增强项。

展示形式为一个紧凑的双指标水平发散条形图：顶部以“内容情感基线”为主指标，“带评论内容情感”为次要指标；主体按创作者规模层级或类型分组，每组显示两条同尺度水平条，正向与负向分别向两侧展开，条末标注内容样本量。主指标使用更粗、更高对比度的实心条，次指标使用更细、更浅或描边条，二者共享同一零点、方向和刻度，并通过图例、纹理或线型辅助区分，避免只依赖颜色。评论覆盖率不在图表中强调，评论条只在具备最低样本条件时显示，否则显示“评论样本不足”；点击分组后沿用旧 VOC 的内容表、评论表或主题抽屉查看证据。指标不展示粉丝规模排行榜，也不把评论结果解释为创作者合作价值或因果影响。

演示计算口径（供 Mock 展示，非已验证的生产算法）：

```text
内容情感基线 = 100 × Σ(规模权重 × 内容情感分) / Σ规模权重
带评论内容情感 = 100 × Σ(带评论内容的规模权重 × (内容情感分 × 0.6 + 评论反馈分 × 0.4)) / Σ(带评论内容的规模权重)
评论覆盖率 = 已获取评论的内容数 / 内容总数（仅作为评论指标的内部展示门槛，不在图表中呈现）
```

0.6/0.4 的混合比例、规模分层权重及最低样本阈值均为演示参数，生产取值及其依据待数据方案确认；不能据 Demo 验收视为算法验证通过。

规模权重使用现有粉丝规模分层映射，不直接使用粉丝数，避免头部创作者极端放大。评论缺失不能按零分或中性分计入；带评论内容情感只在有评论的内容子集上计算。评论覆盖率、带评论内容情感与内容基线之间的偏移量不作为用户界面的主展示项；覆盖率低于页面约定门槛、创作者规模/类型缺失或无法建立内容—评论归属时，隐藏评论条，只保留内容情感基线和评论采样说明。

##### Realtime 模块顺序

```text
品牌上下文 + 近期采集窗口
↓
RealtimeDashboard（一个整体）
  世界地图：新发布内容数量的地区聚合
  叠加摘要：72 小时新增内容数 / 新增采样评论数
  叠加趋势：内容 / 头部内容评论采样
↓
内容动态
  内容主题/标签排行及所选主题趋势（条件展示）
  负向内容主题（条件展示）
  已观测内容地区 / 内容来源（条件展示）
  热门内容表
↓
评论动态
  评论主题词云（头部内容评论采样，条件展示）
  评论主题排行（头部内容评论采样）
  负向评论语言（头部内容评论采样，条件展示）
  热门评论表
```

地图固定在顶部整体看板，不后置到来源区；无地区数据时按第 6.2 节降级。内容动态不重复展示总体趋势，地图和地区排行使用相同内容口径。无高级筛选、锚点导航和快速跳转。

##### 组件改动策略

优先在品牌页面容器完成分组、排序和显隐。下表中的 props、标题或数据域改造针对 `components/brandReputationRadar/` 独立副本及 adapter；无业务依赖的共享组件优先直接引用。不得把业务改造写回 `components/voc/`、旧 store 或旧 API。

| 组件/层级 | 默认处理 | 只有在以下情况才改组件 |
| --- | --- | --- |
| `overview.vue` / `realtime.vue` 页面壳 | 增加 核心概览、内容、评论和影响情感分组容器；按统一顺序排列 | 页面级容器无法控制旧组件的显隐或顺序时，才拆出最小 wrapper；不为移动端样式新增一套页面壳 |
| `DataRowSection` | 保留原组件，放入“核心概览” | 只有指标文案无法表达“已观测”口径时，增加 label/secondary text prop |
| `DistributionSection` | 平台/地区默认不放内容舆情首屏；由父层按覆盖状态选择渲染 | 若需要在不改变旧 VOC 默认行为的前提下输出“已观测来源”紧凑列表，增加向后兼容的 `displayMode`/`coverageLabel`，不重写图表 |
| `RealtimeDashboard` | 保留地图主区域及摘要/趋势叠加关系，地区缺失时使用短空态 | 仅在数据注入或内容口径隔离需要时适配；不拆分看板、不改为后置地图 |
| `EmotionSection` / `HashTagSection` / `TopNumberSection` / `TopTableSection` | 直接复用，保持表格、切换、分页和抽屉 | 情感组件按内容和评论拆成两个数据域实例；仅在标题无法注入口径时增加纯展示型标题 prop |
| `FilterDrawer`、分页、主题抽屉 | 舆情全景保留旧 VOC 交互；舆情动态不挂载筛选抽屉 | 为舆情全景的品牌字段和内容/评论采样口径增加筛选项及状态提示；仅替换数据 provider/store，不改变抽屉、分页和主题抽屉的交互形态 |

任何组件改动都必须说明：父层分组为什么不足、改动落在哪个独立副本/adapter，以及如何保持 `/customer-voice/:tab` 行为不变。若必须修改共享基础组件，另行明确兼容范围并验证旧页面，不能借组件复用扩展业务修改范围。

##### 分组验收

- [ ] Overview 的内容舆情和评论舆情有明确一级标题，滚动阅读时各自连续；窄视口只检查语义顺序，不要求两个分组同屏，不以移动端样式作为阶段门槛。
- [ ] Overview 中，内容趋势/主题/情感/内容表连续出现；评论趋势/主题/情感/评论证据连续出现。
- [ ] Realtime 中，内容动态和评论动态连续分组；顶部地图看板保持整体，地区缺失时显示短空态；下方来源/地区排行按覆盖状态展示。
- [ ] 分组通过父层布局和顺序完成，旧 VOC 图表组件未被无理由重写。
- [ ] 被降级或移除的模块不留下空白卡片、不可用切换或误导性标题。
- [ ] 键盘焦点、折叠/展开和抽屉在现有页面形态下仍可操作；一级分组标题使用可读的语义标题；页面不提供锚点快速跳转。

### Stage C：品牌增值分析

- 增加自然提及/疑似推广/未知；
- 增加内容主题与评论主题关联；
- 增加最多三项近期观察，使用已有主题/证据抽屉查看关联记录。

退出条件：新增分析均能由页面已有事实计算并回到旧 VOC 数据或证据，不新增工单流。

### Stage D：状态与边界验收

- 验证完整数据和部分覆盖两种状态；
- 验证零真实 VOC 请求、零写入和旧页面无回归；
- 完成多视口、交互和数据一致性验收。

A/B 是既有能力与信息架构基线，新增 Stage C 之前先确认其回归结果。Stage D 的状态、边界和交互验证随每个已实施阶段执行，不必等待 Stage C；尚未实施的 Stage C 项标记为“不适用”，不得记为通过或自动纳入实施范围。

## 11. 数据状态与降级

Demo 验收至少覆盖两种状态：

1. `active_with_data`：展示数据覆盖能够支撑的内容/评论核心模块，其他模块按 Stage B 适配矩阵降级或移除；
2. `active_partial`：至少一个来源或维度延迟，相关模块显示明确降级态。

状态规则：

- 缺失来源不补零；
- 部分覆盖不写成全网结论；
- 无结果不等于无舆情；
- 过期快照保留观察时间；
- 未运行品牌不因预览触发采集；
- 示例数据与目标品牌数据必须视觉上可区分。

## 12. Demo 文案规则

- 主视图使用最终用户语言，不出现“旧 VOC 复用”“Mock provider”“实现缺口”等开发说明。
- 开发评审说明保留在文档或代码注释；Demo 必须展示时收入 tips，不进入主页面段落。面向用户的 tooltip 只保留必要口径说明。
- 页面标题使用“品牌舆情雷达”；Tab 使用“舆情全景”“舆情动态”。
- 数据限制保持单行弱提示；详细内容按需查看。
- 证据入口使用“查看内容”“查看评论”“查看主题详情”等用户任务文案，不使用“核证工作流”。

## 13. Demo 验收合同

验收只覆盖已实施范围；Stage C 专属项在该阶段实施前标记“不适用”。结构验收、模拟数据一致性和生产就绪分别记录，不能合并为一个通过结论。

### 13.1 页面覆盖

- [ ] `舆情全景` 默认打开。
- [ ] 旧 VOC Overview 的 15 个组件实例均有明确的保留/降级/条件展示/移除判定，不因 fixture 缺字段而静默删除。
- [ ] `舆情动态` 的 9 个旧 VOC 可视模块均有明确的保留/降级/条件展示/移除判定，不以完整实时覆盖为默认前提。
- [ ] Overview 和 Realtime 均有明确的“内容舆情 / 评论舆情”一级分组和连续阅读顺序；窄视口检查仅用于确认顺序未被打散。
- [ ] Stage C 新增分析限于提及类型、主题关联和近期观察三组；Stage B 的创作者双指标按其独立合同验收。
- [ ] 已观测来源/地区在内容域后置展示；受众画像、发布时间/频率不渲染，不设置“其它”或“更多明细”入口。

### 13.2 交互覆盖

- [ ] 舆情全景的时间范围和高级筛选交互可用；舆情动态不显示高级筛选入口或抽屉。
- [ ] 对保留或条件展示的模块，适用的平台/指标切换可用；情感按内容/评论双实例展示，不要求跨域切换；被裁剪模块不保留空操作。
- [ ] 标签排行可切换并更新趋势。
- [ ] 情感主题表支持筛选、分页和典型评论抽屉。
- [ ] 创作者影响情感指数以内容情感基线为主、带评论内容情感为次；评论覆盖率仅用于内部展示门槛，并能回链至旧 VOC 内容表、评论表或主题抽屉。
- [ ] 内容表支持搜索、情感筛选、排序、平台切换和分页。
- [ ] 动态内容表和评论表分别支持适用的搜索、筛选、排序和分页；不要求跨域 Tab 切换。
- [ ] Stage C 的品牌观察项通过已有抽屉查看相关数据或证据，不新增页面定位跳转或处理流程。

### 13.3 边界覆盖

- [ ] Demo 加载和交互期间不请求真实 `/ws/voc/*`。
- [ ] 不触发采集、重算、购买、通知或服务端写入。
- [ ] Mock 数据有明确标识，不能冒充线上生产状态。
- [ ] `active_partial` 不补零且不输出全网结论。
- [ ] 基础证据不依赖 Assets。
- [ ] 旧 `/customer-voice/:tab` 行为不变。

### 13.4 视觉验收

- [ ] 第一屏保留内容/评论核心数据的成熟看板感，不退化为少量大卡片；来源分布、地图和画像模块不得造成全网覆盖错觉。
- [ ] 1440px 与 1280px 无新增横向溢出、遮挡或不可操作区域。
- [ ] 表格、分页、抽屉、tooltip 的状态遵循现有 Element UI 行为。
- [ ] 页面主要注意力在数据图表和表格，证据说明与数据限制保持次级。

## 14. 实现差异与验收记录

每次迭代记录以下内容，产品决策差异写入主 VDR 回流入口：

```text
实现状态：完成 / 部分完成 / 阻塞
对应规范：版本、章节与模块
实现证据：代码仓库/分支/提交或未提交状态 + 文件路径 + 截图/测试
偏差：与规范不一致的地方
原因：数据 / 组件 / 权限 / 性能 / 其他
建议：更新实现 / 更新规范 / 暂缓
```

没有偏差时不重复产品背景；存在偏差时保留记录，明确已接受的改动和待决事项。验收结果应附日期、环境和代码版本，不能将旧运行结果当作后续实现的验证。

## 15. 本期明确排除

- 竞品对比与竞争策略；
- 达人合作机会发现；
- 收件箱、Read/Dismiss、负责人和工单状态；
- 站外邮件或 IM 通知；
- 生成式总结编辑器；
- 真实导出与分享；
- 未运行品牌的同步全量采集；
- 对套餐价格、采集 SLA 和生产覆盖的承诺。

## 16. 设计规范引用

- `../kol2.0-design-specification/README.md`：代码 Demo 是当前设计真相，任务级差异先留在评审记录。
- `../kol2.0-design-specification/playbook/design-principles.md`：B2B 数据平台、图表色板、信息层级和稳定可读原则。
- `../kol2.0-design-specification/playbook/element-ui-alignment.md`：表格、分页、筛选、抽屉、加载和空态行为。
- `../kol2.0-design-specification/playbook/accessibility.md`：小屏阅读、语义标题、焦点和可操作热区底线。

## 17. 实现入口与验证基线

### 17.1 开发入口

- 全景：`http://127.0.0.1:3322/brand/reputation-radar/overview?pkId=17135&platform=1`
- 动态：`http://127.0.0.1:3322/brand/reputation-radar/realtime?pkId=17135&platform=1`
- 页面实现：`../kol-next/components/brandReputationRadar/overview.vue`、`realtime.vue`。
- 路由：`../kol-next/pages/brand/reputation-radar/`。
- 独立数据层：`../kol-next/store/brandReputationRadar/`、`api/brand/reputationRadarStageB.js`、`api/brand/reputationRadarMock.js`。
- 测试：`../kol-next/scripts/brand-reputation-radar-stage-b.test.js`、`brand-reputation-radar-demo.test.js`、`brand-reputation-radar-stage-b.browser.js`。

端口是本地预览入口，不是交付依赖。SHEIN 和查询参数用于固定示例上下文，不能证明任意 Brand 与 VOC 身份映射成立。

### 17.2 设计、代码与页面核对记录

以下为 2026-09-08 的本地浏览器及代码复核摘要。该次记录未绑定冻结的代码提交或独立测试产物，不能用于复现某个 Git 版本；后续应重新运行第 17.1 节脚本并补齐版本与产物引用。

- 全景为核心概览、内容舆情、评论舆情、影响情感四组；“其它”已移除；保留高级筛选。
- 动态为地图/摘要/趋势整体看板加内容、评论两组；高级筛选入口和抽屉已移除。
- 两页无锚点导航；动态独立内容总趋势已删除，固定快照使用绝对时间标签。
- 代码已绑定地图地区筛选事件；内容表与评论表分组独立呈现。
- 数据层测试为 12/12，Demo 验收脚本为 37/37；这些是该次本地检查结果，不替代后续回归。
- 浏览器显示正常中文文案，同时存在 `vue-i18n` fallback 警告；需继续检查多语言场景。
- 设计规则引用见第 16 节，组件实现与页面按第 13 节验收。代码/页面中尚未逐项确认的文案和交互不能由上述通过数推定完成。

该记录确认 Stage B 主要结构及删减项已经落地，不要求重新复制旧 VOC 页面。Stage C 尚未作为完整增量验收；Stage D 的部分覆盖、多视口、零真实请求和旧页面回归应以完整验收记录判断。历史演示数字、DOM 数量和过往“待迭代”结论不作为新实现要求。

补充核对：上述“无锚点导航”只证明导航入口已移除。代码仍有地图/负向主题点击后的自动滚动，与第 6.2 节不符；来源摘要仍沿用分布标题。第 17.4 节将其列为已知修正项，不能据历史整体通过结论略过。

### 17.3 未决参数与生产边界

- 创作者双指标的正式权重、混合比例、最低样本阈值及命名解释；
- 内容/评论主题统一键、情感定义与模型版本、未知值及分母规则；
- Brand 到舆情数据范围的生产映射、数据来源与观察窗合同；
- 付费权益、有限真实预览的字段暴露、固定示例范围、刷新周期及站内通知规则；
- Brand 页入口具体位置。

这些事项不影响按已确认结构继续设计 Demo，但不能由模拟数据或测试通过替代产品与数据定义，也不授权接入生产采集、计费或通知。

### 17.4 逐项状态（2026-09-08 主 VDR 接管）

本节保留 v1.7 接管时的实现状态。第 17.2 节保留历史事实；当时命令、代码快照、截图和 D-01～D-06 验收结果属于工作区历史记录，不能把历史通过数当作当前结果。后续状态与差异以 [Spec](spec_v1.md) 和其评审记录继续维护。

#### 状态定义与证据范围

| 实现状态 | 含义 | 接手动作 |
| --- | --- | --- |
| 已实现 | 在限定的 Demo 范围内已有对应代码；不等于生产完成 | 保留并回归，不重新开发 |
| 部分实现 | 有可复用基础，但已知仍有合同缺口 | 仅补本表列明的缺口 |
| 待开发 | 在所核对的当前路由、组件与 provider 中未发现完整功能 | 明确该阶段范围后开发 |
| 待定义 | 产品或数据参数未定，不能直接据示例实现生产功能 | 先完成定义，再确定实现范围 |
| 不纳入 | 已排除、已移除或暂不进入本期 | 不恢复、不作为遗漏补做 |

“待核验”是验收状态，不是待开发：有实现但缺少对应范围的验证时，先检查再修正，不直接重写。表中“历史通过”仅指第 17.2 节记录。

历史源码核对位置：当时 `pm-workspace/kol-next` 的本地工作区，分支 `codex/monitor-762-ai-daily-report-demo`，HEAD 为 `9317258652c1db6528b7fe165a821815ac60bb4f`。品牌雷达目录及相关脚本在当时尚为未跟踪文件；此HEAD只定位旧底座，不能恢复当时Demo。当前已提交的代码版本见本文开头和Spec，本段不再用于推断现场dirty状态。

证据索引（路径均相对 `../kol-next/`）：

| 编号 | 源码/脚本 |
| --- | --- |
| E1 | `pages/brand/reputation-radar/index.vue`、`_tab.vue`；`store/brandReputationRadar/brand.js` |
| E2 | `components/brandReputationRadar/components/header.vue`、`pageMessages.js`、`stageBMessages.js` |
| E3 | `components/brandReputationRadar/overview.vue` |
| E4 | `components/brandReputationRadar/realtime.vue`；`section/realtimeDashboard.vue`（section 位于同一品牌组件目录） |
| E5 | `components/brandReputationRadar/section/filterDrawer.vue`、`emotionSection.vue`、`contentTableSection.vue`、`commentTableSection.vue`、`creatorImpactSection.vue`、`themeDrawer.vue` |
| E6 | `api/brand/reputationRadarStageB.js`、`reputationRadarMock.js`；`store/brandReputationRadar/stageB.js`；`assets/demo/brandReputationRadar.js` |
| T1 | `scripts/brand-reputation-radar-stage-b.test.js`：数据域、筛选、采样、缺失值及状态测试 |
| T2 | `scripts/brand-reputation-radar-demo.test.js`：组件接入、路由、交互逻辑与隔离约束测试 |
| T3 | `scripts/brand-reputation-radar-stage-b.browser.js`：浏览器交互、多视口、请求和运行错误检查 |

#### Stage B：已实现范围与剩余动作

| 编号 | 实现状态 | 已有实现与证据 | 验收状态及剩余动作 |
| --- | --- | --- | --- |
| B-01 页面身份 | 已实现（固定示例） | E1/E2：页面主标题、浏览器 title、SHEIN 身份及示例标识 | 中文示例历史通过；多语言和非示例品牌不在该通过范围。保留身份结构，任意品牌生产映射归 P-02 |
| B-02 路由与上下文 | 参数保留已实现；消费边界已定义 | E1：默认 overview、切 Tab 保留 query，pkId/platform 仅记录请求来源；实际数据固定 SHEIN | 见 8.1.1 参数表。market/language/scope_ref 未生效；显式返回动作未实现；生产身份映射仍为 P-02 |
| B-03 顶部摘要 | 已实现（示例快照） | E1/E2：内容量、采样评论量、来源、观察窗与“观察截至”由快照显示，覆盖状态为弱提示 | 基础展示历史通过；筛选前后摘要、无数据及异常状态的一致性待完整核验；延迟/过期分支缺口见 B-07 |
| B-04 一级结构 | 已实现并验证 | E1～E4：全景/动态命名、默认页及连续阅读结构；锚点导航已删除 | B-08 自动滚动残留已移除，地图与主题条件保留；本轮验证见接管记录 |
| B-05 全景分组 | 已实现（基础结构） | E3/E5：核心、内容、评论、影响情感四组，双情感实例与各域明细表；无其它、受众及发布时间/频率分组 | 结构历史通过；来源标题与条件展示见 B-07，创作者正式算法见 B-X；不恢复移除项 |
| B-06 动态分组 | 已实现（基础结构） | E4：顶部地图/摘要/趋势整体；内容、评论两组；无重复总体内容趋势；地图只收内容计数 | 结构历史通过；点击行为见 B-08；无地区数据降级、采样不足及各排行边界在 D-01/D-02 中核验 |
| B-07 文案与状态 | 已实现（Mock 覆盖场景） | 已观测来源/地区标题；可用、部分覆盖、延迟、过期映射；单一来源有限提示、无来源隐藏、单一地区不排行、无地区地图短空态 | 延迟/过期保留原快照日期和事实，不代表真实调度；状态与五语本轮验收见接管记录 |
| B-08 局部交互 | 已实现（取消自动滚动） | selectRegion / selectNegativeTopic 保留局部筛选和条件清除，移除 scrollIntoView；表格与抽屉沿用旧能力 | T3 改为验证点击前后 scrollY 不变；局部交互结果见接管记录，不再接受旧 scrollY > 0 断言 |
| B-09 高级筛选 | 已实现（Mock） | E3/E5/E6：全景抽屉含内容和评论两域条件；取消用草稿、清除恢复；动态不挂载抽屉并清除全景隐藏条件 | T1/T2 历史通过，T3 有交互检查；接管后复跑应用/取消/清除、跨 Tab 和高页码收窄条件，不重新造筛选系统 |
| B-X 创作者双指标 | 已实现（演示展示） | E5/E6：规模/类型分组、主粗次细同尺度双条、缺失评论不补零、内容证据抽屉 | 图表与数据测试历史通过；生产权重、0.6/0.4 配比及最小样本门槛未定，见 P-01。正式算法未定不等于图表待开发 |

#### Stage C：后续开发清单

以下功能未作为完整品牌增量交付。已有字段或单域图表只是可复用基础；本表不把 Stage C 自动纳入 Stage B 收尾范围。

| 编号 | 功能 | 实现状态 | 可复用基础与剩余开发 |
| --- | --- | --- | --- |
| C-01 | 自然提及 / 疑似推广 / 未知 | 待开发 | E3/E5/E6 已有内容集合、标题和内容表；所核对代码未发现 mention_type、mention_type_reason 或三分类 UI。补分类定义、示例字段、聚合/筛选及表格呈现；明确疑似推广非合作事实 |
| C-02 | 内容主题与评论主题关联 | 待开发（单域基础已实现） | E6 已按主题分别产出 contentThemes/commentThemes，评论有 contentId 和 comment_topic_id；E5 已有双域主题表/抽屉。尚无稳定的跨域主题键合同、关联聚合及并列的内容量/采样评论量/负向占比展示；补齐这些增量，不重做单域情感组件 |
| C-03 | 最多三项近期观察 | 待开发 | E4/E6 已有当前窗口内容/评论、主题、来源和主题抽屉；未发现情感差异、同主题差异、来源交集的观察生成与展示模块。补事实计算、缺基线限制和紧凑展示，证据使用已有抽屉，不新增自动定位或处理流 |

#### Stage D：已有验证与待补验收

| 编号 | 验收项 | 实现/验证现状 | 剩余动作 |
| --- | --- | --- | --- |
| D-01 | 数据边界与状态 | T1 本轮13/13，包含延迟/过期、单一来源、地区缺失和空集合 | 两页覆盖场景与采样缺失已验证；只证明 Mock 合同，不证明生产覆盖 |
| D-02 | 页面交互与桌面视口 | T2 本轮37/37，T3 本轮53/53，补充UI交互39/39 | 1440/1280、图表、抽屉、筛选、不自动滚动与局部表格通过；单页数据只验证分页边界，详见接管记录 |
| D-03 | 零真实业务请求/写入 | T3 当前端到端通过，未知业务请求使验收失败 | 雷达业务请求0；壳层SDK、通知查询和开发热更新单列，不等于整站零网络 |
| D-04 | 旧 VOC 无回归 | 共享图表真实SFC与HEAD的4项兼容检查通过 | 默认/false行为等价、旧调用未opt-in、模板样式不变；白名单整页行为仍待具备条件时验收 |
| D-05 | 中文与多语言 | 中文主要交互及五语新增词条/情感/样本不足解析通过 | 完整五语长文视觉和所有筛选组合仍待核验；保留既有root fallback警告记录 |
| D-06 | 可复现版本及验收产物 | 本轮38文件覆盖包、code-manifest.json、结构化结果与截图已落盘 | 与记录的HEAD及i18n底座组合复现；未提交、未推送，不含运行环境/依赖/凭证 |

#### 待定义与不纳入项

| 编号 | 项目 | 状态 | 后续边界 |
| --- | --- | --- | --- |
| P-01 | 创作者正式算法、情感/主题定义与门槛 | 待定义 | 已有演示实现；确认权重、分母、未知值和最小样本后再决定生产适配 |
| P-02 | 任意品牌映射与生产数据范围 | 待定义 | SHEIN Mock 已实现；服务端身份映射、真实数据与范围契约未交付 |
| P-03 | 权益、价格、有限真实预览及示例暴露范围 | 待定义 | 独立付费与 Assets 基础证据边界已确认；可执行权益和字段裁剪方案未交付 |
| P-04 | 刷新周期、站内通知与采集生命周期 | 待定义 | 动态看板已存在；刷新 SLA、站内通知规则及生产采集不因看板存在而视为实现 |
| P-05 | Brand 页入口具体位置 | 暂缓定义 | 继承 Brand 上下文方向已定；演示入口不等于最终入口决策 |
| X-01 | 动态高级筛选、锚点导航、全景其它组 | 已删除 / 不纳入 | 不恢复；自动滚动残留已按 B-08 移除 |
| X-02 | 受众画像、发布时间/频率主视图 | 已移除主路径 / 不纳入 | 保留历史组件或字段不等于需要重新展示 |
| X-03 | 竞品对比、达人发现、工单、站外通知、真实导出及移动端样式改造 | 不纳入 | 不作为遗漏开发项；具体排除项同时遵守第 15 节 |

#### 接手后的执行顺序

1. 核实工作区文件和证据索引，保留已经实现的页面基线。
2. 完成 B-07/B-08 已知修正，明确 B-02 剩余参数契约；其他“已实现”项先回归，不重复开发。
3. 按 D-01～D-06 补齐验证与版本记录；“待核验”只有验证失败才转为修复任务。
4. 明确 Stage C 的实施范围及必要定义，再执行 C-01～C-03；P 类生产事项单独设计，不混入 Demo 收尾。

## 18. 版本变更与后续议题

v1.7（2026-09-08）：由本任务接管主 VDR；8.1.1 明确 Demo 参数保留、实际生效、返回行为和生产映射的区别；17.4 更新 B-07/B-08 已实现状态。B-07 新增显式 Demo 场景 `active_delayed` / `active_stale` / `active_single_source` / `active_no_regions` / `active_empty`，用于验证状态降级，不代表生产生命周期或任意品牌支持。默认与 partial 场景继续保留。

Stage C 仍未开发。最小设计提案仅供工作区讨论，建议按 C-02 稳定主题关联 → C-01 有证据的提及类型 → C-03 近期事实观察推进；必要分类、主题和门槛定义明确后逐项实施。本文件第 5～13 节的产品边界不因该提案自动扩大。
