Skip to content

Latest commit

 

History

History
303 lines (208 loc) · 17 KB

File metadata and controls

303 lines (208 loc) · 17 KB

日序 V1 产品需求文档(PRD)

1. 文档信息

  • 产品名称:日序
  • Slogan:每天都有安排
  • 产品形态:微信日程管理小程序
  • 文档范围:V1 产品定义;当前实现进度以 TASKS.md 为准
  • 目标用户:希望低成本记录、安排并完成日常事务的普通用户

本文件是 V1 产品范围的主要真相来源。技术实现不得缩减、扩张或改写本文件的产品意图;发现平台限制或技术风险时记录到 DECISIONS.md 并交由负责人决定。

2. 产品定位与目标

日序是轻量日程管理工具,不是专业项目管理软件,也不是只有勾选能力的 Todo List。它通过“想到事情 → 记录 → 安排日期 → 提醒 → 专注 → 完成”的闭环,减少用户从记录到行动的阻力。P0 全局体验以“把今天,安排得刚刚好”为价值表达,并用温和的“一日归位”反馈连接品牌与完成体验;这只是用户界面表达,不新增业务状态或改变完成口径。

V1 目标:

  • 让用户无需登录即可快速记录并安排事项。
  • 用周历/月历、今日事项和逾期区帮助用户理解“今天做什么”。
  • 在微信能力边界内提供可靠、诚实的提醒体验。
  • 通过简单专注和统计反馈帮助用户完成事项。
  • 支持低复杂度的微信共享清单协作。
  • 为后续 App 和外部来源接入保留可迁移的数据模型。

非目标:专业排期、团队项目管理、复杂分析或开放内容平台。

3. 产品原则

  1. 轻量优先:常用动作在更少步骤内完成,高级字段渐进展开。
  2. 游客优先:首次使用不强制登录,云能力在需要时解释并引导开启。
  3. 数据可信:逾期事项不擅自改日期,完成状态和同步结果可解释。
  4. 平台诚实:不把订阅消息描述为原生 App 式无限后台推送。
  5. 大众语言:界面不暴露 event、all_day、todo 等技术概念。
  6. 克制设计:现代、干净、大量留白,少阴影、少渐变。
  7. 结果优先:欢迎、今日、日历、专注和我的围绕“开始安排 → 看清今天 → 专注行动 → 看见成果”建立主次,不用功能堆叠争夺首屏注意力。

4. 信息架构

底部导航固定为四项:

  1. 今日
  2. 日历
  3. 专注
  4. 我的

补充入口:

  • 今日页右下角悬浮“+”:轻量创建。
  • 今日页顶部:逾期事项入口/区域。
  • 我的:收集箱、自定义清单、提醒中心、基础统计、同步与身份设置、反馈等入口。
  • 首次启动:欢迎页,完成后进入今日页。

“我的”页的具体排列在实现阶段细化,但不得改变四个固定 Tab。

5. 核心概念

5.1 事项类型

系统内部根据日期和时间派生类型:

条件 内部类型 用户侧含义
有日期和时间 event 在某天某时开始的事项
只有日期 all_day 某天内要做的事项
没有日期 todo 暂未安排,进入收集箱

类型由字段组合推导并校验,普通用户不手动选择技术类型。

5.2 清单

  • 收集箱:承载无日期事项的系统入口,不要求用户先选择自定义清单。
  • 自定义清单:由用户设置名称、图标、颜色,如工作、学习、生活。
  • 共享清单:由创建者发起微信分享邀请,成员共同维护事项。

5.3 身份状态

  • 游客:本地保存,具有稳定 clientId,可使用不依赖云端身份的基本功能。
  • 已开启云同步用户:完成微信身份映射后,可同步、备份和使用共享清单。

不把“开启同步”包装成强制注册。具体授权文案与流程必须符合届时微信平台规范。

6. 关键用户旅程

6.1 首次使用

  1. 首次打开显示欢迎页。
  2. 展示“日序”“每天都有安排”和价值表达“把今天,安排得刚刚好”。
  3. 主按钮为“开始安排今天”,底部为“无需登录即可使用”。
  4. 点击后记录本地欢迎完成状态并进入今日页。

验收:未登录用户可进入主界面;后续正常启动不重复打扰,且设置中可查看产品说明。

6.2 快速记录与安排

  1. 点击悬浮“+”打开轻量半屏面板。
  2. 默认显示标题、日期、时间、所属清单、保存。
  3. 没有日期时保存为收集箱事项;有日期无时间为全天事项;日期和时间都有为定时事项。
  4. 点击“更多设置”进入完整编辑页,保留已输入内容。

验收:必填和时间组合错误有清晰提示;保存成功可在对应日期或收集箱看到且不会重复创建。

6.3 计划与完成今天

  1. 今日页默认显示周历和当前选中日期。
  2. 向下拖动日历区域展开完整月历;向上拖动恢复周历。
  3. 点击日期后事项列表同步切换,按时间规则排序。
  4. 点击左侧圆圈完成/取消完成;点击事项进入详情;左滑显示延期/删除。

验收:所有动作有可见反馈;今日页以“已归位 N / M”展示当天完成进度,空状态提供直接创建第一件事的入口;“归位”仅为友好文案,底层仍使用既有完成状态。误触风险动作可撤销或确认;状态变更后列表与统计一致。

6.4 处理逾期

未完成且计划日期早于今天的事项保持原日期。今日页顶部显示逾期事项,用户可以:

  • 移到今天;
  • 重新安排日期;
  • 保留原日期;
  • 移除该事项:先明确二次确认,确认后软删除整条事项。

验收:系统绝不静默更改原日期;每次改期是用户明确操作并更新修改时间。

6.5 开启云同步

  1. 游客在请求云备份、同步或共享时看到能力说明。
  2. 用户主动确认后进行微信身份映射和云端初始化。
  3. 本地数据使用稳定实体 ID 进行幂等上传。
  4. 同一事项不得因重试产生副本;冲突结果可被记录和恢复。

验收:取消开启不丢本地数据;成功开启后本地记录数量和标识保持稳定。

6.6 共享清单

  1. 已开启云同步的用户创建共享清单并成为创建者。
  2. 通过微信分享发出邀请;接收者明确确认后加入。
  3. 创建者与普通成员按权限操作事项。
  4. 移除成员或解散等管理动作由服务端验证。

验收:普通成员无法通过篡改客户端执行成员管理或解散;并发修改能发现版本冲突。

6.7 专注

用户可选择 25、45、60 分钟或自定义时长,独立开始或关联事项。准备页突出时长、本次目标和开始动作;计时后切换为只保留倒计时、暂停/继续和结束的沉浸界面。结束后记录实际专注时长并显示轻量完成反馈;若关联事项,仅在用户确认后完成该事项。白噪音不再属于当前版本。

已开启云同步的用户可进入“共同专注”:

  1. 从三个固定主题公开自习室加入,或创建微信邀请房。
  2. 单房最多 20 人;每个人独立选择时长、开始、暂停和结束,不由房主统一控制倒计时。
  3. 成员默认使用日序生成的昵称与几何头像;用户可自愿选用微信头像和昵称,拒绝或未授权时仍可完整使用共同专注。
  4. 房间只展示成员专注状态和自愿公开的一句话目标,不公开个人事项标题。
  5. 房间消息支持最多 200 字自由文字,主页面常驻最近 3 条和紧凑输入区,完整历史可从半屏面板查看;消息不响铃,发送前必须通过服务端内容安全检查,并提供举报、邀请房房主禁言和移除能力。
  6. 共同专注依赖网络和可信云身份;云端不可用不能影响个人专注及本地记录。

验收:退出/中断后的计时按时间戳恢复而非只依赖前台计数;不会未经用户确认自动完成关联事项。

共同专注验收:未开启同步者不能伪装加入;公开房和邀请 token 均由服务端校验;普通成员不能伪造房主权限;审核失败的文字不落库;两台设备能看到成员状态和消息更新,各自计时互不干扰。

7. 功能需求

7.1 今日与日期导航

  • 顶部默认周历,可手势展开为月历和收起。
  • 日期选择驱动下方列表,不实现专业时间轴。
  • 当天事项按时间排序;全天和无明确时间事项采用稳定、可说明的分组顺序,最终细则在 UI 实现前确认并写入决策。
  • 左侧圆圈切换完成状态,支持进入详情、左滑延期和删除。
  • 删除采用软删除并提供合适的确认/撤销反馈。

7.2 逾期事项

  • 判断对象:有日期、未完成、未删除且日期早于本地“今天”的事项。
  • 今日页顶部展示逾期数量与列表入口或展开区。
  • “移到今天”和“重新安排”显式改变日期;“保留原日期”不改数据。
  • “移除该事项”属于危险操作,必须二次确认并使用软删除;取消确认时不得改变日期、状态或列表归属。

7.3 快速创建与完整编辑

轻量半屏字段固定为:标题、日期、时间、所属清单、保存;提供“更多设置”。

完整编辑字段:标题、备注、日期、时间、全天事项、提醒、重复、所属清单、优先级、子任务、基础倒数日。

  • 标题必填,空白字符不算有效标题。
  • 日期、时间、全天状态和内部类型必须保持一致。
  • 基础倒数针对普通事项开启,显示“距离…还有 N 天”等表达;完整纪念日体系不在 V1。

7.4 收集箱与自定义清单

  • 无日期事项进入收集箱。
  • 用户可创建、编辑和软删除自定义清单。
  • 自定义清单字段为名称、图标、颜色。
  • 删除有未完成事项的清单时必须给出明确处理方案,最终规则在实现前确认,不能静默删除事项。

7.5 独立日历页

  • 独立日历始终显示包含相邻月份日期的完整 6×7 月历,不提供收起为周历的交互;点击月份可选择目标月份,切换时尽量保留当前日并在短月份安全收拢到月末;今日页既有周历/月历拖拽不受影响。
  • 每个日期格同时显示公历日期和农历副文本;遇到节日或节气时,以对应名称优先替代普通农历日期。
  • 清单筛选直接保持可见,支持按全部、自定义清单、共享清单筛选,不收进隐藏菜单。
  • 月历下方显示选中日期和当天事项。事项列表仅供浏览,不提供点击编辑、完成/取消完成、左滑、延期或删除操作。
  • 日历页不显示悬浮新增按钮,事项创建继续使用已有创建入口。
  • 提供非占卜性质的“今日节奏签”:只对应设备真实今天,根据今天的事项数量、逾期情况和完成进度匹配轻量建议卡池,再从匹配结果中抽取一张彩色行动卡。
  • 每个真实日期只能正式抽取一次;结果保存在设备本地,当天再次进入只查看同一结果。切换月历选中日期不会改变节奏签日期,也不能提前抽取未来日期。
  • “今日节奏签”不使用 AI、不预测运势、不修改事项数据,V1 暂不参与 CloudBase 云同步。
  • 不提供专业时间轴。

7.6 重复事项

V1 支持:不重复、每天、工作日、每周、每月、每年、自定义星期、重复间隔、结束日期、重复次数。

必须定义可测试的规则语义,包括跨月无对应日期、闰日、时区、编辑单次/后续/整组和完成记录。具体生成与存储策略在 Stage 8 前通过 DECISIONS.md 定案,不加入自然语言智能重复。

7.7 提醒与提醒中心

  • 渠道:微信订阅消息 + 小程序内提醒中心。
  • 提醒中心至少包含即将开始、今日提醒、逾期事项、共享清单相关通知。
  • 请求订阅授权必须由明确的用户动作触发,并说明一次性/长期订阅模板的实际平台能力。
  • 用户拒绝或发送失败时,小程序内提醒仍可用,并提供可理解状态。

7.8 专注与共同专注

  • 预设 25/45/60 分钟和自定义时长。
  • 可独立或关联事项开始。
  • 准备态提供一句本次目标;计时态隐藏非必要导航和设置,结束态提供完成反馈。
  • 记录开始、计划时长、实际结束、实际时长、中断状态及关联事项。
  • 共同专注提供固定主题公开房与微信邀请房,容量 20;各成员使用自己的本地时间戳会话,并将有限状态同步到房间。
  • 自由文字消息在房间主页面常驻最近 3 条,完整历史通过半屏面板查看;只保留最近有限条目和 7 天有效期,不提供图片、语音、点赞、关注、动态发布或跨房私聊。
  • 所有房间、成员、消息、邀请、举报和管理动作经过云函数,服务端使用可信身份、内容安全与角色校验。

7.9 基础统计

至少显示今日完成事项数、本周完成事项数、未完成事项数、完成率、专注总时长;可提供简单七日趋势。

统计口径必须统一:时区、周起始日、软删除、重复实例、取消完成的处理在 Stage 13 前固定并测试。不做复杂分析或 AI 周报。

7.10 共享清单与权限

操作 创建者 普通成员
查看 是 是
新增事项 是 是
修改事项 是 是
完成事项 是 是
邀请成员 是 否
移除成员 是 否
修改共享设置 是 否
解散共享清单 是 否

所有权限必须由服务端根据可信身份与成员关系验证。V1 只有两级权限,不增加审批流或字段级权限。

7.11 我的

承载清单、收集箱、提醒中心、基础统计、同步/身份状态、反馈和必要设置入口。具体页面拆分以轻量为原则,不借此加入会员、社区或复杂配置。

7.12 轻量管理后台

预留独立 Web 管理后台,V1 仅包含:基础仪表盘、用户管理、意见反馈、公告配置、共享内容异常处理。管理员身份、审计和写权限必须由服务端控制;不构建复杂运营后台。

8. 数据与同步要求

核心实体至少包括:users、lists、list_members、events、subtasks、repeat_rules、reminders、focus_sessions、notifications、feedback、app_config。

events 至少包含:creatorId、listId、title、note、type、startAt、endAt、date、status、priority、countdownEnabled、repeatRuleId、sourceType、completedAt、createdAt、updatedAt、version、deletedAt。详细逻辑模型见 DATABASE.md。

  • 游客使用持久稳定的 clientId 和 UUID。
  • 开启云同步时用稳定 ID 和幂等写入避免重复。
  • 普通个人数据冲突 V1 可采用 updatedAt 较新者优先,但必须保存可诊断信息。
  • 共享数据采用服务端 version 或等价乐观并发控制,不能简单最后写覆盖。
  • sourceType 为未来外部导入保留;V1 不实现外部日历同步。

9. 非功能要求

  • 兼容性:优先符合微信小程序环境与 CloudBase 实际能力。
  • 性能:列表和月历交互流畅;大数据量必须分页/增量处理,具体预算在 Stage 1 基线确定。
  • 可靠性:本地写入、云端写入和重试有错误处理;用户可辨认未同步状态。
  • 安全:客户端无 Secret;共享写操作服务端鉴权;重要数据软删除;管理操作可审计。
  • 可访问性:触控区域、字号、色彩对比和状态反馈满足大众使用;不只依赖颜色传达状态。
  • 隐私:最小化收集数据;涉及微信身份与通知授权时说明用途并由用户触发。
  • 可迁移性:实体模型和纯业务规则不依赖具体页面,给未来 App 留出复用空间。

10. V1 明确不做

  • AI 日程助手、自然语言智能重复、AI 周报
  • 图片附件、文件附件
  • 外部日历同步(仅保留 sourceType)
  • 完整纪念日体系
  • 复杂数据统计
  • 公开社区、动态广场(已批准的固定主题共同专注房不包含关注、动态发布、推荐流或跨房私聊,不视为开放社区)
  • 专业项目管理、专业日历时间轴
  • 复杂成员权限
  • 会员系统、付费功能

11. 版本边界

本文件只定义 V1。当前没有经负责人确认的 V1.1 范围;“未来”“后续”或“预留”均不等于 V1.1 承诺,不得在 V1 中提前实现。新版本需求必须另行立项并更新本节。

12. V1 总体验收

V1 可进入上线准备需同时满足:

  • 核心闭环在游客模式和开启同步后均能完成。
  • 四个固定 Tab、欢迎页、收集箱、共享与管理后台范围符合本文件。
  • 同步重试不生成重复事项,共享权限无法通过客户端绕过。
  • 订阅消息流程经真实微信平台能力验证,失败有小程序内降级。
  • 数据字段、统计口径、重复语义和删除策略有文档与自动化测试证据。
  • 不包含第 10 节禁止功能,不含真实敏感配置。