chore: 初始化仓库结构
- 建立 monorepo 结构:app/ + server/ + docs/ - 纳入全部需求/架构/开发计划文档 - 新增 docs/PROGRESS.md 功能状态总览 - 新增 docs/decisions/ ADR 决策记录(001-004) - 新增根目录 README.md 含 AI 阅读指引 - 新增 .gitignore Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"permissions": {
|
||||
"allow": [
|
||||
"Bash(git config *)",
|
||||
"Bash(git add *)"
|
||||
]
|
||||
}
|
||||
}
|
||||
+36
@@ -0,0 +1,36 @@
|
||||
# 依赖
|
||||
node_modules/
|
||||
.pnp
|
||||
.pnp.js
|
||||
|
||||
# 构建产物
|
||||
dist/
|
||||
build/
|
||||
.next/
|
||||
out/
|
||||
|
||||
# 环境变量(含 API Key,绝不提交)
|
||||
.env
|
||||
.env.local
|
||||
.env.*.local
|
||||
|
||||
# 系统文件
|
||||
.DS_Store
|
||||
Thumbs.db
|
||||
desktop.ini
|
||||
|
||||
# 编辑器
|
||||
.vscode/
|
||||
.idea/
|
||||
*.suo
|
||||
*.ntvs*
|
||||
*.njsproj
|
||||
*.sln
|
||||
|
||||
# 日志
|
||||
*.log
|
||||
npm-debug.log*
|
||||
|
||||
# Capacitor
|
||||
android/
|
||||
ios/
|
||||
@@ -0,0 +1,37 @@
|
||||
# 🌱 人生目标 App
|
||||
|
||||
> 帮助用户管理人生目标树、每日/每周复盘并通过 AI 教练保持方向感的个人成长应用。
|
||||
|
||||
## 目录结构
|
||||
|
||||
```
|
||||
life_goals/
|
||||
├── app/ — React 前端(PWA → Capacitor)
|
||||
├── server/ — 后端 API(Phase 4 账号体系阶段启动)
|
||||
└── docs/ — 项目文档
|
||||
```
|
||||
|
||||
## 快速了解项目
|
||||
|
||||
| 我想了解… | 去哪里看 |
|
||||
|-----------|---------|
|
||||
| 当前开发进度 | [docs/PROGRESS.md](./docs/PROGRESS.md) |
|
||||
| 重要决策的来龙去脉 | [docs/decisions/](./docs/decisions/) |
|
||||
| 需求和功能边界 | [docs/02-需求分析/](./docs/02-需求分析/) |
|
||||
| 技术选型和架构 | [docs/03-架构设计/](./docs/03-架构设计/) |
|
||||
| 迭代路线图 | [docs/05-开发计划/](./docs/05-开发计划/) |
|
||||
| 完整文档目录 | [docs/README.md](./docs/README.md) |
|
||||
|
||||
## 给 AI 的阅读指引
|
||||
|
||||
1. 先读 `docs/PROGRESS.md` — 了解当前阶段和各功能状态
|
||||
2. 读 `docs/decisions/` — 了解重要决策的背景和原因
|
||||
3. 按需读对应的需求 / 架构文档
|
||||
|
||||
## 当前阶段
|
||||
|
||||
**Phase 0 已完成** — MVP 包含目标树 + 每日复盘 + AI 教练
|
||||
**Phase 1 待开发** — 每周复盘 + 体验提升
|
||||
|
||||
技术栈:React · Claude AI API · localStorage
|
||||
创建日期:2026-05-24
|
||||
@@ -0,0 +1,42 @@
|
||||
# app — React 前端
|
||||
|
||||
> 人生目标 App 的前端代码,目标是 PWA(Phase 2)后续打包为 Capacitor 原生 App(Phase 3)。
|
||||
|
||||
## 当前状态
|
||||
|
||||
📋 **待初始化** — 代码目前以 Claude Artifact 形式存在(`life-goals.jsx`),Phase 2 时迁移至此目录并引入 Vite 构建工具。
|
||||
|
||||
## 技术栈(规划)
|
||||
|
||||
| 项目 | 技术 |
|
||||
|------|------|
|
||||
| 框架 | React + Vite |
|
||||
| 样式 | Inline CSS + CSS Variables |
|
||||
| 存储 | localStorage(PWA)/ SQLite(Capacitor) |
|
||||
| AI 接口 | Anthropic API(Phase 4 前直连,之后走 server 代理) |
|
||||
| 打包 | Capacitor(Phase 3) |
|
||||
|
||||
## 启动方式(初始化后)
|
||||
|
||||
```bash
|
||||
cd app
|
||||
npm install
|
||||
npm run dev
|
||||
```
|
||||
|
||||
## 目录结构(初始化后规划)
|
||||
|
||||
```
|
||||
app/
|
||||
├── public/
|
||||
│ ├── manifest.json — PWA 配置
|
||||
│ └── icons/
|
||||
├── src/
|
||||
│ ├── components/ — GoalNode / ScoreRing / CheckIn 等
|
||||
│ ├── pages/
|
||||
│ ├── services/ — callAI() / storage 封装
|
||||
│ └── main.jsx
|
||||
└── package.json
|
||||
```
|
||||
|
||||
> 详见 [架构设计文档](../docs/03-架构设计/技术选型与数据结构.md)
|
||||
@@ -0,0 +1,75 @@
|
||||
# 📋 需求收集 — 用户访谈与原始需求
|
||||
|
||||
> 来源:[Notion 原始文档](https://www.notion.so/36a401dc38a6818eaaafcab80e853ad2)
|
||||
|
||||
## 需求背景
|
||||
|
||||
**前期用户:产品作者本人(自用工具)。** 后续验证有市场价值后再面向外部用户推广。
|
||||
|
||||
核心动机是**防止迷失方向**——在日常忙碌中不忘初心,能随时看到自己的目标并检查是否偏离。通过每日和每周的复盘节奏,持续记录感受与总结,并在偏离时及时纠正。
|
||||
|
||||
---
|
||||
|
||||
## 访谈记录
|
||||
|
||||
### 基本信息收集(2026-05-24)
|
||||
|
||||
| 问题 | 用户回答 |
|
||||
|------|---------|
|
||||
| 主要使用者? | 产品作者本人,前期纯自用 |
|
||||
| 复盘节奏? | **每日**复盘为主 + **每周**检查和复盘;偶尔会漏记 1-2 天,属正常情况 |
|
||||
| 每天检查目标的场景? | 晚上睡前,用于复盘当天 |
|
||||
| 复盘内容? | 今日对齐度评分(1-10 分)+ 记录感受和总结 + AI 点评 |
|
||||
| 每周复盘内容? | 回顾本周目标完成情况,总结规律,纠正偏离方向 |
|
||||
| AI 的角色? | 全部都要:分析冲突、主动追问、梳理模糊目标、点评反思 |
|
||||
| 数据存储要求? | 跨设备同步(需要账号/持久化) |
|
||||
| 偏离感知方式? | 每天打分 + 每周汇总,低分或连续低分触发 AI 提醒 |
|
||||
| 目标树的清晰程度? | 人生主目标很清晰,子目标需要拆解 |
|
||||
| 界面语言? | 中文 |
|
||||
| 视觉风格? | 可视化优先(图表、树形图、进度环) |
|
||||
| 开发推进方式? | 先做目标树 + 每日打分两个核心模块(MVP) |
|
||||
|
||||
---
|
||||
|
||||
## 原始需求描述(用户原话)
|
||||
|
||||
> 我现在需要编写个 app 用来检查自己人生目标,包含了主目标、年目标、月目标、周目标和天目标。人生目标是一棵树,最上面的是人生主要目标,枝干是 1 年期到 3 年期的重要目标,枝干下面的叶子是周目标或月目标,叶子上的脉络是每天的目标。
|
||||
>
|
||||
> 为了不会突然忘记或迷失自己的目标,需要记录下来,然后每天检查自己是否偏离,如果偏离了,就要纠正偏离的方向。
|
||||
>
|
||||
> 其中可以加入 AI 来整理和预测。
|
||||
|
||||
---
|
||||
|
||||
## 核心痛点
|
||||
|
||||
1. **迷失感** — 日常繁忙容易忘记长期目标
|
||||
2. **断层感** — 每天的行动和人生目标之间缺乏连接
|
||||
3. **模糊感** — 知道大方向,但子目标不够具体
|
||||
4. **无反馈** — 没有机制判断自己是否在正确轨道上
|
||||
5. **沉淀缺失** — 感受和总结散落在脑子里,没有系统记录,难以回顾规律
|
||||
|
||||
---
|
||||
|
||||
## 用户使用场景(User Story)
|
||||
|
||||
### 每日场景
|
||||
- 作为用户,我想在**每晚睡前**打开 App,回顾今天的行动是否推进了我的目标
|
||||
- 作为用户,我想给今天打一个 **1-10 分的对齐度评分**,写下今天的**感受和总结**
|
||||
- 作为用户,我想让 **AI 教练点评**我的复盘,指出偏离并给出纠正建议
|
||||
- 作为用户,如果某天**忘记打卡**(偶尔 1-2 天),App 不应报错或惩罚,历史记录有空白即可
|
||||
|
||||
### 每周场景
|
||||
- 作为用户,我想每周做一次**周复盘**,回顾本周目标完成情况和主要感受
|
||||
- 作为用户,我想在周复盘中看到**本周每日评分趋势**,发现规律
|
||||
- 作为用户,我想让 AI 基于本周数据,帮我**识别偏离模式**并给出下周调整建议
|
||||
|
||||
### 初始化场景(面向外部用户)
|
||||
- 作为新用户,我想在第一次打开时**选择一个模版**快速搭建目标树,而不是面对空白页不知所措
|
||||
- 作为新用户,我想根据自己的人生阶段(职业发展 / 创业 / 学习 / 健康 / 家庭)**选择对应的模版**,预填适合我的目标结构
|
||||
- 作为新用户,我也可以选择**空白开始**,自己从零搭建目标树
|
||||
|
||||
### 通用场景
|
||||
- 作为用户,我想随时看到**完整目标树**,从人生目标到周目标一目了然
|
||||
- 作为用户,我想随时向 AI 提问,**梳理和拆解**模糊的目标
|
||||
- 作为用户,我希望数据**跨设备同步**,手机和电脑都能访问
|
||||
@@ -0,0 +1,137 @@
|
||||
# 🔍 需求分析 — 功能优先级与边界
|
||||
|
||||
> 来源:[Notion 原始文档](https://www.notion.so/36a401dc38a681d08067c046a637acdd)
|
||||
|
||||
## 目标用户
|
||||
|
||||
| 阶段 | 用户 | 说明 |
|
||||
|------|------|------|
|
||||
| 前期(当前) | 产品作者本人 | 自用,快速验证功能价值 |
|
||||
| 中期 | 早期外部用户 | PWA 上线后逐步开放 |
|
||||
| 后期 | 付费会员 | 账号体系稳定后商业化 |
|
||||
|
||||
---
|
||||
|
||||
## 功能优先级矩阵
|
||||
|
||||
| 功能 | 用户价值 | 实现难度 | 优先级 |
|
||||
|------|---------|---------|-------|
|
||||
| 目标树管理(增删改查) | 极高 | 中 | P0 - MVP |
|
||||
| 每日评分 + 感受记录 | 极高 | 低 | P0 - MVP |
|
||||
| AI 教练点评 | 高 | 中 | P0 - MVP |
|
||||
| AI 对话教练 | 高 | 中 | P0 - MVP |
|
||||
| 历史复盘与趋势图 | 高 | 中 | P0 - MVP |
|
||||
| 漏打卡容错(历史空白不报错) | 高 | 低 | P0 - MVP |
|
||||
| **每周复盘** | 高 | 中 | P1 |
|
||||
| 跨设备数据同步 | 高 | 高 | P4(账号体系阶段) |
|
||||
| 目标完成进度 checkbox | 中 | 低 | P1 |
|
||||
| 目标提醒通知 | 中 | 高 | P2 |
|
||||
| 目标树导出分享 | 中 | 中 | P2 |
|
||||
| **初始化模版**(通用模版 + 人生方向模版) | 高 | 低 | P2(PWA 上线时) |
|
||||
| 精品付费模版库 | 中 | 低 | P5(会员阶段) |
|
||||
| 拖拽排序 | 低 | 高 | P6 |
|
||||
|
||||
---
|
||||
|
||||
## MVP 范围确认(P0)
|
||||
|
||||
### 模块一:目标树管理
|
||||
|
||||
**目标:** 用户能够建立和维护自己的人生目标树
|
||||
|
||||
**功能明细:**
|
||||
- 支持 5 个层级:人生 / 年度 / 月度 / 周 / 日
|
||||
- 点击文字内联编辑
|
||||
- 点击 + 按钮添加子目标(自动分配下一层级)
|
||||
- 点击 ✕ 删除节点(包括子树)
|
||||
- 展开 / 折叠子树
|
||||
- 层级配色区分:金色→橙色→蓝色→绿色→紫色
|
||||
|
||||
**验收标准:**
|
||||
- 用户能在 3 分钟内建立一棵包含 5+ 节点的目标树
|
||||
- 数据刷新后仍然保持
|
||||
|
||||
### 模块二:每日复盘
|
||||
|
||||
**目标:** 用户每晚进行目标对齐度复盘,记录感受与总结
|
||||
|
||||
**功能明细:**
|
||||
- 1-10 分评分环(可视化进度环)
|
||||
- 自由文字输入框:记录当天感受、总结、偏离情况
|
||||
- 提交后 AI 自动读取目标树 + 近期复盘记录 → 生成点评和纠偏建议
|
||||
- 每天只能提交一次(已提交状态展示)
|
||||
- 历史复盘列表(近 14 天)
|
||||
- **漏打卡容错:** 某天无记录显示为空白,不报错、不惩罚,不影响其他日期
|
||||
|
||||
**验收标准:**
|
||||
- 提交后 3 秒内返回 AI 点评
|
||||
- 评分 ≤4 显示红色,5-7 黄色,≥8 绿色
|
||||
- 连续漏记 2 天后,下次打开时 AI 主动提示
|
||||
|
||||
### 模块三:每周复盘(Phase 1)
|
||||
|
||||
**目标:** 用户每周做一次整体回顾,发现规律、纠正偏离
|
||||
|
||||
**功能明细:**
|
||||
- 显示本周每日评分趋势柱状图
|
||||
- 汇总本周感受和总结关键词
|
||||
- 提交本周总体反思文字
|
||||
- AI 基于本周数据生成:偏离模式分析 + 下周调整建议
|
||||
|
||||
**验收标准:**
|
||||
- 每周日(或用户手动触发)可进行周复盘
|
||||
- AI 周报建议与每日点评在语气和内容上有明显区别(宏观 vs 微观)
|
||||
|
||||
### 模块五:初始化模版(Phase 2)
|
||||
|
||||
**目标:** 外部用户首次使用时快速搭建目标树,降低启动门槛
|
||||
|
||||
**触发时机:** 首次打开 App 且目标树为空时,进入模版选择页
|
||||
|
||||
**模版类型:**
|
||||
|
||||
| 模版 | 预填重点 | 适合人群 |
|
||||
|------|---------|---------|
|
||||
| 🗂️ 通用模版 | 纯结构 + 占位符,用户自填内容 | 所有人,默认推荐 |
|
||||
| 🚀 职业发展 | 职位目标、技能成长、收入提升 | 上班族、想晋升/转型者 |
|
||||
| 💼 创业/副业 | 产品目标、用户规模、收入里程碑 | 创业者、斜杠青年 |
|
||||
| 📚 学习提升 | 技能掌握、证书考取、输出成果 | 学生、自学者 |
|
||||
| 💪 健康生活 | 运动习惯、饮食、睡眠、心理状态 | 关注身心健康者 |
|
||||
| 👨👩👧 家庭生活 | 家庭关系、子女教育、家庭财务 | 已婚有子女者 |
|
||||
| 🌱 自由探索 | 最轻结构,留白最多 | 目标还不清晰者 |
|
||||
|
||||
**初始化流程:**
|
||||
```
|
||||
首次打开(目标树为空)
|
||||
↓
|
||||
欢迎页:选择启动方式
|
||||
├── 从模版开始 → 选择模版 → 预览内容 → 一键载入 → 进入编辑
|
||||
└── 空白开始 → 直接进入空目标树
|
||||
```
|
||||
|
||||
**验收标准:**
|
||||
- 用户从选择模版到完成初始化不超过 1 分钟
|
||||
- 载入模版后可自由编辑所有内容,模版只是起点
|
||||
|
||||
> 💡 **付费扩展:** Phase 5 会员阶段提供精品行业模版库(更细分、更专业的模版),作为付费内容之一。
|
||||
|
||||
### 模块四:AI 对话教练
|
||||
|
||||
**目标:** 用户能随时与 AI 就目标进行对话
|
||||
|
||||
**功能明细:**
|
||||
- AI 上下文包含:完整目标树 + 近 7 天复盘记录 + 最近一次周复盘
|
||||
- 支持任务:拆解目标、分析冲突、预测偏离风险
|
||||
- 对话历史在单次会话内保持
|
||||
|
||||
---
|
||||
|
||||
## 不在范围内(MVP)
|
||||
|
||||
- 多用户 / 团队功能
|
||||
- 账号体系(MVP 阶段免登录,Phase 4+ 引入)
|
||||
- 外部日历同步
|
||||
- 目标分享 / 导出
|
||||
- 移动端原生 App(Phase 3 Capacitor 阶段)
|
||||
- 每周复盘模块(Phase 1 引入,MVP 仅做每日)
|
||||
- 初始化模版(Phase 2 PWA 上线时引入,自用阶段无需)
|
||||
@@ -0,0 +1,207 @@
|
||||
# 🏗️ 架构设计 — 技术选型与数据结构
|
||||
|
||||
> 来源:[Notion 原始文档](https://www.notion.so/36a401dc38a6813c88b1f89d0df5b12b)
|
||||
|
||||
## 技术选型
|
||||
|
||||
| 维度 | 选择 | 理由 |
|
||||
|------|------|------|
|
||||
| 框架 | React (JSX) | 组件化、状态管理成熟,适合复杂交互 |
|
||||
| 样式 | Inline CSS + CSS Variables | 无需构建工具,展开即用 |
|
||||
| 存储 | Artifact Storage API | 跨设备持久化,免登录 |
|
||||
| 备用存储 | localStorage | 离线备用,与 Storage API 双写 |
|
||||
| AI 接口 | Anthropic API /v1/messages | 直接调用,无需后端 |
|
||||
| AI 模型 | claude-sonnet-4-20250514 | 性价最优,响应快 |
|
||||
| 字体 | Noto Serif SC | 中文手写书感,与"人生"主题匹配 |
|
||||
|
||||
---
|
||||
|
||||
## 数据结构设计
|
||||
|
||||
### 目标树 — `GoalTree`
|
||||
|
||||
```javascript
|
||||
{
|
||||
root: {
|
||||
id: "root",
|
||||
text: "我的人生主目标",
|
||||
level: "life", // life | year | month | week | day
|
||||
children: ["id1", "id2"],
|
||||
expanded: true
|
||||
},
|
||||
nodes: {
|
||||
"id1": {
|
||||
id: "id1",
|
||||
text: "年度目标 A",
|
||||
level: "year",
|
||||
children: ["id3"],
|
||||
expanded: true
|
||||
}
|
||||
// ...
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**设计决策:**
|
||||
- 使用 flat 结构(nodes 字典)而非嵌套对象,方便增删改
|
||||
- children 存 id 数组,保持顺序
|
||||
- level 自动推断:父节点 level 的下一级
|
||||
|
||||
### 每日复盘 — `Checkins`
|
||||
|
||||
```javascript
|
||||
{
|
||||
"2026-05-24": {
|
||||
score: 8,
|
||||
note: "今天完成了...",
|
||||
aiReply: "AI 点评内容..."
|
||||
}
|
||||
// 以日期为 key
|
||||
}
|
||||
```
|
||||
|
||||
**设计决策:**
|
||||
- 以日期字符串为 key,天然去重
|
||||
- AI 点评随复盘存储,无需单独请求
|
||||
|
||||
---
|
||||
|
||||
## 模块划分
|
||||
|
||||
```
|
||||
App
|
||||
├── GoalNode — 目标树节点(递归组件)
|
||||
├── ScoreRing — SVG 圆形评分环
|
||||
├── CheckIn — 每日复盘输入表单
|
||||
├── History — 历史复盘列表 + 柱状图
|
||||
├── Advisor — AI 对话界面
|
||||
└── callAI() — Anthropic API 封装函数
|
||||
```
|
||||
|
||||
## 数据流
|
||||
|
||||
```
|
||||
用户输入
|
||||
↓
|
||||
React State (useState)
|
||||
↓
|
||||
localStorage (备用)
|
||||
↓↑
|
||||
Artifact Storage API (主存储,跨设备)
|
||||
```
|
||||
|
||||
## AI 调用流
|
||||
|
||||
```
|
||||
用户提交复盘
|
||||
↓
|
||||
收集目标树全文 + 近期复盘记录
|
||||
↓
|
||||
构建 System Prompt (教练角色 + 目标上下文)
|
||||
↓
|
||||
Anthropic /v1/messages
|
||||
↓
|
||||
返回点评文字 → 显示 + 存储
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 性能考虑
|
||||
|
||||
- AI 请求只在用户主动提交时触发,不自动定时
|
||||
- 目标树数据小,本地状态即可实时更新,无需节流
|
||||
- Storage API 异步写入,不阻塞 UI
|
||||
|
||||
---
|
||||
|
||||
## 移动端打包策略
|
||||
|
||||
采用**两阶段**路线,先低成本验证市场,再投入打包成本。
|
||||
|
||||
### 阶段一:PWA(需求验证)
|
||||
|
||||
> 目标:以最小改动让用户在手机上"安装"并使用,验证产品市场价值。
|
||||
|
||||
| 项目 | 说明 |
|
||||
|------|------|
|
||||
| 方式 | 浏览器打开后「添加到主屏幕」 |
|
||||
| 改动 | 加 `manifest.json` + Service Worker 即可 |
|
||||
| 存储 | 沿用 localStorage(Artifact Storage API 不适用独立部署) |
|
||||
| 限制 | iOS Safari 对 PWA 支持有限;无法上架应用商店 |
|
||||
| 验证指标 | 用户留存、复盘频率、AI 功能使用率 |
|
||||
|
||||
### 阶段二:Capacitor 原生打包(正式发布)
|
||||
|
||||
> 触发条件:PWA 阶段验证产品有市场价值后启动。
|
||||
|
||||
| 项目 | 说明 |
|
||||
|------|------|
|
||||
| 工具 | Capacitor(@capacitor/android + @capacitor/ios) |
|
||||
| 构建工具 | 需引入 Vite(当前无构建工具) |
|
||||
| 存储替换 | Artifact Storage API → `@capacitor-community/sqlite` 或 localStorage |
|
||||
| Android | Android Studio 打包 APK/AAB,可上架 Google Play |
|
||||
| iOS | Xcode(需 Mac)打包 IPA,需 Apple 开发者账号($99/年) |
|
||||
|
||||
**存储迁移注意:** 当前 Artifact Storage API 是 Claude 平台专属,独立打包后必须替换,localStorage 备用数据可作为迁移来源。
|
||||
|
||||
---
|
||||
|
||||
## 账号体系与云同步策略
|
||||
|
||||
### 核心决策
|
||||
|
||||
产品分三个阶段演进:
|
||||
|
||||
| 阶段 | 登录 | 存储 | 目标 |
|
||||
|------|------|------|------|
|
||||
| **① 开发调试期** | 免登录 | 本地 | 稳定核心功能,快速迭代 |
|
||||
| **② 用户增长期** | 可选注册登录 | 本地(默认)/ 服务端(登录后) | 沉淀用户数据,建立留存 |
|
||||
| **③ 商业化期** | 登录必要 | 服务端 | 开展会员收费功能 |
|
||||
|
||||
> 设计原则:先让用户体验到价值,再引导注册沉淀数据,最后以数据和高级功能驱动付费。
|
||||
|
||||
### 存储模式对比
|
||||
|
||||
| 模式 | 触发条件 | 存储位置 | 跨设备同步 |
|
||||
|------|---------|---------|-----------|
|
||||
| 游客模式(默认) | 打开即用 | 本地 SQLite / localStorage | ❌ |
|
||||
| 登录模式(可选) | 用户主动注册 / 登录 | 服务端 DB + 本地缓存 | ✅ |
|
||||
|
||||
### 数据迁移策略(游客 → 登录)
|
||||
|
||||
用户注册时,需处理本地已有数据的合并:
|
||||
|
||||
```
|
||||
用户首次登录
|
||||
├── 服务端无数据 → 直接上传本地数据 ✅ 无冲突
|
||||
├── 服务端有数据 → 提示用户选择合并策略 ⚠️ 需 UI 设计
|
||||
│ ├── 以服务端为主(覆盖本地)
|
||||
│ ├── 以本地为主(覆盖服务端)
|
||||
│ └── 按节点时间戳合并(推荐)
|
||||
└── 已登录换设备 → 拉取服务端数据,正常同步 ✅ 无冲突
|
||||
```
|
||||
|
||||
### AI 调用迁移(引入后端时)
|
||||
|
||||
当前 AI 调用在**前端直接请求 Anthropic API**,API Key 暴露在客户端。引入后端后需同步迁移:
|
||||
|
||||
```
|
||||
当前(无后端):
|
||||
客户端 ──→ Anthropic API ⚠️ API Key 暴露
|
||||
|
||||
引入后端后:
|
||||
客户端 ──→ 自有服务端 ──→ Anthropic API ✅ Key 安全,可做用量控制
|
||||
```
|
||||
|
||||
**后端引入时机:** 与账号体系同步实现,无需提前单独做。
|
||||
|
||||
### 架构演进路线
|
||||
|
||||
```
|
||||
Phase 2 PWA Phase 3 Capacitor Phase 4+ 账号体系
|
||||
──────────── ───────────────── ─────────────────
|
||||
localStorage → 本地 SQLite → 本地 SQLite(游客默认)
|
||||
↕ 可选登录同步
|
||||
服务端 DB + 账号 API
|
||||
AI 调用走服务端代理
|
||||
```
|
||||
@@ -0,0 +1,111 @@
|
||||
# 🎨 UI 设计 — 视觉规范与交互流程
|
||||
|
||||
> 来源:[Notion 原始文档](https://www.notion.so/36a401dc38a681e2955befd8a352ff48)
|
||||
|
||||
## 设计理念
|
||||
|
||||
**主题:** 深夜导航仪 — 让用户每晚打开就有"回到指挥中心"的仪式感
|
||||
|
||||
**设计关键词:**
|
||||
- 深色底 (`#0a0e1a`),星空感
|
||||
- 温暖金色 (`#f5c542`) 为主强调色
|
||||
- 可视化优先:SVG 圆形进度环、层级树形图、柱状趋势图
|
||||
- 中文宋体(Noto Serif SC)增强人文感
|
||||
|
||||
---
|
||||
|
||||
## 颜色规范
|
||||
|
||||
| 用途 | 颜色 | Hex |
|
||||
|------|------|-----|
|
||||
| 主强调色 / 人生目标层 | 金色 | `#f5c542` |
|
||||
| 年度目标层 | 橙色 | `#f0884a` |
|
||||
| 月度目标层 | 蓝色 | `#4aabf0` |
|
||||
| 周目标层 | 绿色 | `#7dd87a` |
|
||||
| 日目标层 | 紫色 | `#c47af5` |
|
||||
| 高分指示 | 绿色 | `#7dd87a` |
|
||||
| 中分指示 | 黄色 | `#f5c542` |
|
||||
| 低分指示 | 红色 | `#f04a4a` |
|
||||
| 页面背景 | 深山蓝黑 | `#0a0e1a` |
|
||||
| 卡片背景 | 半透明白 | `rgba(255,255,255,0.04)` |
|
||||
| 边框 | 深蓝灯光 | `#1e2535` |
|
||||
|
||||
---
|
||||
|
||||
## 页面布局
|
||||
|
||||
### Header
|
||||
- 左:项目标题"人生罗盘"+ 当日日期
|
||||
- 右:今日评分小圆环(未复盘时显示虚线圈)
|
||||
|
||||
### 底部 Tab 导航(固定 4 项)
|
||||
|
||||
```
|
||||
🌳 目标树 | ✦ 每日复盘 | 📊 历史 | ◈ AI 教练
|
||||
```
|
||||
|
||||
### 内容区域各 Tab 布局
|
||||
|
||||
#### 🌳 目标树
|
||||
|
||||
```
|
||||
[提示文字] 点击文字编辑 · 点击 + 添加子目标
|
||||
[根节点] 人生—金色左边框
|
||||
└ [年度] 橙色左边框
|
||||
└ [月度] 蓝色左边框
|
||||
└ [周] 绿色左边框
|
||||
└ [日] 紫色左边框
|
||||
[层级说明色色块]
|
||||
```
|
||||
|
||||
#### ✦ 每日复盘
|
||||
|
||||
```
|
||||
[ScoreRing 大圈 90px] [评分按钮 1-10]
|
||||
|
||||
[文字反思输入框 4行]
|
||||
|
||||
[提交复盘 · AI 点评] 按钮
|
||||
|
||||
[金色边框卡片] AI 教练点评内容
|
||||
```
|
||||
|
||||
#### 📊 历史
|
||||
|
||||
```
|
||||
[近期评分趋势柱状图]
|
||||
|
||||
[复盘卡片列表]
|
||||
[ScoreRing 52px] [日期 + 反思文字 + AI 摘要]
|
||||
```
|
||||
|
||||
#### ◈ AI 教练
|
||||
|
||||
```
|
||||
[对话气泡流]
|
||||
右对齐:用户消息(金色渐变)
|
||||
左对齐:AI 回复(半透明卡片)
|
||||
|
||||
[输入框] + [→ 发送] 按钮
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 交互状态设计
|
||||
|
||||
| 状态 | 表现 |
|
||||
|------|------|
|
||||
| 空默认 | 虚线圈 + 灰色"今日" |
|
||||
| 已评分未提交 | 圆环点亮 + 评分按钮选中状态 |
|
||||
| 提交中 | 按钮显示"AI 分析中…" |
|
||||
| 已完成 | AI 点评卡片展示 + "已保存"标识 |
|
||||
| 编辑目标 | 节点文字变为 input,回车或失焦保存 |
|
||||
| 删除确认 | 直接删除(MVP 简化,后续添加 confirm) |
|
||||
|
||||
---
|
||||
|
||||
## 响应式设计
|
||||
|
||||
- 最大内容宽度:600px(在手机和桌面均可用)
|
||||
- 评分按钮在小屏时自动换行(flex-wrap)
|
||||
- 导航 Tab 固定底部(Header)
|
||||
@@ -0,0 +1,128 @@
|
||||
# 🚀 开发计划 — MVP 范围与迭代路线图
|
||||
|
||||
> 来源:[Notion 原始文档](https://www.notion.so/36a401dc38a681c78158fa7cb91f2840)
|
||||
|
||||
## MVP 范围(当前阶段)
|
||||
|
||||
### 包含功能
|
||||
|
||||
- 目标树管理(增删改、层级展示、内联编辑)
|
||||
- 每日 1-10 分复盘 + 文字反思
|
||||
- AI 教练自动点评(基于目标树 + 历史复盘)
|
||||
- AI 对话教练(随时提问)
|
||||
- 历史复盘列表 + 评分趋势图
|
||||
- Artifact Storage 持久化
|
||||
|
||||
### 不包含
|
||||
|
||||
- 账号体系(MVP 阶段免登录;Phase 4+ 作为可选功能引入)
|
||||
- 目标提醒通知
|
||||
- 导出分享
|
||||
|
||||
---
|
||||
|
||||
## 迭代路线图
|
||||
|
||||
### Phase 0 — MVP(已完成 ✅)
|
||||
|
||||
| 功能 | 状态 |
|
||||
|------|------|
|
||||
| 目标树增删改查 | ✅ 已完成 |
|
||||
| 5 层级树形结构 | ✅ 已完成 |
|
||||
| 每日 1-10 分评分环 | ✅ 已完成 |
|
||||
| AI 复盘点评 | ✅ 已完成 |
|
||||
| AI 对话教练 | ✅ 已完成 |
|
||||
| 历史复盘 + 柱状图 | ✅ 已完成 |
|
||||
| Artifact Storage 持久化 | ✅ 已完成 |
|
||||
| 金色深色视觉风格 | ✅ 已完成 |
|
||||
|
||||
### Phase 1 — 提升体验
|
||||
|
||||
| 功能 | 状态 | 优先级 |
|
||||
|------|------|-------|
|
||||
| **每周复盘模块**(本周趋势 + 总结 + AI 周报建议) | 待开发 | P1 |
|
||||
| 目标完成度 checkbox | 待开发 | P1 |
|
||||
| 目标提要展示(hover) | 待开发 | P1 |
|
||||
| 每周目标自动归档 | 待开发 | P1 |
|
||||
| AI 主动提示(连续漏记 2 天 / 连续低分) | 待开发 | P1 |
|
||||
|
||||
### Phase 2 — PWA 验证(跨平台第一步)
|
||||
|
||||
> 策略:先以 PWA 形式让用户在手机上使用,验证产品市场价值,再决定是否投入原生打包。
|
||||
|
||||
| 功能 | 状态 | 优先级 |
|
||||
|------|------|-------|
|
||||
| 手机端响应式布局优化 | 待开发 | P2 |
|
||||
| PWA manifest(可添加到主屏幕) | 待开发 | P2 |
|
||||
| Service Worker 离线缓存 | 待开发 | P2 |
|
||||
| **初始化模版**(通用模版 + 6 类人生方向模版) | 待开发 | P2 |
|
||||
| 目标树导出图片 | 待开发 | P2 |
|
||||
| 目标完成年度总结 | 待开发 | P2 |
|
||||
|
||||
**验证指标:** 用户留存率、复盘频率、AI 功能使用率 — 达标后进入 Phase 3。
|
||||
|
||||
### Phase 3 — Capacitor 原生打包(市场验证通过后)
|
||||
|
||||
> 触发条件:Phase 2 验证产品有市场价值。替换 Artifact Storage API → SQLite,引入 Vite 构建工具。
|
||||
|
||||
| 功能 | 状态 | 优先级 |
|
||||
|------|------|-------|
|
||||
| 引入 Vite 构建工具 | 待开发 | P3 |
|
||||
| 存储迁移(localStorage → SQLite) | 待开发 | P3 |
|
||||
| Capacitor 接入 + Android APK 打包 | 待开发 | P3 |
|
||||
| iOS IPA 打包(需 Mac + 开发者账号) | 待开发 | P3 |
|
||||
| 上架 Google Play / App Store | 待开发 | P3 |
|
||||
|
||||
### Phase 4 — 账号体系 + 云同步(功能稳定后)
|
||||
|
||||
> 触发条件:核心功能稳定、有稳定用户基础后引入。账号是后续会员收费的前置条件。
|
||||
|
||||
| 功能 | 状态 | 优先级 |
|
||||
|------|------|-------|
|
||||
| 用户注册 / 登录(邮箱 或 Google/Apple 一键登录) | 待开发 | P4 |
|
||||
| 服务端数据存储与云同步 | 待开发 | P4 |
|
||||
| 游客数据迁移到账号(首次登录合并) | 待开发 | P4 |
|
||||
| AI 调用迁移至服务端(保护 API Key) | 待开发 | P4 |
|
||||
| 多设备数据同步 | 待开发 | P4 |
|
||||
|
||||
### Phase 5 — 会员收费
|
||||
|
||||
> 触发条件:有登录用户基础,账号体系稳定后启动。
|
||||
|
||||
| 功能 | 状态 | 优先级 |
|
||||
|------|------|-------|
|
||||
| 免费 / 付费功能分层设计 | 待开发 | P5 |
|
||||
| 会员订阅(月付 / 年付) | 待开发 | P5 |
|
||||
| 付费功能(更多 AI 对话次数、高级分析报告、**精品行业模版库**) | 待开发 | P5 |
|
||||
| 支付接入(支付宝 / 微信支付 / Stripe) | 待开发 | P5 |
|
||||
|
||||
### Phase 6 — 社交 / 高级
|
||||
|
||||
| 功能 | 状态 | 优先级 |
|
||||
|------|------|-------|
|
||||
| 目标拖拽排序 | 待开发 | P6 |
|
||||
| 目标分享卡片 | 待开发 | P6 |
|
||||
| 多用户 / 好友查看 | 待开发 | P6 |
|
||||
|
||||
---
|
||||
|
||||
## 里程碑
|
||||
|
||||
| 时间 | 里程碑 |
|
||||
|------|-------|
|
||||
| 2026-05-24 | MVP 完成,包含目标树 + 复盘 + AI 教练 |
|
||||
| Phase 1 | 完善体验:checkbox、主动提示、目标孵化 |
|
||||
| Phase 2 | PWA 上线,验证市场需求与用户留存 |
|
||||
| Phase 3 | 市场验证通过,Capacitor 打包 APK,上架应用商店 |
|
||||
| Phase 4 | 引入账号体系 + 云同步,沉淀用户数据,为收费做准备 |
|
||||
| Phase 5 | 开启会员订阅,功能分层,接入支付 |
|
||||
| Phase 6 | 社交分享功能 |
|
||||
|
||||
---
|
||||
|
||||
## 当前已交付 Artifact
|
||||
|
||||
- 文件:`life-goals.jsx`
|
||||
- 框架:React JSX
|
||||
- 存储:Artifact Storage API + localStorage 双备份
|
||||
- AI:Anthropic claude-sonnet-4-20250514
|
||||
@@ -0,0 +1,47 @@
|
||||
# ✅ 测试计划 — 验收标准与测试用例
|
||||
|
||||
> 来源:[Notion 原始文档](https://www.notion.so/36a401dc38a68195a725d1a9eb00ebe4)
|
||||
|
||||
## 验收标准
|
||||
|
||||
### 目标树模块
|
||||
|
||||
| # | 测试用例 | 预期结果 |
|
||||
|---|---------|---------|
|
||||
| 1 | 创建根节点并编辑文字 | 文字即时保存 |
|
||||
| 2 | 点击"+"添加子目标 | 层级自动推断为下一级 |
|
||||
| 3 | 删除带子节点的年度目标 | 子树一并删除 |
|
||||
| 4 | 折叠年度目标子树 | 子节点隐藏 |
|
||||
| 5 | 层级颜色是否匹配规范 | 金色=人生,橙=年,蓝=月,绿=周,紫=日 |
|
||||
| 6 | 刷新页面后树结构依然存在 | Storage 持久化有效 |
|
||||
| 7 | 3 分钟内建立 5+ 节点的树 | 流畅度测试 |
|
||||
|
||||
### 每日复盘模块
|
||||
|
||||
| # | 测试用例 | 预期结果 |
|
||||
|---|---------|---------|
|
||||
| 1 | 点击评分 8,输入反思,提交 | 3 秒内返回 AI 点评 |
|
||||
| 2 | 评分 3 分的颜色 | 圆环显示红色 |
|
||||
| 3 | 评分 6 分的颜色 | 圆环显示黄色 |
|
||||
| 4 | 评分 9 分的颜色 | 圆环显示绿色 |
|
||||
| 5 | 已提交时再次进入复盘 Tab | 显示已保存内容,无法重复提交 |
|
||||
| 6 | 历史 Tab 显示连续 7 天记录 | 柱状图正确渲染 |
|
||||
|
||||
### AI 教练模块
|
||||
|
||||
| # | 测试用例 | 预期结果 |
|
||||
|---|---------|---------|
|
||||
| 1 | 问"我的目标之间有没有冲突?" | AI 应引用目标树内容作答 |
|
||||
| 2 | 问"帮我把月目标拆解成具体行动" | AI 返回可执行行动清单 |
|
||||
| 3 | 多轮对话后 AI 能否记住上文 | 同一会话内上下文连贯 |
|
||||
|
||||
---
|
||||
|
||||
## AI 点评质量标准
|
||||
|
||||
AI 点评需要同时达到:
|
||||
|
||||
- ✅ 指出今天行动与哪个目标最对齐 / 最偏离
|
||||
- ✅ 给出明天可立即执行的建议(1 个具体行动)
|
||||
- ✅ 不超过 150 字
|
||||
- ✅ 语气真诚干练,不泛泛鼓励
|
||||
@@ -0,0 +1,67 @@
|
||||
# 📊 项目进度总览
|
||||
|
||||
> 最后更新:2026-05-24
|
||||
> 当前阶段:**Phase 1 待开发**
|
||||
|
||||
---
|
||||
|
||||
## 功能状态一览
|
||||
|
||||
| 功能 | 阶段 | 状态 | 备注 |
|
||||
|------|------|------|------|
|
||||
| 目标树增删改查 | Phase 0 | ✅ 完成 | |
|
||||
| 5 层级树形结构 | Phase 0 | ✅ 完成 | |
|
||||
| 每日评分环(1-10 分) | Phase 0 | ✅ 完成 | |
|
||||
| 每日感受 + 文字记录 | Phase 0 | ✅ 完成 | |
|
||||
| AI 复盘点评 | Phase 0 | ✅ 完成 | |
|
||||
| AI 对话教练 | Phase 0 | ✅ 完成 | |
|
||||
| 历史复盘 + 柱状图 | Phase 0 | ✅ 完成 | |
|
||||
| 漏打卡容错 | Phase 0 | ✅ 完成 | 空白显示,不报错 |
|
||||
| 金色深色视觉风格 | Phase 0 | ✅ 完成 | |
|
||||
| **每周复盘模块** | Phase 1 | 📋 待开发 | 本周趋势 + AI 周报 |
|
||||
| 目标完成度 checkbox | Phase 1 | 📋 待开发 | |
|
||||
| 目标提要展示(hover) | Phase 1 | 📋 待开发 | |
|
||||
| AI 主动提示(连续漏记/低分) | Phase 1 | 📋 待开发 | |
|
||||
| 手机端响应式优化 | Phase 2 | 📋 待开发 | |
|
||||
| PWA(可添加到主屏幕) | Phase 2 | 📋 待开发 | |
|
||||
| Service Worker 离线缓存 | Phase 2 | 📋 待开发 | |
|
||||
| 初始化模版(通用 + 6 类方向) | Phase 2 | 📋 待开发 | 外部用户上线时 |
|
||||
| 目标树导出图片 | Phase 2 | 📋 待开发 | |
|
||||
| Vite 构建工具引入 | Phase 3 | 📋 待开发 | |
|
||||
| 存储迁移(localStorage → SQLite) | Phase 3 | 📋 待开发 | |
|
||||
| Capacitor Android APK | Phase 3 | 📋 待开发 | |
|
||||
| Capacitor iOS IPA | Phase 3 | 📋 待开发 | 需 Mac + 开发者账号 |
|
||||
| 账号注册 / 登录 | Phase 4 | 📋 待开发 | 功能稳定后启动 |
|
||||
| 云同步 + 多设备 | Phase 4 | 📋 待开发 | |
|
||||
| AI 调用迁移至服务端 | Phase 4 | 📋 待开发 | 保护 API Key |
|
||||
| 会员订阅(月付 / 年付) | Phase 5 | 📋 待开发 | 有用户基础后 |
|
||||
| 支付接入 | Phase 5 | 📋 待开发 | |
|
||||
| 精品行业模版库(付费) | Phase 5 | 📋 待开发 | |
|
||||
| 目标分享卡片 | Phase 6 | 📋 待开发 | |
|
||||
| 多用户 / 好友查看 | Phase 6 | 📋 待开发 | |
|
||||
|
||||
---
|
||||
|
||||
## 状态标签说明
|
||||
|
||||
| 标签 | 含义 |
|
||||
|------|------|
|
||||
| ✅ 完成 | 已开发并验证 |
|
||||
| 🚧 开发中 | 当前正在开发 |
|
||||
| 📋 待开发 | 已规划,未启动 |
|
||||
| ⏸️ 暂缓 | 暂时搁置 |
|
||||
| ❌ 取消 | 已决定不做 |
|
||||
|
||||
---
|
||||
|
||||
## 里程碑
|
||||
|
||||
| 里程碑 | 目标 | 状态 |
|
||||
|--------|------|------|
|
||||
| Phase 0 MVP | 目标树 + 每日复盘 + AI 教练 | ✅ 2026-05-24 完成 |
|
||||
| Phase 1 | 每周复盘 + 体验提升 | 📋 待开发 |
|
||||
| Phase 2 | PWA 上线,验证市场需求 | 📋 待开发 |
|
||||
| Phase 3 | Capacitor 打包 APK,上架应用商店 | 📋 待开发 |
|
||||
| Phase 4 | 账号体系 + 云同步 | 📋 待开发 |
|
||||
| Phase 5 | 会员订阅,接入支付 | 📋 待开发 |
|
||||
| Phase 6 | 社交分享功能 | 📋 待开发 |
|
||||
@@ -0,0 +1,37 @@
|
||||
# 🧭 人生目标 App — 项目文档
|
||||
|
||||
> 一款帮助用户管理人生目标树、每日复盘并通过 AI 教练保持方向感的个人成长应用。
|
||||
|
||||
## 文档目录
|
||||
|
||||
### 快速入口
|
||||
| 文档 | 用途 |
|
||||
|------|------|
|
||||
| [PROGRESS.md](./PROGRESS.md) | 📊 所有功能当前状态,**最常看** |
|
||||
| [decisions/](./decisions/) | 📒 重要决策的背景和原因(ADR) |
|
||||
|
||||
### 完整文档
|
||||
| # | 阶段 | 文档 |
|
||||
|---|------|------|
|
||||
| 01 | 需求收集 | [用户访谈与原始需求](./01-需求收集/用户访谈与原始需求.md) |
|
||||
| 02 | 需求分析 | [功能优先级与边界](./02-需求分析/功能优先级与边界.md) |
|
||||
| 03 | 架构设计 | [技术选型与数据结构](./03-架构设计/技术选型与数据结构.md) |
|
||||
| 04 | UI 设计 | [视觉规范与交互流程](./04-UI设计/视觉规范与交互流程.md) |
|
||||
| 05 | 开发计划 | [MVP 范围与迭代路线图](./05-开发计划/MVP范围与迭代路线图.md) |
|
||||
| 06 | 测试计划 | [验收标准与测试用例](./06-测试计划/验收标准与测试用例.md) |
|
||||
|
||||
### 决策记录(ADR)
|
||||
| 编号 | 决策 |
|
||||
|------|------|
|
||||
| [ADR-001](./decisions/001-monorepo单仓库结构.md) | Monorepo 单仓库管理 app / server / docs |
|
||||
| [ADR-002](./decisions/002-PWA优先验证市场.md) | PWA 优先验证市场,再做 Capacitor 原生打包 |
|
||||
| [ADR-003](./decisions/003-本地优先免登录.md) | 本地优先存储,账号为可选功能 |
|
||||
| [ADR-004](./decisions/004-初始化模版系统.md) | 提供初始化模版降低新用户门槛 |
|
||||
|
||||
---
|
||||
|
||||
**创建日期:** 2026-05-24
|
||||
**当前阶段:** MVP 开发完成
|
||||
**技术栈:** React · Claude AI API · Artifact Storage
|
||||
|
||||
> 来源:[Notion 原始文档](https://www.notion.so/36a401dc38a681f3975ccebf80a49d27)
|
||||
@@ -0,0 +1,33 @@
|
||||
# ADR-001 采用 Monorepo 单仓库管理 app / server / docs
|
||||
|
||||
**状态:** 已采纳 ✅
|
||||
**日期:** 2026-05-24
|
||||
|
||||
---
|
||||
|
||||
## 背景
|
||||
|
||||
项目包含前端(app)、后端(server,Phase 4 启动)、文档(docs)三部分,需要决定是用一个 git 仓库还是多个仓库管理。
|
||||
|
||||
## 决策
|
||||
|
||||
所有代码和文档放在同一个 git 仓库,采用 monorepo 结构:
|
||||
|
||||
```
|
||||
life_goals/
|
||||
├── app/
|
||||
├── server/
|
||||
└── docs/
|
||||
```
|
||||
|
||||
## 原因
|
||||
|
||||
- **小团队 / 个人项目**:管理一个仓库比同步多个仓库负担小得多
|
||||
- **前后端强耦合**:同一个功能(如账号体系)需要同时改 app 和 server,monorepo 可以一个 commit 完成
|
||||
- **AI 协作友好**:AI 在同一仓库内能同时看到代码和文档,理解更准确
|
||||
- **文档即代码**:需求变更和代码变更在同一条时间线,不会出现文档滞后
|
||||
|
||||
## 影响
|
||||
|
||||
- `server/` 目前为占位目录,Phase 4 再填充内容
|
||||
- 如未来 server 需要被多个产品复用,再考虑拆出独立仓库
|
||||
@@ -0,0 +1,27 @@
|
||||
# ADR-002 PWA 优先验证市场,再做 Capacitor 原生打包
|
||||
|
||||
**状态:** 已采纳 ✅
|
||||
**日期:** 2026-05-24
|
||||
|
||||
---
|
||||
|
||||
## 背景
|
||||
|
||||
App 需要在手机上使用,面临两个选择:直接打包成原生 App,或先做 PWA 验证需求。
|
||||
|
||||
## 决策
|
||||
|
||||
**Phase 2 先做 PWA**,让用户在手机浏览器「添加到主屏幕」使用。确认产品有市场价值后,**Phase 3 再用 Capacitor 打包** Android APK / iOS IPA。
|
||||
|
||||
## 原因
|
||||
|
||||
- PWA 只需加 `manifest.json` + Service Worker,改动极小
|
||||
- Capacitor 打包需要引入 Vite、替换存储方案、配置 Android Studio / Xcode,成本高
|
||||
- 先用 PWA 以最低成本验证:用户留存率、复盘频率、AI 功能使用率
|
||||
- 验证有价值后再投入打包成本,避免过早优化
|
||||
|
||||
## 影响
|
||||
|
||||
- Artifact Storage API 是 Claude 平台专属,PWA 独立部署后需替换为 localStorage
|
||||
- iOS Safari 对 PWA 支持有限,是已知限制,PWA 阶段接受
|
||||
- Capacitor 打包触发条件:Phase 2 验证指标达标
|
||||
@@ -0,0 +1,33 @@
|
||||
# ADR-003 本地优先存储,账号为可选功能
|
||||
|
||||
**状态:** 已采纳 ✅
|
||||
**日期:** 2026-05-24
|
||||
|
||||
---
|
||||
|
||||
## 背景
|
||||
|
||||
App 需要数据持久化,需要决定是否强制登录,以及何时引入账号体系。
|
||||
|
||||
## 决策
|
||||
|
||||
采用三阶段演进:
|
||||
|
||||
| 阶段 | 登录 | 存储 |
|
||||
|------|------|------|
|
||||
| 开发调试期(当前) | 免登录 | 本地 |
|
||||
| 用户增长期(Phase 2-3) | 可选注册 | 本地(默认)/ 服务端(登录后) |
|
||||
| 商业化期(Phase 4+) | 登录必要 | 服务端 |
|
||||
|
||||
## 原因
|
||||
|
||||
- **降低启动门槛**:打开即用,无需注册,用户转化率更高
|
||||
- **先验证价值**:让用户先体验到产品价值,再引导注册,信任成本低
|
||||
- **账号是收费前置**:Phase 5 会员收费需要账号体系,Phase 4 作为前置建设
|
||||
- **参考案例**:Obsidian、Bear 等 Local-First 应用均采用此模式
|
||||
|
||||
## 影响
|
||||
|
||||
- 游客首次登录时需处理本地数据迁移(按时间戳合并为推荐策略)
|
||||
- 引入后端时,Anthropic API 调用需同步迁移至服务端(保护 API Key)
|
||||
- 换设备 / 清缓存会丢失游客数据,这是已知限制,通过引导注册解决
|
||||
@@ -0,0 +1,33 @@
|
||||
# ADR-004 提供初始化模版降低新用户门槛
|
||||
|
||||
**状态:** 已采纳 ✅
|
||||
**日期:** 2026-05-24
|
||||
|
||||
---
|
||||
|
||||
## 背景
|
||||
|
||||
外部用户首次打开 App 时,面对空白目标树不知道如何填写,容易流失。
|
||||
|
||||
## 决策
|
||||
|
||||
**Phase 2 PWA 上线时**引入初始化模版系统:
|
||||
|
||||
- **通用模版**:纯结构 + 占位符,适合所有人
|
||||
- **6 类人生方向模版**:职业发展 / 创业副业 / 学习提升 / 健康生活 / 家庭生活 / 自由探索
|
||||
- 用户也可选择「空白开始」
|
||||
|
||||
**Phase 5 会员阶段**提供精品行业模版库作为付费内容。
|
||||
|
||||
## 原因
|
||||
|
||||
- 新用户看到结构示例后能快速理解产品价值
|
||||
- 模版是起点,用户可自由编辑,不构成约束
|
||||
- 自用阶段(当前)无需此功能,Phase 2 面向外部用户时引入
|
||||
- 免费模版 vs 付费精品模版形成分层,支撑商业化
|
||||
|
||||
## 影响
|
||||
|
||||
- Phase 2 开发时需新增「欢迎页 + 模版选择」流程
|
||||
- 模版内容需要打磨文案,覆盖主流人群
|
||||
- 精品模版定价和内容在 Phase 5 决策
|
||||
@@ -0,0 +1,35 @@
|
||||
# server — 后端 API
|
||||
|
||||
> 人生目标 App 的后端服务,**Phase 4(账号体系)阶段启动开发**,当前目录为占位。
|
||||
|
||||
## 当前状态
|
||||
|
||||
📋 **待启动** — Phase 4 触发条件:核心功能稳定 + 有稳定用户基础。
|
||||
|
||||
## 负责的功能(Phase 4+)
|
||||
|
||||
- 用户注册 / 登录(邮箱 + Google / Apple 一键登录)
|
||||
- 数据云端存储与多设备同步
|
||||
- **Anthropic API 代理**(保护 API Key,替代前端直连)
|
||||
- 游客本地数据迁移至账号
|
||||
- Phase 5:会员订阅 + 支付接入
|
||||
|
||||
## 技术栈(待定,Phase 4 决策)
|
||||
|
||||
| 项目 | 候选 |
|
||||
|------|------|
|
||||
| 运行时 | Node.js |
|
||||
| 框架 | Express / Fastify / Hono |
|
||||
| 数据库 | PostgreSQL / Supabase |
|
||||
| 认证 | JWT + OAuth2 |
|
||||
| 部署 | 待定 |
|
||||
|
||||
## 启动方式(开发后)
|
||||
|
||||
```bash
|
||||
cd server
|
||||
npm install
|
||||
npm run dev
|
||||
```
|
||||
|
||||
> 详见 [架构设计文档](../docs/03-架构设计/技术选型与数据结构.md)
|
||||
Reference in New Issue
Block a user