Explorar el Código

docs: 主动健康六阶模型改进设计文档

- 新增 specs/2026-07-22-active-health-six-stage-design.md 设计总纲
- PROJECT-OVERVIEW.md v1.1→v1.2: 新增 Phase 5 阶段、3.1 身 条目、十 文档索引、十一 主动健康改进章节
- AGENTS.md: 新增变更追踪规则 — superpowers/ 下文件增删改必须同步 PROJECT-OVERVIEW.md
iwt hace 3 meses
padre
commit
57cc0e9a6d

+ 2 - 0
docs/superpowers/AGENTS.md

@@ -30,6 +30,7 @@ superpowers/
 - **API设计:** OpenAPI风格,包含请求/响应示例
 - **任务分解:** 使用TODO列表,明确验收标准
 - **版本控制:** 文档随代码一起提交到git
+- **变更追踪:** `docs/superpowers/` 目录下任何文件的**添加、更新、归档**,必须同步更新 `PROJECT-OVERVIEW.md` 中的对应条目(版本号、状态、文档索引)
 
 ## ANTI-PATTERNS
 
@@ -38,6 +39,7 @@ superpowers/
 - **DO NOT** 将设计和实现混为一谈
 - **NEVER** 不更新文档就直接修改代码
 - **NEVER** 创建无法验证完成的任务
+- **NEVER** 在 `docs/superpowers/` 下增删改文件后,不更新 `PROJECT-OVERVIEW.md`
 
 ## UNIQUE WORKFLOWS
 

+ 80 - 4
docs/superpowers/PROJECT-OVERVIEW.md

@@ -1,7 +1,7 @@
 # 浠艾福 项目全景 — 阶段性需求与设计汇总
 
-**文档版本:** v1.1
-**日期:** 2026-07-21
+**文档版本:** v1.2
+**日期:** 2026-07-22
 **状态:** 已确认(v1.1 审计校准)
 **维护:** 所有需求变更需更新本文档
 
@@ -16,6 +16,7 @@
 | **Phase 2** | 2026-07~08 | 商业模式 | 家庭会员订阅、供应商体系、AI管家 | ⏳ 待开发 |
 | **Phase 3** | 2026-Q3 | AI 能力升级 | LangGraph Sidecar、RAG知识库自动化、报告解读Agent | ⏳ 待开发 |
 | **Phase 4** | 2026-Q4 | 运维与扩展 | 性能优化、监控、国际化 | ⏳ 规划中 |
+| **Phase 5** | 2026-Q3~ | 主动健康六阶模型 | 微启动+即时反馈+智能预警+身份重塑+家庭互动+社区扩散 | 🚧 设计中 |
 
 ---
 
@@ -86,7 +87,7 @@
 
 ### 3.1 🌏 身(Body / 土)— 健康管理
 
-**核心功能:** 精准营养推荐、健康报告解析、体质调理方案
+**核心功能:** 精准营养推荐、健康报告解析、体质调理方案、主动健康行为改进
 
 | 功能 | 阶段 | 状态 | 关联文档 |
 |------|:----:|:----:|---------|
@@ -94,6 +95,7 @@
 | 身体健康7维子体系模型 | Phase 2 | 🟡 设计稿 | `specs/2026-06-26-health-dimensions-design-spec.md` |
 | 成长档案重建 | Phase 2 | 🟡 设计稿,待评审 | `specs/2026-06-22-growth-record-rebuild-design.md` |
 | 营养健康部分缺陷修复 | Phase 1 | 🟡 计划中 | `plans/2026-06-22-营养健康部分缺陷修复计划.md` |
+| 主动健康六阶模型改进(P0-P3) | Phase 5 | 🚧 设计稿 | `specs/2026-07-22-active-health-six-stage-design.md` (设计总纲) |
 
 ---
 
@@ -306,6 +308,7 @@
 | `2026-06-04-pre-login-discovery-design.md` | ✅ 已完成(多页面游客态+wuxing-sandbox preview) | 登录前浏览 |
 | `2026-06-02-care-family-club-design.md` | 🟡 设计稿 | 平台升级总纲 |
 | `2026-07-12-dimension-features-energy-map.md` | 🟡 设计稿 | 维度功能能量映射 |
+| `2026-07-22-active-health-six-stage-design.md` | 🚧 设计中 | 主动健康六阶模型改进总设计 |
 | `2026-07-10-certainty-ppt-design.md` | 🟡 设计稿 | 确定性叙事PPT |
 
 ### 实施计划(plans/)
@@ -355,4 +358,77 @@
 | `2026-07-10-determinism-gap-fix-plan.md` | 🟡 计划中 | 确定性缺口修复 |
 | `2026-07-13-supplier-system-gap-fix.md` | 🟡 计划中 | 供应商体系修复 |
 | `2026-07-06-test-fix-and-enhance-plan.md` | 🟡 计划中 | 测试修复增强 |
-| `2026-07-19-report-upload-purchase-links.md` | 🟡 计划中 | 报告购买链接 |
+| `2026-07-19-report-upload-purchase-links.md` | 🟡 计划中 | 报告购买链接 |
+
+### 计划与设计文档(specs/)
+
+| 文件 | 状态 | 说明 |
+|------|:----:|------|
+| `2026-07-22-active-health-six-stage-design.md` | 🟡 当前 | 主动健康六阶模型改进总设计 |
+
+---
+
+## 十一、主动健康六阶模型改进(Phase 5)
+
+**基准:** 健康界 2026/06/17《主动健康的六阶模型及其神经生理机制》
+**设计总纲:** `specs/2026-07-22-active-health-six-stage-design.md`
+**状态:** 🚧 设计中(P0 待实现)
+
+### 改进矩阵
+
+| 优先级 | 改进项 | 覆盖六阶 | 核心目标 |
+|:-------|:-------|:---------|:---------|
+| **P0** | 微行动系统(最小行为单元) | ① 有效启动 | 将1秒完成的门槛降至极低,解决首次启动流失 |
+| **P1-1** | 即时多巴胺反馈 | ② 持续坚持 | 动画/声音/AI鼓励提供即时爽点,闭环多巴胺回路 |
+| **P1-2** | 健康行为智能预警 | ② 持续坚持 | 趋势解读+触发建议,让死数据变活提醒 |
+| **P2-1** | 身份重塑系统 | ④ 身份重塑 | 5级称号+健康积分+时间线叙事,从执行者到健康达人 |
+| **P2-2** | 家庭健康互动 | ⑤ 意见领袖化 | 排行榜+点赞+挑战,家庭内部互促 |
+| **P3** | 健康社区扩散 | ⑥ 社会扩散 | 健康圈+分享页,家庭→社区扩散 |
+
+### 新增文件总览
+
+**后端(Java):** 约 25 个新建文件(Controller/Service/Entity/Mapper)
+
+| 优先级 | 新建 Controller | 新建 Service | 新建 Entity |
+|:-------|:----------------|:-------------|:------------|
+| P0 | MicroActionController | MicroActionService | MicroAction, MicroActionRecord |
+| P1-1 | DailyFeedbackController | DailyFeedbackService | DailyFeedback |
+| P1-2 | HealthAlertController | HealthAlertEngine, HealthAlertService | HealthAlert |
+| P2-1 | HealthScoreController, HealthTimelineController | HealthScoreService, HealthLevelService, HealthTimelineService | HealthLevel, HealthTimelineEvent |
+| P2-2 | FamilyHealthController, HealthInteractionController, FamilyChallengeController | FamilyHealthScoreService, HealthInteractionService, FamilyChallengeService | FamilyChallenge, FamilyChallengeProgress, HealthInteraction |
+| P3 | HealthCircleController, CircleChallengeController, ShareController | HealthCircleService, CircleChallengeService, ShareService | HealthCircle, HealthCircleMember, CircleChallenge |
+
+**前端(Vue):** 约 15 个新建组件/页面
+
+| 优先级 | 新建文件 |
+|:-------|:---------|
+| P0 | MicroActionCard.vue |
+| P1-1 | FeedbackToast.vue, MilestoneCelebration.vue, DailySummary.vue, feedback-presets.js, feedback-engine.js, store/feedback.js |
+| P1-2 | HealthAlertBanner.vue, store/health-alert.js |
+| P2-1 | HealthBadge.vue, HealthTimeline.vue, store/health-score.js |
+| P2-2 | FamilyHealthRanking.vue, FamilyChallengeCard.vue, HealthLikeButton.vue |
+| P3 | CircleRanking.vue, pages/share/index.vue |
+
+### 新数据表
+
+| 优先级 | 表名 |
+|:-------|:------|
+| P0 | micro_action, micro_action_record |
+| P1-1 | daily_feedback |
+| P1-2 | health_alerts |
+| P2-1 | health_level, health_timeline_event |
+| P2-2 | family_challenge, family_challenge_progress, health_interaction |
+| P3 | health_circle, health_circle_member, circle_challenge |
+
+### 实现顺序依赖
+
+```
+P0 微启动 ─── 无依赖
+P1-1 即时反馈 ─── 无依赖(独立,可并行于P0)
+P1-2 智能预警 ─── 需要历史行为数据(可独立开发,数据积累后生效)
+P2-1 身份重塑 ─── 依赖积分计算引擎
+P2-2 家庭互动 ─── 依赖积分系统(与P2-1共享积分基础)
+P3 社区扩散 ─── 依赖P2-2的家庭概念完整
+```
+
+**关键原则:** 四个阶段之间无阻塞依赖,可逐阶段实施,也可并行开发互不影响的模块。

+ 590 - 0
docs/superpowers/specs/2026-07-22-active-health-six-stage-design.md

@@ -0,0 +1,590 @@
+# 主动健康六阶模型 — 项目改进综合设计文档
+
+> **基准**: 健康界 2026/06/17《主动健康的六阶模型及其神经生理机制》
+> **项目**: CFClub 家庭健康小程序 (cfc-web 前端 + cfc-admin 后端)
+> **阶段**: P0 (微启动) → P1 (即时反馈 + 智能预警) → P2 (身份重塑 + 家庭互动) → P3 (社区扩散)
+
+---
+
+## 背景:六阶模型与项目缺口
+
+### 六阶模型
+
+| 阶段 | 核心机制 | 神经基础 |
+|:-----|:---------|:---------|
+| ① 有效启动 | 最小行动单元<1s,零认知负荷 | 前扣带回-默认模式网络转换 |
+| ② 持续坚持 | 即时正向反馈,多巴胺递质系统参与 | 纹状体多巴胺D1受体通路 |
+| ③ 获得感形成 | 阶段性成就显性化,内啡肽/催产素 | 前额叶-边缘系统整合 |
+| ④ 身份重塑 | 从"被动执行者"到"主动健康实践者" | 内侧前额叶自我参照加工 |
+| ⑤ 意见领袖化 | 叙事输出,影响他人 | 颞顶联合区-心智化网络 |
+| ⑥ 社会扩散 | 群体规范形成,家庭为单元扩散 | 镜像神经元-社会脑网络 |
+
+### 项目现状 -> 六阶覆盖
+
+| 原有功能 | 覆盖的阶 | 缺口 |
+|:---------|:---------|:-----|
+| 健康打卡 | ② (部分) | 缺有效启动(阶①) |
+| 身体记录/测评 | — | 无反馈闭环 |
+| 能量系统 | ② (部分) | 无身份标识(阶④) |
+| 五行沙盘/情绪打卡 | — | 无社交扩散(阶⑥) |
+| 家庭关系图 | — | 无家庭健康互动 |
+| 报告上传/AI问答 | — | 无预警/趋势解读 |
+
+### 改进总清单
+
+| 优先级 | 改进项 | 覆盖阶 |
+|:-------|:-------|:-------|
+| **P0** | 微行动系统(最小行为单元) | ① 有效启动 |
+| **P1-1** | 即时多巴胺反馈(动画/声音/AI鼓励) | ② 持续坚持 |
+| **P1-2** | 健康行为智能预警(趋势解读+触发建议) | ② 持续坚持 |
+| **P2-1** | 身份重塑系统(健康等级+称号+叙事) | ④ 身份重塑 |
+| **P2-2** | 家庭健康互动(点赞/挑战/排行) | ⑤ 意见领袖化 |
+| **P3** | 健康社区扩散(家庭圈/分享/荣誉墙) | ⑥ 社会扩散 |
+
+---
+
+## P0 — 微启动系统(有效启动)
+
+### 问题
+
+用户注册后的第一道门槛太高——打开小程序面对的是完整的"健康打卡表单",需要填写多项内容,认知负荷大,导致大量用户在首次打开后就流失。
+
+### 设计
+
+#### 1. 微行动概念
+
+定义 12 个预置的"1秒完成"的健康行动:
+
+| 编号 | 微行动 | 交互方式 | 预期完成时间 |
+|:-----|:-------|:---------|:------------|
+| A01 | 喝一杯水 ☕️ | 点击 | < 1s |
+| A02 | 深呼吸 3 次 🫁 | 点击 | < 1s |
+| A03 | 站起来伸个懒腰 🧘 | 点击 | < 1s |
+| A04 | 看远处 10 秒 🌿 | 点击 | < 1s |
+| A05 | 微笑一下 😊 | 点击 | < 1s |
+| A06 | 转转头颈 5 圈 🔄 | 点击 | < 1s |
+| A07 | 握拳放松 3 次 ✊ | 点击 | < 1s |
+| A08 | 喝口水润喉 💧 | 点击 | < 1s |
+| A09 | 眨眨眼 5 次 👁️ | 点击 | < 1s |
+| A10 | 按揉合谷穴 3 下 🖐️ | 点击 | < 1s |
+| A11 | 踮脚尖 5 次 ⬆️ | 点击 | < 1s |
+| A12 | 耸肩放松 3 次 ↕️ | 点击 | < 1s |
+
+#### 2. 前端组件
+
+**`components/MicroActionCard.vue`** — 首页核心组件
+
+```
+┌──────────────────────────────────┐
+│  ☕️ 今天的小行动 · 已完成 0/1    │
+│                                  │
+│  [喝一杯水] 点击完成 → +1能量    │
+│                                  │
+│  3s 倒计时后自动翻转下一项       │
+│  (或点击立即翻转)                │
+└──────────────────────────────────┘
+```
+
+- 每次只展示 1 条微行动(降低选择负担)
+- 每天默认配额 **1 次**(首次使用额外赠送 2 次体验配额)
+- 完成后 3s 自动切换到下一条
+- 用户可手动点击立即切换
+- 每日全部完成后卡片变为 ✅ 状态
+
+#### 3. 时间触发机制
+
+在家长端微信订阅消息中增加:
+
+> "您今天的小行动还没完成哦!喝杯水只需要 1 秒钟 ☕️"
+
+推送触发条件:当日 18:00 未完成微行动,且最近 3 天有活跃记录。
+
+#### 4. 与健康打卡的互斥
+
+```
+微行动 (每日1次)       健康打卡 (每日1次)
+   │                        │
+   └── 二选一 ──────────────┘
+        │
+        ▼
+  都计入连续打卡进度
+  但同日只能完成其中一种
+```
+
+- 完成微行动 = 当日打卡成功(计入连续打卡天数)
+- 完成完整健康打卡 = 当日打卡成功 + 额外数据记录
+- 两者不可同日重复
+
+#### 5. 后端
+
+| 文件 | 说明 |
+|:-----|:------|
+| `entity/MicroAction.java` | 微行动定义表 |
+| `entity/MicroActionRecord.java` | 用户完成记录表 |
+| `mapper/MicroActionMapper.java` | |
+| `mapper/MicroActionRecordMapper.java` | |
+| `service/MicroActionService.java` | 分配+完成+配额校验 |
+| `controller/MicroActionController.java` | `/api/micro-action/today`, `/api/micro-action/complete` |
+
+#### 6. 现有文件扩展
+
+| 文件 | 改动 |
+|:-----|:------|
+| `store/index.js` | 新增 microAction 模块 |
+| `utils/api.js` | 新增微行动 API |
+| `service/EnergyRuleEngine.java` | 增加微行动 +1 能量规则 |
+| `service/TaskReminderService.java` | 增加微行动定时提醒 |
+
+---
+
+## P1-1 — 即时多巴胺反馈系统
+
+### 问题
+
+用户完成健康行为后,只看到"保存成功"或纯文字提示,缺乏即时情感反馈。多巴胺闭环缺失,持行为缺乏"爽点"支撑。
+
+### 设计
+
+#### 1. 反馈分层
+
+| 层级 | 响应速度 | 内容来源 | 使用场景 |
+|:-----|:---------|:---------|:---------|
+| **L1 即时反馈** | < 200ms | CSS动画 + 预设文案 | 每次点击"完成"/"打卡" |
+| **L2 深度反馈** | 异步 | AI 生成 (Dify) | 每日摘要/每周报告 |
+
+#### 2. L1 即时反馈触发点
+
+| 触发动作 | 动画 | 文案 | 音效 |
+|:---------|:-----|:-----|:-----|
+| 完成微行动 | ✅ 绿色勾缩放 + 能量+1飞入 | "太棒了!🎉" | 叮当声 |
+| 健康打卡 | 能量粒子迸发 | "今天又是健康的一天!" | 叮当声 |
+| 运动记录 | 运动图标脉冲 | "今天动了 XX 分钟!💪" | 轻快音 |
+| 睡眠记录 | 月亮图标动画 | "优质睡眠!😴" | 轻快音 |
+| 饮水记录 | 水杯灌满 | "补水成功 💧" | 轻快音 |
+| 里程碑达成 | 全屏彩带 (Canvas) | "连续7天!🔥" | 上升音阶 |
+| 首次使用 | 引导光晕 | "你的健康之旅开始了!" | 叮当声 |
+
+#### 3. 预设文案库
+
+| 阶段 | 文案 |
+|:-----|:-----|
+| 第1天 | "第一步!最有意义的一步 🎉" |
+| 连续3天 | "连续3天!你已经超过了50%的新手 💪" |
+| 连续7天 | "一周了!习惯正在形成 🌱" |
+| 连续14天 | "两周!坚持就是你的超能力 ⚡" |
+| 连续21天 | "21天法则!习惯几乎自动化了 🔥" |
+| 连续30天 | "一个月!你是健康行动派 🏆" |
+| 首次运动 | "运动让大脑更聪明 🧠" |
+| 首次睡眠记录 | "好睡眠是最好的免疫力 😴" |
+| 恢复打卡(断后) | "欢迎回来!每一次重启都是勇敢的 🌟" |
+
+#### 4. 前端技术方案
+
+- **CSS Animation** 为主(微信小程序兼容)
+- **Canvas** 仅用于里程碑彩带效果(1.5s,30粒子)
+- **`wx.createInnerAudioContext()`** 播放音效(< 1s, 体积 < 50KB)
+- 所有动画资源预加载,打包为 base64 或雪碧图,避免网络延迟
+
+#### 5. AI 深度反馈 (L2)
+
+通过已有 `Dify AI Gateway` 每天 22:00 定时任务:
+
+> "你是一个温暖的家庭健康教练。根据以下用户数据,生成1-2句鼓励语(不超过50字):[当日行为数据]"
+
+展示位置:次日首次打开小程序时的"早安健康摘要"横幅。
+
+#### 6. 涉及文件
+
+**前端**:
+
+| 文件 | 说明 |
+|:-----|:------|
+| `components/FeedbackToast.vue` | **新建** — L1即时反馈弹层 |
+| `components/MilestoneCelebration.vue` | **新建** — 全屏彩带动画组件 |
+| `components/DailySummary.vue` | **新建** — AI每日摘要卡片 |
+| `utils/feedback-presets.js` | **新建** — 预设文案+音效映射表 |
+| `utils/feedback-engine.js` | **新建** — 反馈触发引擎 |
+| `store/feedback.js` | **新建** — 反馈状态模块 |
+| `pages/index/index.vue` | 嵌入 DailySummary |
+
+**后端**:
+
+| 文件 | 说明 |
+|:-----|:------|
+| `service/DailyFeedbackService.java` | **新建** — 每日AI反馈生成 |
+| `controller/DailyFeedbackController.java` | **新建** — `/api/feedback/today` |
+| `entity/DailyFeedback.java` | **新建** — `daily_feedback` 表 |
+| `mapper/DailyFeedbackMapper.java` | **新建** |
+| `service/AiGateway.java` | 扩展 — 新增 health-coach prompt 类型 |
+
+---
+
+## P1-2 — 健康行为智能预警
+
+### 问题
+
+用户行为数据已入库,但系统不做任何解读。数据只是"死记录",用户不知道自己的行为趋势是好是坏,也不知道该改进什么。
+
+### 设计
+
+#### 1. 预警规则(6条)
+
+| ID | 条件 | 预警文案 | 行动建议 |
+|:----|:-----|:---------|:---------|
+| R001 | 连续3天睡眠评分↓ | "您已连续3天睡眠质量下降" | "睡前1小时放下手机,喝杯温牛奶" |
+| R002 | 连续5天无运动 | "您已经5天没有运动了" | "站起来走3分钟就是好的开始!" |
+| R003 | 饮水<500ml 连续2天 | "近2天饮水量偏低" | "每1小时喝一杯水,设置定时提醒" |
+| R004 | 运动强度突增>50% | "今天运动量比平时多一半" | "适当拉伸,不要过度训练" |
+| R005 | 连续7天无打卡 | "您已经7天没有健康打卡" | "从最小的动作开始:喝一杯水 ☕️" |
+| R006 | 今日未打卡(18:00) | "今天的健康打卡还没完成哦" | "点我完成今日微行动" |
+
+#### 2. 引擎架构
+
+```
+定时任务 (cron: 0 0 8,12,18 * * ?)
+    │
+    ▼
+HealthAlertEngine.evaluate(userId)
+    ├── 读取近X天记录
+    ├── 逐条匹配规则
+    ├── 去重 (同规则24h内不重复)
+    └── 生成 HealthAlert 记录
+    │
+    ▼
+前端拉取 GET /api/health/alert
+    │
+    ▼
+首页预警横幅展示
+```
+
+#### 3. 前端展示
+
+首页微行动卡片下方:
+
+```
+┌──────────────────────────────────┐
+│  ⚠️ 健康小提醒                    │
+│  您已连续3天睡眠质量下降          │
+│  今晚试试:睡前1小时放下手机      │
+│  [我知道了]                        │
+└──────────────────────────────────┘
+```
+
+- 最多展示 2 条(按严重程度)
+- 点击"我知道了" → `POST /api/health/alert/dismiss` → 24h内不再展示
+
+#### 4. 涉及文件
+
+**后端**:
+
+| 文件 | 说明 |
+|:-----|:------|
+| `service/HealthAlertEngine.java` | **新建** — 规则引擎 |
+| `service/HealthAlertService.java` | **新建** — CRUD + 去重 |
+| `controller/HealthAlertController.java` | **新建** — `/api/health/alert` |
+| `entity/HealthAlert.java` | **新建** — `health_alerts` 表 |
+| `mapper/HealthAlertMapper.java` | **新建** |
+
+**前端**:
+
+| 文件 | 说明 |
+|:-----|:------|
+| `components/HealthAlertBanner.vue` | **新建** — 预警横幅 |
+| `pages/index/index.vue` | 嵌入横幅 |
+| `store/health-alert.js` | **新建** — 预警状态 |
+
+---
+
+## P2-1 — 身份重塑系统
+
+### 问题
+
+用户完成健康行为后看到的只是打卡次数增加、能量值变化,没有"我是谁"的身份认同——缺少从"执行者"到"健康践行者"的身份跃迁感。
+
+### 设计
+
+#### 1. 等级体系(5级)
+
+| 等级 | 称号 | 所需健康积分 | 视觉标识 |
+|:-----|:-----|:------------|:---------|
+| L1 | 健康探索者 🌱 | 0 | 绿色幼苗徽章 |
+| L2 | 健康践行者 🌿 | 100 | 绿叶徽章 |
+| L3 | 家庭健康官 🏡 | 300 | 房屋徽章 |
+| L4 | 健康达人 ⭐ | 700 | 金星徽章 |
+| L5 | 健康领航者 👑 | 1500 | 皇冠徽章 |
+
+#### 2. 综合健康积分公式
+
+```
+健康积分 =
+  打卡(每次+2, 上限每日1次) +
+  微行动(每次+1, 上限每日1次) +
+  运动记录(每次+3, 上限每日1次) +
+  睡眠记录(每次+2, 上限每日1次) +
+  饮水记录(每次+1, 上限每日3次) +
+  饮食记录(每次+2, 上限每日1次) +
+  健康报告上传(每次+10) +
+  连续打卡加成(连续7天+5, 连续30天+20) +
+  互动积分(点赞他人+1, 被赞+1)
+```
+
+**与 Energy 能量的关系**:
+
+| | 健康积分 (Health Score) | 能量 (Energy) |
+|:--|:-----------------------|:--------------|
+| 用途 | 等级晋升(不可消费) | 兑换心愿/任务(可消费) |
+| 来源 | 长期健康行为积累 | 健康行为+互动 |
+| 重置 | 永不重置 | 可重置/消耗 |
+
+#### 3. 展示位置
+
+- **首页侧边/抽屉** — 用户头像旁显示称号徽章
+- **个人中心页** — 完整等级+进度条+健康故事时间线
+- **健康打卡页** — 称号徽章
+
+#### 4. "我的健康故事"时间线
+
+从用户行为数据自动生成:
+
+```
+🏁 2026/06/01 — 开始了健康之旅的第一步
+🔥 第7天 — 突破了第一周!
+📋 第一次上传健康报告
+🌟 晋升为"健康践行者"!
+🏆 连续30天!坚韧不拔!
+👨‍👩‍👧‍👦 第一次为家人点赞
+```
+
+时间线事件存储在 `health_timeline` 表,行为触发生成。
+
+#### 5. 涉及文件
+
+**后端**:
+
+| 文件 | 说明 |
+|:-----|:------|
+| `entity/HealthLevel.java` | **新建** — 等级定义表 |
+| `entity/HealthTimelineEvent.java` | **新建** — 时间线事件表 |
+| `service/HealthScoreService.java` | **新建** — 积分计算引擎 |
+| `service/HealthLevelService.java` | **新建** — 等级判定+升级通知 |
+| `service/HealthTimelineService.java` | **新建** — 时间线生成 |
+| `controller/HealthScoreController.java` | **新建** — `/api/health/score` |
+| `controller/HealthTimelineController.java` | **新建** — `/api/health/timeline` |
+
+**前端**:
+
+| 文件 | 说明 |
+|:-----|:------|
+| `components/HealthBadge.vue` | **新建** — 等级称号组件 |
+| `components/HealthTimeline.vue` | **新建** — 健康故事时间线组件 |
+| `pages/profile/profile.vue` | 展示等级+进度+时间线 |
+| `store/health-score.js` | **新建** — 积分/等级状态 |
+
+---
+
+## P2-2 — 家庭健康互动
+
+### 问题
+
+现有"家庭关系图"只是静态结构展示,家庭功能完全是信息传递,没有任何健康行为层面的协同和激励。
+
+### 设计
+
+#### 1. 家庭健康排行榜
+
+家长端首页新增区域:
+
+```
+┌──────────────────────────────────┐
+│  👨‍👩‍👧‍👦 家庭健康榜                  │
+│                                  │
+│  🥇 妈妈      2,350分 🔥 15天   │
+│  🥈 爸爸      1,820分 🔥 8天    │
+│  🥉 小明        980分 🔥 3天    │
+│                                  │
+│  全家总积分: 5,150分             │
+│  [查看全家健康详情 →]            │
+└──────────────────────────────────┘
+```
+
+- 基于健康积分排名
+- 每个成员显示头像+等级称号+连续打卡天数🔥
+- 角色差异:家长端看到全部成员,儿童端只看到自己排名
+
+#### 2. 点赞系统
+
+```
+用户A完成打卡 → 通知其他家庭成员
+                      │
+                      ▼
+首页提示 → "妈妈刚刚完成了健康打卡 👍"
+                      │
+                      ▼
+点击👍 → POST /api/health/interact/like
+                      │
+                      ▼
+双方收到反馈 (点赞者"点赞成功"+1积分, 被赞者下次打开看到通知)
+```
+
+- 每个行为 24h 内可被点赞 1 次
+- 点赞双方均 +1 健康积分
+
+#### 3. 家庭挑战
+
+| 类型 | 内容 | 期限 | 奖励 |
+|:-----|:-----|:-----|:-----|
+| 全员打卡 | 全员连续打卡3天 | 3天 | +50 积分 |
+| 运动PK | 家庭总运动时长>300min | 7天 | +100 积分 |
+| 健康周 | 全员每日完成微行动 | 7天 | 限时徽章"健康之家" |
+
+流程:
+
+```
+系统发起(每月首日) → 首页挑战卡片
+    → 每日进度更新 → 到期自动结算 → 达标发奖
+```
+
+#### 4. 涉及文件
+
+**后端**:
+
+| 文件 | 说明 |
+|:-----|:------|
+| `controller/FamilyHealthController.java` | **新建** — `/api/health/family/ranking` |
+| `controller/HealthInteractionController.java` | **新建** — `/api/health/interact/like` |
+| `controller/FamilyChallengeController.java` | **新建** — 挑战CRUD/进度/结算 |
+| `service/FamilyHealthScoreService.java` | **新建** — 家庭排行计算 |
+| `service/HealthInteractionService.java` | **新建** — 点赞+通知 |
+| `service/FamilyChallengeService.java` | **新建** — 挑战引擎 |
+| `entity/FamilyChallenge.java` | **新建** — `family_challenge` 表 |
+| `entity/FamilyChallengeProgress.java` | **新建** — `family_challenge_progress` 表 |
+| `entity/HealthInteraction.java` | **新建** — `health_interaction` 表 |
+
+**前端**:
+
+| 文件 | 说明 |
+|:-----|:------|
+| `components/FamilyHealthRanking.vue` | **新建** — 家庭健康榜 |
+| `components/FamilyChallengeCard.vue` | **新建** — 挑战卡片 |
+| `components/HealthLikeButton.vue` | **新建** — 点赞按钮 |
+| `pages/index/index.vue` | 嵌入排行榜+挑战卡片 |
+
+---
+
+## P3 — 健康社区扩散
+
+### 问题
+
+家庭健康数据完全封闭——每个家庭只看得到自己,没有社交动力激发用户向他人传递健康行为,六阶模型第⑥阶"社会扩散"缺失。
+
+### 设计
+
+#### 1. 家庭同盟(健康圈)
+
+```
+家庭A(2-6人)── 发起邀请 ──→ 家庭B(2-6人)
+    │                              │
+    └────────── 组成健康圈 ─────────┘
+          (6-20人 / 圈)
+                │
+                ▼
+      ┌──────────────────┐
+      │ 圈总积分排行榜    │
+      │ 圈挑战(半月一次)  │
+      │ 圈内排行(家庭级)  │
+      └──────────────────┘
+```
+
+- 一个家庭最多加入 3 个健康圈
+- 退出冷却期 7 天
+- 排行以"家庭"为单位,不暴露个人数据
+
+#### 2. 圈挑战
+
+| 类型 | 周期 | 规则 |
+|:-----|:-----|:-----|
+| 全员达标赛 | 每周 | 圈内家庭全员打卡 ≥ 5天 |
+| 运动总动员 | 每两周 | 圈内运动时长前3家庭 |
+| 健康新秀榜 | 每月 | 圈内积分增长最快家庭 |
+
+#### 3. 健康足迹分享页
+
+通过微信分享的 H5 页面(只读快照,无需登录):
+
+```
+─────────────────────────────────
+       XX家庭 · 健康足迹
+─────────────────────────────────
+ 妈妈    打卡 30 天          🏆
+ 爸爸    打卡 22 天
+ 小明    微行动 15 次       🎯
+─────────────────────────────────
+ "我们坚持健康打卡30天了!"
+─────────────────────────────────
+     [扫码加入我们一起健康]
+─────────────────────────────────
+```
+
+底部小程序码 → 扫码进入小程序
+
+#### 4. 涉及文件
+
+**后端**:
+
+| 文件 | 说明 |
+|:-----|:------|
+| `controller/HealthCircleController.java` | **新建** — 圈CRUD |
+| `controller/CircleChallengeController.java` | **新建** — 圈挑战管理 |
+| `controller/ShareController.java` | **新建** — 分享页接口 |
+| `service/HealthCircleService.java` | **新建** |
+| `service/CircleChallengeService.java` | **新建** |
+| `service/ShareService.java` | **新建** |
+| `entity/HealthCircle.java` | **新建** — 健康圈表 |
+| `entity/HealthCircleMember.java` | **新建** — 圈成员表(家庭级) |
+| `entity/CircleChallenge.java` | **新建** — 圈挑战表 |
+
+**前端**:
+
+| 文件 | 说明 |
+|:-----|:------|
+| `pages/share/index.vue` | **新建** — 分享H5页面 |
+| `components/CircleRanking.vue` | **新建** — 圈排行组件 |
+
+---
+
+## 数据表总览
+
+| 优先级 | 表名 | 说明 |
+|:-------|:-----|:------|
+| P0 | `micro_action` | 预定义微行动字典 |
+| P0 | `micro_action_record` | 用户完成记录 |
+| P1-1 | `daily_feedback` | AI每日反馈 |
+| P1-2 | `health_alerts` | 健康预警记录 |
+| P2-1 | `health_level` | 等级定义 |
+| P2-1 | `health_timeline_event` | 健康时间线事件 |
+| P2-2 | `family_challenge` | 家庭挑战 |
+| P2-2 | `family_challenge_progress` | 挑战进度 |
+| P2-2 | `health_interaction` | 点赞记录 |
+| P3 | `health_circle` | 健康圈 |
+| P3 | `health_circle_member` | 圈成员 |
+| P3 | `circle_challenge` | 圈挑战(扩展自家庭挑战) |
+
+---
+
+## 实现顺序依赖图
+
+```
+P0 微启动 ──────────────────────────────────┐
+                                            │
+P1-1 即时反馈 ────┐                         │
+                   ├── (P1-2 预警依赖行为数据) │
+P1-2 智能预警 ────┘                         │
+                                            ├── 所有阶段独立可实施
+P2-1 身份重塑 ────┐                         │
+                   ├── (P2-2 依赖积分系统)    │
+P2-2 家庭互动 ────┘                         │
+                                            │
+P3 社区扩散 ──── 依赖 P2-2 的家庭概念完整    │
+```
+
+**关键原则**:四个阶段之间无阻塞依赖,可按照 P0→P1→P2→P3 顺序逐步实施,也可根据工期并行开发互不影响的模块。