Files
Agent-System-Dev/docs/superpowers/specs/2026-10-16-document-visualization-view-spec.md
T

7.1 KiB

文档驾驶舱双视图交互规格 r1

状态:待评审;这是界面与交互规格,不是实现稿。

1. 信息架构

项目文档驾驶舱
├── 顶部:项目名 / 视图切换 / 密度 / 全局筛选 / 刷新状态
├── 项目统计带:完成度、空缺、未核实、冲突、待确认、最近更新
├── 左栏:文档结构树(文档→章节→小节→段落)
├── 中栏:
│   ├── 全景:项目/文档概览、章节状态、关系摘要
│   └── 阅读器:目录定位、正文、段落状态和版本变化
└── 右栏:依据、历史、影响、冲突(同一选中节点)

不新增第四栏。窄屏时三栏变为同一工作区内的单栏导航:树、内容、依据面板依次进入,始终提供明确返回按钮和当前节点标题。

2. 顶部统计带

统计卡只展示数值和一句解释,不做装饰性大卡片。每个统计项可点击,点击后只改变共享筛选:

  • 完成度:已知完成节点 / 已知节点;数据不足时显示“部分计算”。
  • 空缺段落:内容为空或结构缺失的叶节点。
  • 未核实来源:有来源但验证状态不是 verified 的节点数。
  • 冲突:开放或待裁定冲突数。
  • 待确认变更:最近变化中需要人工确认的变更数。
  • 最近更新:最近一次可见变更时间和操作者。

点击统计不得直接执行写入或裁定;它只定位待处理内容。

3. 左侧结构树

默认显示

每行显示标题、层级缩进、内容状态、来源数、冲突/待确认徽标和最近更新时间。内部 ID、数据库类型名和技术状态码不显示。文档节点可以展开,章节和段落按需加载;加载失败只影响当前分支并保留重试。

交互

  • 单击节点:更新共享 selectedNodeRef,中央和右侧同步加载。
  • 展开箭头:只加载子节点,不改变选中内容。
  • 键盘:方向键移动,Enter 选择,Space 展开,左/右折叠/展开。
  • 搜索:按标题、路径和可见摘要检索;搜索结果仍受项目权限和当前筛选约束。
  • 状态徽标:可作为筛选入口,但不隐藏结构树的其他节点。

4. 结构全景

中央内容

未选中节点时显示项目/文档概览:文档列表、章节完成度条、缺项摘要、最近变化和风险分布。选中节点时显示:

  1. 节点标题和路径。
  2. 一句话状态总结(内容、验证、冲突、影响)。
  3. 当前可见正文摘要或章节概览。
  4. 子节点状态表,可按缺项/冲突/负责人排序。
  5. “在阅读器中打开”按钮,带同一 nodeRef 和阅读锚点。

关系摘要

只在选中节点附近显示来源数量、影响对象数量和冲突数量;关系详情在右栏展开。大规模网络图不是默认内容。

5. 文档阅读器

中央内容

阅读器按章节连续渲染正文,段落之间显示轻量状态线:来源类型、验证状态、最近修改人/时间和冲突标记。版本变化默认以“当前版本 + 前一版本摘要”呈现,完整差异使用 Collapsible 展开。被权限过滤的段落显示“内容受限”,而不是空白。

阅读行为

  • 从全景进入阅读器时定位到选中节点并保留章节滚动锚点。
  • 从对话卡片或来源跳转时,若目标是关系解释,进入全景;若目标是交付正文,进入阅读器。
  • 切换筛选后保留选中节点;若节点被筛掉,显示“当前节点不在筛选范围”并提供清除筛选。
  • 后台更新不抢占滚动位置;仅在标题旁显示“内容已更新”,用户选择刷新。

6. 右侧依据与影响面板

右侧使用四个标签,默认打开“内容来源”。每个标签显示数量和状态,详情按需展开。

内容来源

显示来源类型图标/文字、摘要、采集时间、核实状态、置信度和可见定位。私人来源只显示脱敏元数据;不展示隐藏原文或内部提示词。

修改历史

以自然语言时间线显示创建、正文修改、来源变化、验证变化和冲突状态变化。每条记录显示操作者、时间、版本和差异摘要;完整 diff 折叠。

影响对象

显示受影响要求、文档、风险、任务和追溯关系。默认一跳,显示关系类型、方向、状态和置信度;继续展开前提示数量上限。

冲突与风险

显示冲突双方摘要、各自来源、发现时间和当前裁定状态。没有权限看到一侧原文时仍显示“另一侧受限”,不把冲突误判成单方事实。

7. 状态与空态

状态 文案方向 禁止行为
加载中 加载项目文档概览 / 加载依据 不显示虚假的 0 统计
空项目 暂无受控文档 不显示导入或生成按钮,除非另有已批准入口
部分加载 已显示已读取内容,部分依据暂不可用 不把部分数据标为完整
受限 你可以看到节点状态,但正文受权限限制 不泄露原文存在性以外的私密信息
过期 内容来自某时间的快照,刷新以获取最新状态 不静默自动改写用户正在阅读的正文
失败 该面板暂时不可用,可重试 不清空其它已成功面板
截断 已显示前 N 条,继续展开有上限 不假装显示全部关系

8. 视觉与可访问性门禁

  • 颜色、圆角、字号只消费 @ui/tokens.css;字号使用 --fs-ui-*。
  • 折叠只使用 @ui Collapsible,动效只使用 @ui/motion.css 的 mk-* 类。
  • 主操作采用单色反色按钮;状态色只表达成功、警告、错误、等待和差异语义。
  • 320/390/736/1024/1440 宽度下不横向溢出;18px UI 字号下标题、按钮和徽标不重叠。
  • 所有图标按钮有可访问名称;树节点和标签页有键盘焦点;减少动效时只保留状态变化。
  • 不把三栏做成互相嵌套的卡片墙;页面区域使用无框布局,重复来源/变化项才使用轻量条目容器。

9. 视图切换规则

触发来源 默认视图 定位
第一次进入项目 结构全景 项目根节点
用户上次有偏好 上次视图 上次项目/节点锚点(仍需重新授权)
对话解释关系 结构全景 目标关系节点
对话交付正文 文档阅读器 目标章节/段落
来源或冲突跳转 当前视图保持 选中节点 + 右栏对应标签
节点无正文但有关系 结构全景 节点摘要和影响面板

10. 交互验收场景

  1. 进入有多个文档的项目,首屏看到统计和树,不需要逐个打开弹窗。
  2. 在全景点选段落,切换阅读器后正文和右栏仍是同一段落。
  3. 从阅读器打开来源,返回后保持滚动位置和筛选。
  4. 一个来源被撤回或标为未核实,统计、树徽标、正文状态和来源面板一致变化。
  5. 两个来源冲突时,冲突面板显示双方摘要;无权限的一侧只显示脱敏状态。
  6. 读取超时或断线后,保留旧快照并明确显示过期,不出现空白页面。
  7. 在窄屏和键盘操作下,树、正文和依据面板都可进入和返回。