Skip to content

Latest commit

 

History

History
65 lines (44 loc) · 4.44 KB

PRD.md

File metadata and controls

65 lines (44 loc) · 4.44 KB

Project Graph 产品需求文档

1. 产品定位

Project Graph 是用于头脑风暴、知识图谱和项目规划的桌面节点图工具。用户应能在大画布上流畅创建、阅读、连接和整理内容,工程文件可在本地可靠地打开与保存。当前应用以 React、Canvas 2D 和 Tauri 为基础;本文描述产品预期,不把现有实现等同于已验收功能。

2. 目标用户与核心任务

用户 核心任务 关键体验
创作者、设计师 快速把想法组织为节点与连线 创建和编辑直观,选中态不遮挡内容
学习与教学用户 阅读、放大并讲解复杂知识图谱 文字清晰,缩放和平移可预测
开发与项目规划用户 管理较大、可持续编辑的工程 打开稳定,大工程操作保持响应

3. 产品原则

  1. 内容优先:装饰与动效服务于定位和反馈,不遮挡节点或文本。
  2. 输入可预测:同一次鼠标或触控板手势不得在缩放与平移之间跳变。
  3. 可恢复:主题、渲染或工程加载失败时仍应有可见界面和可理解的错误反馈,避免黑屏与无响应。
  4. 跨平台一致:功能以 Windows、macOS、Linux 桌面端为目标;具体差异须在验收记录中明确。

4. 功能需求与验收

R1 · 工程生命周期

  • 用户可以创建草稿、打开本地 .prg 工程并继续编辑;失败时展示可见错误,不应出现只有窗口外框或菜单而画布消失的状态。
  • 关闭并重新打开工程后,节点、连线、视野和必要的工程状态保持一致。
  • 开发态热重载不能使界面永久卡死;若重载无法恢复,应提供明确的重新打开路径。
  • 回归工程统一使用仓库根目录的 test.prg,测试不得修改原文件。

R2 · 画布导航

  • 鼠标单滚轮默认以指针位置为中心缩放,不应上下拖动画布;现有可配置的修饰键行为保持有效。
  • 触控板双指滑动平移画布;双指捏合缩放,并允许在捏合的同时平移。
  • 连续滚动或手势惯性期间,输入模式保持稳定;拖动响应及时,不出现明显卡顿或反向跳动。
  • 分别在实体鼠标、触控板及目标桌面平台上验收;浏览器合成事件不能代替设备测试。

R3 · 主题与背景

  • 默认暗色/亮色主题分别使用 Catppuccin Mocha / Latte,绿色强调色取自对应主题的绿色,而非跨主题固定色值。
  • 切换主题时,新的主题从操作点以圆形向外扩散覆盖整个应用界面,使用平滑非线性动画;快速重复切换不闪黑、不残留旧主题。系统要求减少动画时直接完成切换。
  • 背景板目标为 72% 透明度;实际桌面效果须连同窗口合成一起验收,而不只检查 CSS 或设置值。
  • 画布背景使用点阵。X/Y 轴上的点比普通点略大、略亮,以体现坐标系;默认不绘制横纵网格线。

R4 · 节点与文字

  • 新建、编辑和选中节点时,外框应贴合节点边界,线宽克制;不得出现多余延伸、重叠粗框或挡住文字。
  • 文本在常用及放大缩小的视野比例下保持可读;中文、英文、混排、emoji 和不支持的字形均不应变成方框、错位或空白。
  • MSDF 可以作为清晰度方案,但必须有可用的字体与平台回退;不能以阻塞初始化或黑屏为代价。

R5 · 性能体验

  • 使用 test.prg 对画布拖动、滚轮缩放、触控板手势和主题切换进行实际交互回归。
  • 优化前先记录目标设备、工程规模、帧时间与主线程阻塞,定位瓶颈;避免只根据静态截图判断“丝滑”。
  • 性能阈值和支持设备基线在首次测量后确定,未测量前不宣称已达标。

R6 · 错误处理与可验证性

  • 初始化、文件加载、字体渲染及主题过渡的错误应反馈到可见界面;不能静默失败。
  • 每项体验修复均保留可重复的验证步骤、目标平台与结果;类型检查通过不等于桌面交互验收通过。

5. 非目标与架构议题

  • 本轮不新增节点类型、不更改 .prg 文件格式,也不发布或迁移应用框架。
  • A1 · mygo 评估:将 egoist/mygo 作为可能的桌面框架候选。先验证现有前端、窗口、文件、扩展与跨平台能力,并比较迁移成本和风险;是否迁移由原型与评审决定。执行清单见 TODO.md。