# P1 全功能流程走查(Feature Spec Layer) **日期:** 2026-08-02 **目的:** 按新链路对 P1 全部功能过一遍——**只做设计与对齐审计,本文件不授权直接开新编码**。 **链路:** ``` feature-map → feature-spec → OpenAPI/erd → implementation → test → review ``` 规范:[../feature-design.md](../feature-design.md) · 索引:[README.md](README.md) 图例: | 标记 | 含义 | |---|---| | PASS | 本关已满足,可进入下一关或维持 | | PARTIAL | 主路径可用,有明确 Gap(见各 Spec §14) | | SHELL | 有意占位(如陪伴 P1) | | BLOCK | 缺 Spec/契约,禁止扩行为 | | N/A | 本关不适用 | 编码优先级: 1. ~~P0 横切:埋点最小集~~ → **切片 A 已完成**(见 [analytics.md](analytics.md)) 2. P1 体验 Gap:探索测试中断恢复 3. P2 探索三模块:见 [P2-BACKLOG.md](P2-BACKLOG.md)(星象性格 → 身心节律 → 意象卡片) 4. 真支付、短链分享、陪伴心情 UI(各改对应 Spec) 其余 Spec §11 事件:后续迭代再挂,勿一次铺满。 --- ## 总表 | # | 功能 | Spec | map | OpenAPI/erd | 实现 | 测试 | DoD 标签建议 | 下一步(设计侧已闭合?) | |---|---|---|---|---|---|---|---|---| | 1 | 首页 | [home](home.md) | PASS | N/A(复用 profiles) | PASS | PARTIAL | Feature Complete(体验) | 埋点;可选推荐位 | | 2 | 个人档案 | [profile](profile.md) | PASS | PASS | PASS | PARTIAL | Feature Complete | 软删策略写清;埋点 | | 3 | 个人画像 | [portrait](portrait.md) | PASS | PASS | PASS | PASS | Feature Complete | 埋点;内容已多维 | | 4 | 关系理解 | [relation](relation.md) | PASS | PASS | PASS | PASS | Feature Complete | 埋点 | | 5 | 探索测试 | [explore-test](explore-test.md) | PASS | PASS | PASS | PARTIAL | Feature Complete − Gap | **设计已标**中断恢复 Gap | | 6 | AI 问答 | [ask](ask.md) | PASS | PASS | PASS | PASS | Feature Complete | 埋点;真 LLM 依赖配置 | | 7 | 会员/深度版 | [membership](membership.md) | PASS | PASS | PASS | PASS | Feature Complete(mock) | 真支付另开 Spec 修订 | | 8 | 成长报告 | [reports](reports.md) | PASS | PASS | PASS | PARTIAL | Feature Complete | 收藏/PDF = Gap | | 9 | 分享卡 | [share](share.md) | PASS | N/A(前端载荷) | PASS | PARTIAL | Feature Complete − Gap | 短链 = Gap | | 10 | 陪伴 | [companion](companion.md) | PASS | PARTIAL | SHELL | N/A 深测 | **Shell only** | 禁止当 P1 Complete | **横切:** 埋点最小集已实现(analytics)· 真支付仍为 mock(P1 接受)· Visitor 模型与 Spec 一致。 **收口标签:** 见 [p1-status.md](../p1-status.md) → **P1 Complete**。 --- ## 逐功能走查(六步) 每步问题:① Spec 是否 Active 且 §4/7/9/12 非空?② map/page-tree 对齐?③ OpenAPI/erd?④ 实现是否覆盖主路径与四态?⑤ 测试是否覆盖 §12?⑥ Review/Gaps 是否写入 §14? --- ### 1. 首页 · home | 步 | 结果 | 笔记 | |---|---|---| | Spec | PASS | Purpose/Flow/Rules 齐全 | | map / page-tree | PASS | `/` | | 契约 | N/A | 无专用 API | | 实现 | PASS | 生日 CTA → portrait;快捷入口;无 API 状态墙 | | 测试 | PARTIAL | 缺独立 Home e2e;主路径被 portrait e2e 间接覆盖 | | Review | PASS | Gap:埋点、推荐 Feed 静态 | **流程结论:** 设计闭合。编码仅在做埋点/推荐时先改 Spec §11/§5。 --- ### 2. 个人档案 · profile | 步 | 结果 | 笔记 | |---|---|---| | Spec | PASS | | | map / page-tree | PASS | `/profile` · `/mine` 入口 | | 契约 | PASS | GET/POST/PATCH/DELETE profiles | | 实现 | PASS | 列表/编辑/删除/加 TA | | 测试 | PARTIAL | L2 有 profile 更新删除流 | | Review | PASS | Gap:birth_time/place UI;删除级联说明 | **流程结论:** 设计闭合。扩字段前先改 Spec §8 + erd。 --- ### 3. 个人画像 · portrait | 步 | 结果 | 笔记 | |---|---|---| | Spec | PASS | 含多维报告结构附录 | | map / page-tree | PASS | `/portrait` | | 契约 | PASS | POST portrait · GET report · orders | | 实现 | PASS | 引擎多维 + ReportRich + DeepAccess | | 测试 | PASS | engine L1 · 集成 deep_access · PortraitPage.spec | | Review | PASS | Gap:埋点;真支付 | **流程结论:** 设计闭合。内容结构变更必须先改 Spec 附录再改 `internal/portrait`。 --- ### 4. 关系理解 · relation | 步 | 结果 | 笔记 | |---|---|---| | Spec | PASS | 双引擎、禁用合盘 | | map / page-tree | PASS | `/relation` | | 契约 | PASS | POST insight | | 实现 | PASS | 多维对比 + 深度 sections | | 测试 | PASS | engine L1 · 集成 · RelationPage.spec | | Review | PASS | Gap:埋点 | **流程结论:** 设计闭合。 --- ### 5. 探索测试 · explore-test | 步 | 结果 | 笔记 | |---|---|---| | Spec | PASS | 子能力表已展开 | | map / page-tree | PASS | `/explore` `/scales/:slug` | | 契约 | PASS | scales list/detail/result | | 实现 | PASS | 两套 seed;丰富 result;无结果付费墙(Spec 已声明) | | 测试 | PARTIAL | score/result L1;缺完整答题 e2e | | Review | PASS | **Gap(已设计):** 答题中断恢复;埋点;若上锁结果须先改 Spec | **流程结论:** 设计闭合;中断恢复属已登记 Gap,开工前在 Spec §4/§7 补规则细节即可编码。 --- ### 6. AI 问答 · ask | 步 | 结果 | 笔记 | |---|---|---| | Spec | PASS | 配额、降级、挂档案 | | map / page-tree | PASS | `/ask` | | 契约 | PASS | quota/threads/messages | | 实现 | PASS | DeepSeek + 规则降级;四态较全 | | 测试 | PASS | reply L1 · 集成 thread | | Review | PASS | Gap:埋点;长期记忆 P3 | **流程结论:** 设计闭合。改配额数字或 system prompt 结构 → 先改 Spec §7/§14。 --- ### 7. 深度版 / 成长会员 · membership | 步 | 结果 | 笔记 | |---|---|---| | Spec | PASS | DeepAccess ∪ Membership | | map / page-tree | PASS | `/membership` + 报告内墙 | | 契约 | PASS | membership/me · orders · pay-mock | | 实现 | PASS | mock 支付落库;服务端裁剪 detail | | 测试 | PASS | L2 unlock | | Review | PASS | Gap:真支付网关(须 Spec 修订 §9) | **流程结论:** mock 商业闭环设计闭合。真支付 = 新一轮 Spec→契约→实现。 --- ### 8. 成长报告 · reports | 步 | 结果 | 笔记 | |---|---|---| | Spec | PASS | | | map / page-tree | PASS | `/reports` + `/reports/:id`(page-tree 已对齐) | | 契约 | PASS | GET list/detail | | 实现 | PASS | ReportsPage · ReportPage · Mine 入口 | | 测试 | PARTIAL | 详情流较强;列表专项可补 | | Review | PASS | Gap:收藏、PDF | **流程结论:** 设计闭合。 --- ### 9. 分享卡 · share | 步 | 结果 | 笔记 | |---|---|---| | Spec | PASS | 前端 query 载荷 | | map / page-tree | PASS | `/share` | | 契约 | N/A | 无专用 API(Spec 已写) | | 实现 | PASS | ShareSheet/Card/Page | | 测试 | PARTIAL | 有分享相关测 | | Review | PASS | Gap:短链服务、系统分享 | **流程结论:** P1 设计闭合。短链需新 API → 先改 Spec §8/§9。 --- ### 10. 陪伴 · companion | 步 | 结果 | 笔记 | |---|---|---| | Spec | PASS | **明确 P1 Shell / P2** | | map / page-tree | PASS | `/companion` | | 契约 | PARTIAL | solar-terms + moods API 有;UI 未接 moods | | 实现 | SHELL | 本地节气;心情文案占位 | | 测试 | N/A | 壳不要求深测 | | Review | PASS | **禁止**未改 Phase 就做心情 OS | **流程结论:** 壳范围设计闭合。P2 开工 = 升 Spec Phase + 补 §4/§7/§12 后再编码。 --- ## 流程门禁抽查(本轮) - [x] 无 Spec 的 P1 功能:无 - [x] Spec 均含 §4 / §7 / §9 / §12 - [x] feature-map 已链到 Spec - [x] 陪伴未误标为 P1 Feature Complete - [x] 横切埋点统一登记为 Gap,未假装已完成 - [x] **本轮不编码**——仅文档与 page-tree 对齐 --- ## 批准编码时的推荐切片(需你点名后再动) | 切片 | 先改 Spec | 再改代码 | |---|---|---| | A. 埋点最小集 | 各 Spec §11 选 5 个核心事件 | H5 统一 `track()` + GA | | B. 探索测试草稿恢复 | explore-test §4/§7 | localStorage 恢复答案 | | C. 真支付 | membership §9/§7 | 支付适配器 + 回调 | | D. 陪伴 P2 | companion Phase→P2 | moods UI | --- ## 签字栏(人工) | 角色 | 确认 | 日期 | |---|---|---| | 产品/你 | 走查结论是否接受 | | | 开发开工 | 从切片 A/B/C/D 择一 | |