feat(ECR-011): 昵称、首页贴士与档案 Self 唯一/合盘交叉校验
每账号仅一条 self(migration 40902);合盘只选 TA;账号昵称可改;首页穿衣/颜色/养生贴士。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
# ECR-011
|
||||
|
||||
**Title:** 账号昵称 · 首页每日贴士 · 档案唯一 Self / 合盘交叉校验
|
||||
**Status:** Approved
|
||||
**Date:** 2026-08-12
|
||||
**Approved:** 2026-08-12(Human 确认 Approve)
|
||||
**Change Level:** L2
|
||||
|
||||
## Architect 分级说明
|
||||
|
||||
| 工作流 | 级别 | 说明 |
|
||||
|--------|------|------|
|
||||
| A 档案唯一 Self + 合盘交叉校验 | L2(含 L1 缺陷修复) | migration 唯一索引 · API 409 · 合盘 B 约束 · Spec R7/R8/R11 |
|
||||
| B 账号昵称生成/编辑 | L2 | 新行为 · PATCH `/auth/me` · Spec account-auth R7–R8 |
|
||||
| C 首页每日贴士(穿衣/颜色/养生) | L2 | 新 API `/home/daily-tips` · LLM · Spec home R5–R6 |
|
||||
|
||||
**禁止**将本 ECR 拆成「无 Spec 的顺手改」继续合入 main。
|
||||
**过程补录:** 实现曾领先于 ECR;现已 Human Approve。Closed 前须 TEST_REPORT + CODE_REVIEW + DoD;不得宣称 P1 Complete 除非 DoD PASS。
|
||||
|
||||
## Change
|
||||
|
||||
1. Active Spec(已改,须随本 ECR 冻结):
|
||||
- `.ai/product/feature-spec/profile.md`(R7–R8)
|
||||
- `.ai/product/feature-spec/star-profile.md`(R11)
|
||||
- `.ai/product/feature-spec/account-auth.md`(R7–R8)
|
||||
- `.ai/product/feature-spec/home.md`(R5–R6)
|
||||
2. migration `000017_unique_self_profile`:软删重复 self + 部分唯一索引
|
||||
3. API:`PATCH /auth/me` · `GET /home/daily-tips` · Create self → 40902 · Synastry B 须 other/附近
|
||||
4. H5:`ensureSelfProfile` / `ensureOtherProfile` · 合盘只挑 other · 档案昵称卡 · 自己卡贴士
|
||||
5. OpenAPI · types · sdk · 单测
|
||||
|
||||
## Motivation
|
||||
|
||||
- 合盘出现多个「我」、档案页只显示一条 → 数据不一致
|
||||
- 解码/星盘等重复 `createProfile(self)` 制造脏数据
|
||||
- 账号需要可编辑昵称;首页「自己」卡需要节律贴士(非心情条)
|
||||
|
||||
## Scope
|
||||
|
||||
### Allowed
|
||||
|
||||
- 上列 Spec / migration / auth·home·profile·report 服务与对应 H5
|
||||
- 昵称词库包 `internal/nickname` · 易经种子 `internal/yijing` · daily_tips
|
||||
|
||||
### Forbidden
|
||||
|
||||
- 改 ECR-010 Ops 行为 · 真支付 · 真推送 · 拆微服务 · 无 ADR 换栈
|
||||
- 提交 `config.local.yaml` / 密钥 / `test-results/`
|
||||
- 扩大到紫微/达人/关系链拉取
|
||||
|
||||
## Risk
|
||||
|
||||
| Risk | Mitigation |
|
||||
|------|------------|
|
||||
| 软删「错误」self 导致报告悬挂 | 保留最新 self;报告仍挂 profile_id(软删档案下游已有规则) |
|
||||
| LLM 延迟/失败 | daily-tips 本地回退;超时配置 |
|
||||
| 昵称词库碰撞 | 随机即可;非唯一约束 |
|
||||
| 过程补 ECR 与代码漂移 | HANDOFF 以 Spec+BD 为权威;Reviewer 对照 diff |
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
- [x] 每账号至多 1 条 active self;再建 → 40902(handler + OpenAPI;integration 待 Postgres)
|
||||
- [x] 合盘 TA 列表无多余 self;同 id 合盘拒绝;B=本账号须 other(service)
|
||||
- [x] 注册空昵称 → 词库生成;档案可改;首页展示昵称
|
||||
- [x] 有 Self 生日 → daily-tips 可返回 llm/fallback;无恐吓/疗效承诺(Spec R6)
|
||||
- [x] OpenAPI 同步;相关 vitest / go unit PASS
|
||||
- [x] `ess-validate.py --phase coding --ecr ECR-011`(交 Reviewer 前跑)
|
||||
|
||||
## Trace
|
||||
|
||||
Spec profile · star-profile · account-auth · home · BD-2026-011 · TASK-011
|
||||
Reference in New Issue
Block a user