Files
digital-psychology/docs/HANDOFF/ECR-001-implementation-plan.md
jackyu66gitandCursor 19d3cd5945 refactor(ECR-001): 接入 ESS 并完成结构对齐 Phase A–E
绑定 ESS 双轨治理,拆分超大 H5 页与 Go 引擎,抽出 membership 服务,
并将 star/fortune 重命名为 outlook(JSON 双写兼容);同时修复 /psy API 代理与首页 + 菜单层级。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-05 17:51:40 +08:00

71 lines
2.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Implementation Plan: ECR-001
**Author:** Architect Agent
**For:** Engineer Agent
## Scope reminder
**Allowed / Forbidden**`docs/ECR/ECR-001-structural-realignment.md`
**默认:无用户可见行为变更。**
## Steps(按序;每步独立 PR + Task
### Phase A — Governance docs(可 Architect 收尾 / Engineer 轻触)
1. 确认 ADR-0007 已存在且 Profile 已指向双轨。
2. 更新 `LEGACY.md` + `CLAUDE.md` Legacy 段:标明静态 `css/js/pages/yuxingu.html` 已删除;勿再扩展。
3. 同步 `.ai/architecture/go-services.md`**标注** membership/order 当前寄居于 report(实现前真相),并写「目标态」指向 Phase C。
### Phase B — H5 拆页(优先)
1. `HomePage.vue`:抽入口九宫格、推荐区、档案摘要 → components/composables。
2. `SynastryPage.vue`:图表 / 表单 / 结果区拆分。
3. 其余超标页按 ENGINEERING_SPEC 优先级逐个拆。
4. 每页:`npm run build:h5`;相关 vitest;必要时 e2e 主路径。
### Phase C — Go membership/order 抽出
1. 新建 `internal/service/membership`(含 GetMembership / 配额相关从 report 迁入的用例)。
2. Order 创建迁入 `membership` 或独立 `order` 包(二选一,Prefer`membership` 内 order 若文件仍 <400)。
3. `ReportHandler` 改为依赖新 service;路由注册不变。
4.`go test ./...` + `internal/integration` Membership。
### Phase D — Engine 拆文件
1. `relation/engine.go` 按纯函数/段落拆多文件(同包)。
2. star 过大文件同类处理。
3. 引擎单测全绿;禁止改 golden 输出除非测试本有误。
### Phase E — 另立 ECR-002(本计划仅占位)
fortune 包名 / `lucky` 字段卫生 → 不在本父 ECR 编码。
### Phase F — packages 补强
1. 对照 `proto/openapi.yaml``@yuxingu/types`
2. sdk 缺方法补齐;H5 只经 client。
## Files likely touched
| Phase | Paths |
|-------|--------|
| A | `LEGACY.md` · `CLAUDE.md` · `.ai/architecture/go-services.md` · `.ai/adr/0007-*` |
| B | `apps/user-h5/src/pages/*` · `components/*` · `composables/*` |
| C | `apps/api/internal/service/report/*` · `service/membership/*` · `handler/report.go` · `httpserver` wire |
| D | `apps/api/internal/relation/*` · `star/*` |
| F | `packages/types` · `packages/sdk` · `apps/user-h5/src/api` |
## Tests to add
- 搬移/抽函数处:保留或增加表驱动单测
- Phase C:集成测试不得删减
- Phase B:优先现有 `PortraitPage.spec.ts` 模式补关键页 smoke(若拆出纯函数)
## Out of scope
- 真支付、新功能、微服务、换栈、Phase E 字段破坏性变更
## Risks
见 ECR Risk 表。Engineer 遇「必须改行为才能编译」→ **停**,回 Architect 开子 ECR。