Files
agent/docs/superpowers/specs/2026-07-18-project-workbench-mvp-design.md

256 lines
9.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 项目工作台 MVP 设计
## 目标
构建一个以项目为中心、面向私有部署的个人与小团队工作台。产品要解决资料分散、任务分散、AI 对话分散、用时找不到的问题让每个项目都有统一位置承载任务、笔记、文件、AI 对话、收集内容和轻量任务分发。
第一版不是完整协作套件、即时通讯工具或企业知识图谱。它是一个项目优先的工作空间,重点是可靠收集、组织、搜索和 AI 辅助整理。
## 目标用户
- 同时管理多个主题或项目的个人知识工作者。
- 需要整理项目资料并分发任务的团队负责人。
- 私有部署环境中的内部用户,通过管理员创建账号或邀请码注册。
## 产品范围
### MVP 包含
- 以项目为中心的工作空间。
- 项目 Dashboard 作为项目默认首页。
- 项目 inbox用于手动收集和承接系统事件。
- 任务列表,支持状态和排序,并为未来看板视图预留模型能力。
- 统一的 Markdown 笔记/文档对象。
- 项目内文件和链接资料。
- 项目内标签,用于筛选项目对象。
- AI 会话归属于具体项目。
- AI 会话可以引用项目笔记和资料。
- AI 辅助分析 inbox 内容,并建议生成任务、笔记或资料。
- 跨项目关键词搜索和全文搜索。
- 向系统内用户分发任务。
- 显式共享任务关联对象。
- 响应式 Svelte Web 前端,并由 Tauri 包装为桌面客户端。
- 客户端登录时需要填写服务器 IP 或域名,作为 API 服务地址。
- Tauri 桌面能力:登录持久化、文件拖拽上传、系统通知、全局快捷键快速收集。
- Go Gin + Gorm 后端,数据库使用 PostgreSQL。
- 服务端本地文件存储。
- 系统 AI key以及用户可选配置自己的 AI key。
### MVP 不包含
- 真正的实时即时通讯。
- 项目级成员体系和完整角色权限协作。
- 匿名公开任务分享。
- AI 自主 Agent 执行系统。
- 语义搜索或向量搜索。
- 移动端原生 App。
- 浏览器插件、邮件、IM 或第三方渠道收集集成。
- 离线编辑或本地优先同步。
- 高级本地桌面集成,例如开机启动、后台剪贴板监听、文件系统索引。
## 核心信息架构
应用分为全局外壳和项目工作区。
全局外壳:
- 项目列表。
- 全局搜索。
- 浏览器式打开标签页。
- 用户/账号设置。
- AI key 设置。
项目工作区:
- Dashboard。
- Inbox。
- 任务。
- 笔记和资料。
- AI 会话。
- 项目设置。
项目 Dashboard 是默认项目视图。它展示待处理 inbox、当前任务、最近笔记/资料、最近 AI 会话和最近项目事件。
## 核心对象
### Project
项目是一个主题工作空间。它拥有任务、inbox 条目、笔记、资料、AI 会话、项目内标签和项目事件。
### InboxItem
InboxItem 是等待处理的原始收集内容或系统事件。来源包括:
- 手动输入文本。
- 粘贴链接。
- 上传文件。
- AI 输出保存到 inbox。
- 内部任务事件、评论、状态变化。
外部渠道通过 `source_type` 字段预留,但 MVP 不实现外部渠道接入。
InboxItem 在处理后仍作为原始记录保留。处理动作可以将其标记为 `processed`,但不会删除原始内容。
### Task
任务支持:
- 标题。
- 描述。
- 状态。
- 排序字段,用于未来看板视图。
- 截止时间。
- 负责人。
- 项目内标签。
- 显式共享的关联对象。
- 评论或活动记录。
第一版 UI 使用列表。数据模型为未来 Todo/Doing/Done 看板列预留空间。
### Note
笔记和文档合并为同一种 Markdown 对象。通过模板、长度、标签和使用意图区分会议纪要、PRD、研究笔记或轻量文档。
### Source
Source 是原始资料例如上传文件或链接。MVP 使用服务端本地文件存储。文件路径逻辑必须集中在一个后端文件服务中,不应散落在各个 handler 里。
### AISession
AI 会话归属于一个项目,并以卡片形式出现在项目 AI 会话列表中。每个 session 拥有自己的消息历史和上下文,可以引用项目笔记和资料。
MVP 中的 AI session 是普通项目聊天,不是自主 Agent 运行。模型应为未来 Agent 化 session 预留空间,例如目标、状态、产出物和执行日志。
### Tag
标签是项目内标签。它们可以附加到项目内对象,用于该项目内筛选。跨项目查找依赖全局搜索,而不是全局标签。
### ProjectEvent
项目事件记录重要活动例如任务分发、评论、状态变化、AI 输出保存到 inbox、笔记更新和文件上传。事件可展示在项目 Dashboard 和类 inbox 的消息流中。
### User
用户体系面向私有部署。注册方式是管理员创建账号或邀请码注册。公开自助注册 SaaS 不在 MVP 范围内。
## 关键流程
### 收集到项目 Inbox
用户将文本、链接或文件添加到项目 inbox。在 Tauri 中,全局快捷键打开快速收集窗口。如果主窗口当前处于某个项目,该项目作为默认投递目标;否则用户需要选择目标项目。
内容进入 inbox 时不会自动触发 AI 分析。用户需要建议时,可以点击“分析/整理”。
### AI 辅助处理 Inbox
当用户点击“分析/整理”时,后端调用选定的 AI provider。AI 返回结构化建议列表,包含候选任务、笔记或资料。
用户查看建议列表编辑标题或基础字段勾选要创建的候选项然后确认。AI 不能在未确认时直接创建正式对象。创建出的对象需要保留对原始 inbox item 的引用。
### 项目 AI 对话
用户在项目下打开一个 AI session 卡片。该 session 有自己的消息历史。用户可以用 @ 选择器引用项目笔记或资料。AI 回复可以保存到 inbox、转换为笔记或关联到任务。
### 任务分发
用户可以把任务指派或共享给另一个系统用户。接收者能看到任务本身,以及被显式共享的关联对象。接收者不会自动获得项目级访问权限。
公开分享链接是未来能力,不属于 MVP 行为。
### 全局搜索
用户可以跨项目搜索。MVP 搜索范围包括:
- 项目名称。
- 任务标题和描述。
- 笔记标题和 Markdown 正文。
- 资料标题、文件名、URL以及可提取到的正文文本。
- AI session 标题和消息文本。
- Inbox 文本。
搜索使用 PostgreSQL 全文搜索,并支持关键词搜索。语义搜索后置。
## AI Key 策略
系统配置默认 AI provider/key。用户可以配置自己的 provider/key。如果用户配置了自己的 key优先使用用户 key否则可以回退到系统 key。
因为允许回退到系统 keyMVP 必须包含:
- AI 调用日志。
- 基础用户级限流。
- 错误记录。
- 用户 key 的安全存储。
- 清晰的 provider 选择逻辑。
## 后端设计
后端技术栈:
- Go。
- Gin HTTP API。
- Gorm ORM。
- PostgreSQL。
- 服务端本地文件存储。
建议后端模块:
- 认证和邀请。
- 项目。
- Inbox。
- 任务。
- 笔记和资料。
- AI 会话。
- 搜索。
- 文件。
- 标签。
- 事件。
- AI provider 网关。
文件模块拥有所有文件系统路径和元数据规则。Handler 不应直接构造存储路径。
## 前端与 Tauri 设计
前端是响应式 Svelte Web 应用桌面优先同时保证移动浏览器可用。Tauri 包装同一套前端作为桌面客户端。登录页必须允许用户填写服务器 IP 或域名,并将其作为后续 API 请求的服务器地址。
Tauri MVP 能力:
- 登录状态持久化。
- 文件拖拽上传。
- 系统通知。
- 全局快捷键快速收集。
浏览器式标签页保存页面级状态,例如打开的项目、任务详情、笔记、资料或 AI session。滚动位置等复杂内部状态不要求进入 MVP。编辑器草稿和 AI 输入草稿应单独保存,避免数据丢失。
## 权限
MVP 使用保守共享模型:
- 项目内容默认仅创建者可见,除非通过任务显式共享。
- 任务接收者可以看到任务。
- 任务接收者只有在对象被显式共享时,才能看到关联笔记、资料或文件。
- 项目级成员和角色体系后置。
## 测试与验证
后端:
- AI key 选择、inbox 处理、任务共享可见性、标签项目隔离、文件元数据处理的单元测试。
- 项目搜索、任务分发、inbox 转对象的集成测试。
- 需要真实 PostgreSQL 时,通过 `DATABASE_URL` 指向测试服务器;不要把真实凭据写入仓库。
前端:
- 项目 Dashboard、inbox 建议确认、AI session 列表、任务列表、快速收集表单的组件测试。
- 收集、分析、确认、搜索、任务指派流程的端到端测试。
桌面端:
- 手动验证文件拖拽上传、系统通知、快速收集快捷键、Tauri 登录持久化。
## 风险
- 如果项目协作、真实消息和自主 Agent 进入 MVP系统会迅速变得过宽。
- 系统 AI key 回退会带来成本和滥用风险,必须配套日志和限流。
- PostgreSQL 全文搜索对中文内容可能需要额外调优。
- 服务端本地文件存储简单,但需要认真处理备份、路径规则和未来迁移。
- AI 建议必须可审核、可撤销,否则用户会失去信任。
## 里程碑
1. 后端基础认证、用户、项目、PostgreSQL schema、文件元数据、服务端本地存储。
2. 项目工作区外壳:项目列表、项目 Dashboard、标签页、路由。
3. Inbox 和收集:手动 inbox、上传/链接/文本收集、Tauri 快速收集。
4. 笔记、资料和项目内标签。
5. 任务列表、指派、评论/事件、显式共享关联对象。
6. AI session 和 @ 引用选择器。
7. AI inbox 分析和建议列表确认。
8. 全局全文搜索。
9. Tauri 桌面完善:通知、登录持久化、拖拽上传验证。