feat(ECR-012): 星座对齐收口,并 Closed ECR-007/008
对齐 outlook/分享 type=star/报告页运势面板与测试;流程上关闭 Ops-B/C 两张 ECR。真支付仍后置。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,107 @@
|
||||
# Backend Design: ECR-012 星座对齐收口
|
||||
|
||||
> Architect 产出;Engineer 只消费本文件。
|
||||
> 实现纪律:`$ESS_ROOT/technology-governance/BACKEND_STANDARD.md`
|
||||
> 项目分层权威:`.ai/architecture.md`
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| ID | BD-2026-012 |
|
||||
| ECR | ECR-012 |
|
||||
| Change Level | L2 |
|
||||
| Status | Approved |
|
||||
| Approved | 2026-08-07(Human) |
|
||||
| Author | Architect |
|
||||
| Date | 2026-08-07 |
|
||||
| Risk | Low |
|
||||
|
||||
---
|
||||
|
||||
## Context
|
||||
|
||||
- 问题 / 目标:星座/合盘主路径已落地,需 Spec 对齐、H5/报告页一致、测试加厚;默认 **不改表结构**。
|
||||
- 非目标:真支付、新模块、换星历、Ops。
|
||||
- 相关 Spec:`star-profile.md`;前序 ECR-003(fortune→outlook)。
|
||||
|
||||
## Architecture Change
|
||||
|
||||
- 是否改变分层边界:**No**
|
||||
- 受影响层:Application(`internal/star` 仅按需)· API 文档 · UI(user-h5)
|
||||
|
||||
## Module Changes
|
||||
|
||||
| Module | Layer | Change | Must NOT |
|
||||
|--------|-------|--------|----------|
|
||||
| `internal/star` / `outlook` / `synastry` | Domain/App | 仅修偏离 Spec 的 summary/detail 键或文案 | 新表;换 ephemeris |
|
||||
| `handler` reports/synastry | API | 契约不变则不动;OpenAPI 描述可补 | Handler SQL |
|
||||
| `user-h5` star/synastry/report | UI | 对齐面板、卫生、分享、测试 | 直连 DB;真支付 |
|
||||
| packages/types · sdk | Shared | 仅当 OpenAPI/DTO 需同步 | 发明新领域同义词 |
|
||||
|
||||
## Data Flow
|
||||
|
||||
```text
|
||||
Profile(birth*)
|
||||
→ POST /reports/star | /reports/synastry
|
||||
→ star engine / synastry.BuildReport
|
||||
→ GrowthReport summary(outlook, charts, …) + gated detail
|
||||
→ H5 StarProfilePage | Synastry* | ReportPage
|
||||
→(可选)pay-mock deep_access → detail 可见
|
||||
```
|
||||
|
||||
## API Changes
|
||||
|
||||
- 契约:`proto/openapi.yaml`
|
||||
- 变更:**默认 None**(路径与语义保持);允许描述/`$ref` 补强
|
||||
- 兼容:禁止重新引入 summary.`fortune`
|
||||
|
||||
## Database Changes
|
||||
|
||||
- 表 / 字段:**无**
|
||||
- Migration Required:**NO**
|
||||
|
||||
## Migration Plan
|
||||
|
||||
- Required:NO
|
||||
- 回滚:代码回滚即可
|
||||
|
||||
## Failure Handling
|
||||
|
||||
- 无档案 / 缺生日:Empty 表单(现有)
|
||||
- detail 无权益:服务端剥离(现有,须保持测试)
|
||||
- 旧报告缺 outlook:H5 空态,不伪造 fortune
|
||||
|
||||
## Test Plan
|
||||
|
||||
- Unit:outlook bundle keys;H5 fortuneBundleFrom
|
||||
- Integration:`TestFlowStarDeepAccess` · synastry charts keys · 禁用词
|
||||
- E2E:p2 star 路径 mock 含 outlook
|
||||
|
||||
## Rollback Plan
|
||||
|
||||
- git revert 本 ECR;无数据迁移
|
||||
|
||||
---
|
||||
|
||||
## Backend Change Boundary
|
||||
|
||||
```text
|
||||
Change Level: L2
|
||||
Change: star/synastry Spec alignment (mostly H5 + tests; optional star package hygiene)
|
||||
|
||||
Affected:
|
||||
Domain: StarProfile / Synastry (existing)
|
||||
Application: internal/star* (optional)
|
||||
Infrastructure: none (no migration)
|
||||
API: OpenAPI docs only (default)
|
||||
Migration: Not required
|
||||
Tests: integration + H5 + e2e
|
||||
Risk: Low
|
||||
```
|
||||
|
||||
## Architecture Regression Check
|
||||
|
||||
- [ ] 无 Handler 直连 DB
|
||||
- [ ] 不改鉴权面
|
||||
- [ ] 未引入非默认中间件 / 新星历依赖
|
||||
- [ ] 未简化分层
|
||||
- [ ] 无 summary.`fortune` 回归
|
||||
@@ -2,6 +2,14 @@
|
||||
|
||||
## 2026-08-07
|
||||
|
||||
- **ECR-012 Implemented**:星座对齐收口(outlook 卫生 · 报告页复用运势面板 · 分享 type=star · 测试加厚)
|
||||
TEST_REPORT PASS · STATE phase=review · 待 Reviewer Closed
|
||||
- **ECR-012 Approved**(Human):星座对齐进入 implement
|
||||
BD-2026-012 Approved · TASK ready · STATE owner=engineer
|
||||
- **ECR-012 Draft**:星座对齐收口(星盘 · outlook · 合盘)
|
||||
工件:PRODUCT/ENGINEERING/BACKEND_DESIGN · HANDOFF · TASK · STATE
|
||||
Gap G1–G6;**真支付排除**
|
||||
- **ECR-007 Closed** · **ECR-008 Closed**(Reviewer):review 门禁 PASS · STATE done · TRACEABILITY 更新
|
||||
- **ECR-008 P1 修复**:审计同事务 · 宫格 move 保留 row_index · Analytics nil 守卫
|
||||
- **ECR-008 Implemented**:Ops-C 首页宫格 CMS + 测评上下架
|
||||
migration `000014` · `/home/tools` · admin「内容」· TEST_REPORT/CODE_REVIEW
|
||||
|
||||
@@ -24,4 +24,13 @@ Date: 2026-08-07
|
||||
|
||||
- ingest 逐条 INSERT(量上来再批量 COPY / 日汇总表)
|
||||
- admin「数据」未进 `@yuxingu/sdk`(与 Ops-A 一致用 thin client)
|
||||
- Ops-C/D/E 另开 ECR
|
||||
- Ops-D/E 另开 ECR
|
||||
|
||||
## Closed decision(2026-08-07)
|
||||
|
||||
```text
|
||||
Load Agent Profile: REVIEWER
|
||||
Decision: Approve → Closed
|
||||
Evidence: TEST_REPORT/ECR-007.md · Acceptance 全勾 · ess-validate --phase review PASS
|
||||
Residual: 上列不阻断;部署属 RELEASE_MANAGER + Human
|
||||
```
|
||||
|
||||
@@ -32,3 +32,12 @@ Date: 2026-08-07 · Reviewer pass → P1 fixed
|
||||
- [x] Admin / Device 鉴权隔离
|
||||
- [x] 未引入非默认中间件
|
||||
- [x] 审计与写操作同事务
|
||||
|
||||
## Closed decision(2026-08-07)
|
||||
|
||||
```text
|
||||
Load Agent Profile: REVIEWER
|
||||
Decision: Approve → Closed
|
||||
Evidence: TEST_REPORT/ECR-008.md · P1 已修 · Acceptance 全勾 · ess-validate --phase review PASS
|
||||
Residual: P2 可跟进项不阻断 Closed;部署属 RELEASE_MANAGER + Human
|
||||
```
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
# ECR-007
|
||||
|
||||
**Title:** 运营行为分析 Ops-B(自有埋点采集 · 管理端数据看板)
|
||||
**Status:** Approved
|
||||
**Status:** Closed
|
||||
**Date:** 2026-08-07
|
||||
**Approved:** 2026-08-07(Human)
|
||||
**Closed:** 2026-08-07(Reviewer · Approve + ess-validate review PASS)
|
||||
**Change Level:** L2(新能力;栈与分层不变)
|
||||
|
||||
## Change
|
||||
@@ -50,8 +51,9 @@
|
||||
- [x] Integration:H5 形态上报 → DB → admin analytics GET 非空且量级一致
|
||||
- [x] `go test` 相关包绿;`npm run build:h5` · `build:admin` 绿
|
||||
- [x] OpenAPI / TRACEABILITY / STATE / TEST_REPORT / CODE_REVIEW
|
||||
- [ ] `python scripts/ess-validate.py --phase review --ecr ECR-007`(Reviewer 门禁)
|
||||
- [x] `python3 scripts/ess-validate.py --phase review --ecr ECR-007`(Reviewer 门禁 PASS)
|
||||
- [x] Docs + CHANGELOG
|
||||
- [x] Reviewer Closed(STATE · TRACEABILITY)
|
||||
|
||||
## Rollback
|
||||
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
# ECR-008
|
||||
|
||||
**Title:** 运营内容配置 Ops-C(首页宫格 CRUD · 测评上下架)
|
||||
**Status:** Approved
|
||||
**Status:** Closed
|
||||
**Date:** 2026-08-07
|
||||
**Approved:** 2026-08-07(Human)
|
||||
**Closed:** 2026-08-07(Reviewer · Approve + ess-validate review PASS)
|
||||
**Change Level:** L2(新能力;栈与分层不变)
|
||||
|
||||
## Change
|
||||
@@ -48,8 +49,9 @@
|
||||
- [x] Integration:PUT tools → GET home/tools;PATCH scale draft → ListPublished 不含
|
||||
- [x] `go test` · `build:h5` · `build:admin` 绿
|
||||
- [x] OpenAPI / TRACEABILITY / STATE / TEST_REPORT / CODE_REVIEW
|
||||
- [x] `ess-validate --phase review`
|
||||
- [x] `python3 scripts/ess-validate.py --phase review --ecr ECR-008`(PASS)
|
||||
- [x] Docs + CHANGELOG
|
||||
- [x] Reviewer Closed(STATE · TRACEABILITY)
|
||||
|
||||
## Rollback
|
||||
|
||||
|
||||
@@ -0,0 +1,80 @@
|
||||
# ECR-012
|
||||
|
||||
**Title:** 星座对齐收口(星盘 · 运势 outlook · 合盘)
|
||||
**Status:** Approved
|
||||
**Date:** 2026-08-07
|
||||
**Approved:** 2026-08-07(Human)
|
||||
**Change Level: L2**(可见体验/契约文档对齐;栈与分层不变)
|
||||
|
||||
## Change
|
||||
|
||||
在已有 P2 星座/合盘实现上做 **Spec ↔ 实现对齐收口**(非真支付、非新探索模块):
|
||||
|
||||
1. 修订 Active Feature Spec:`.ai/product/feature-spec/star-profile.md`(Gaps · §12 用词 · Implementation Notes)
|
||||
2. H5:`/star` · `/reports/:id`(type=star) · `/synastry*` 体验与文案对齐 Spec §5–12
|
||||
3. 清理 ECR-003 残留:类型/组件内 `lucky` 字段、内部仍混用的 `fortune` JSON 读路径(**用户可见 Tab 文案「运势」保留**)
|
||||
4. 报告页星座面板与星座主页运势信息密度对齐(dims / boost / caution / 日–一生)
|
||||
5. 补强测试:integration/H5/e2e 对 outlook · 轮盘 · 合盘五主盘键的断言;lexicon 禁用词扫描覆盖合盘路径
|
||||
6. 更新 `feature-map` / `P2-BACKLOG`:星座由「对齐中」→ 本 ECR Closed 后标 Done
|
||||
|
||||
## Motivation
|
||||
|
||||
P2-BACKLOG 已写「星盘/运势/合盘对齐中」:主路径可跑,但 Spec 验收措辞、报告页与主页体验、H5 命名卫生与 e2e mock 偏薄,导致无法宣称星座模块 Feature Complete。
|
||||
|
||||
## Scope
|
||||
|
||||
### Allowed
|
||||
|
||||
- 上列 Spec / H5 /(必要时)`internal/star` 文案或 summary 键卫生 · OpenAPI 描述补强
|
||||
- 埋点:保持 `portrait_completed{source:star}` 与 Spec「`star_completed` / portrait_completed source=star」等价;若补 `star_completed` 别名须同步 analytics 白名单
|
||||
- 分享:星座结果分享 payload 类型/标题与 lexicon 一致(若现用 `portrait` 类型属偏差则修正)
|
||||
- TRACEABILITY · STATE · TEST_REPORT · CODE_REVIEW · CHANGELOG
|
||||
|
||||
### Forbidden(Non-goals)
|
||||
|
||||
- **真支付网关**(支付仍 mock;另开 ECR,排期最后)
|
||||
- 微信 OAuth / 短信 OTP · 原生分享 SDK · 短链服务
|
||||
- 达人 / 消息 / UGC / 独立运势 Feed
|
||||
- 换星历引擎、改宫位制(Whole Sign 冻结)、新表 migration(本 ECR **默认无 migration**)
|
||||
- 身心节律 / 意象卡片 / Ops-D+ / 小程序业务
|
||||
|
||||
## Risk
|
||||
|
||||
| Risk | Mitigation |
|
||||
|------|------------|
|
||||
| 改 Tab 内部 key 破坏深链 | 用户可见「运势」不变;URL/query 变更须兼容或写清迁移 |
|
||||
| 过度改 JSON 破坏旧报告 | 只读 `outlook`;禁止写回 `fortune`;旧库报告无 outlook 时 H5 降级空态 |
|
||||
| 文案踩 lexicon | 合盘免责已有;扫「占卜/算命」恐吓;允许运势分与匹配指数 |
|
||||
| 范围膨胀成内容大修 | 深度版长文「明显缺段」才补;不重写整包星盘文案库 |
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
- [x] Spec `star-profile.md` §12 用例可映射到测试;§14 Gaps 反映本 ECR 收口结果
|
||||
- [x] `/star`:Empty 生日表单 → Normal(轮盘 + outlook 日/周/月/年/一生 + 行运)+ Locked 深度墙;无禁用恐吓词
|
||||
- [x] `/reports/:id` type=star:运势面板信息密度不低于主页基础层(score/label/tip + dims 或显式降级说明)
|
||||
- [x] `/synastry`:三指数 + `charts` 五主盘 + 三推运 key 可见(无权益时 detail 剥离)
|
||||
- [x] JSON summary **无** `fortune` 键;H5 **不读** `lucky`
|
||||
- [x] Integration:`TestFlowStarDeepAccess` + synastry charts 键保持绿;必要时增补断言
|
||||
- [x] H5 单测 / e2e(p2 star 路径)mock 含 outlook 最小字段
|
||||
- [x] OpenAPI / TRACEABILITY / STATE / TEST_REPORT(CODE_REVIEW 待 Reviewer)
|
||||
- [ ] `python3 scripts/ess-validate.py --phase review --ecr ECR-012`(Reviewer)
|
||||
- [x] Docs + CHANGELOG;P2-BACKLOG 星座行更新
|
||||
|
||||
## Rollback
|
||||
|
||||
- 回滚本 ECR 提交;不涉及 DB down migration
|
||||
- 若仅文档 Closed 前中止:将 STATE 标 Rejected / 搁置
|
||||
|
||||
## Risk Review
|
||||
|
||||
- Path: N/A(非交易)
|
||||
|
||||
## Linked
|
||||
|
||||
- Feature Spec: `.ai/product/feature-spec/star-profile.md`
|
||||
- PRODUCT_SPEC: `docs/PRODUCT_SPEC/ECR-012-star-alignment.md`
|
||||
- ENGINEERING_SPEC: `docs/ENGINEERING_SPEC/ECR-012-star-alignment.md`
|
||||
- BACKEND_DESIGN: `docs/BACKEND_DESIGN/BD-2026-012-star-alignment.md`(BD-2026-012)
|
||||
- HANDOFF / TASK / STATE:同号前缀
|
||||
- 前序:ECR-003 outlook 卫生 · ECR-004/005 拆分 · P2 星座已落地
|
||||
- 明确后置:真支付 ECR(最后)
|
||||
@@ -0,0 +1,28 @@
|
||||
# ENGINEERING_SPEC — ECR-012 星座对齐收口
|
||||
|
||||
权威设计:`docs/BACKEND_DESIGN/BD-2026-012-star-alignment.md`
|
||||
产品:`.ai/product/feature-spec/star-profile.md` · `docs/PRODUCT_SPEC/ECR-012-star-alignment.md`
|
||||
|
||||
## Implement order
|
||||
|
||||
1. **Spec 修订**(可与代码同 PR,但语义先冻结 Gaps):`star-profile.md` §12 措辞 · §14 Gaps · 指向 ECR-012
|
||||
2. **盘点确认 G5**:分享类型;确认后改 `useStarProfilePage` sharePayload
|
||||
3. **H5 卫生**:去掉对 `lucky` 的类型依赖;`fortuneBundleFrom` 仅读 `outlook`;组件文件名可保留或渐进改名(不必强行大挪文件)
|
||||
4. **报告页对齐**:`ReportStarPanel` 运势展示对齐主页字段(可抽共享小组件,注意 ≤400 行/文件)
|
||||
5. **(按需)后端**:仅当 summary 缺键或 detail 裁剪偏离 Spec 时改 `internal/star`;**默认无 migration**
|
||||
6. **OpenAPI**:补强 star/synastry 响应描述或 `$ref`(若现偏薄)
|
||||
7. **测试**:integration 断言保持;H5 spec;e2e mock 补 outlook 最小集;禁用词扫描覆盖合盘
|
||||
8. **文档收口**:P2-BACKLOG · feature-map · TRACEABILITY · STATE · CHANGELOG
|
||||
|
||||
## Constraints
|
||||
|
||||
- 函数 ≤50 行 · 文件 ≤400 行
|
||||
- UI → `@yuxingu/sdk` → Handler → Service → Repository
|
||||
- 不引入新星历依赖;不改 Whole Sign / 热带设定(无 ADR)
|
||||
- 不接真支付;深度版继续 pay-mock
|
||||
- 不提交 `config.local.yaml` / 密钥
|
||||
- lexicon:禁止占卜/算命恐吓;允许运势分与合盘指数
|
||||
|
||||
## Done when
|
||||
|
||||
ECR Acceptance 全勾 + `.ai/definition-of-done.md` Review Report + `ess-validate --phase review`(Approved 实现后)
|
||||
@@ -16,3 +16,7 @@
|
||||
## Ask
|
||||
|
||||
Reviewer 勾选 Approve;可将 ECR-007 标 Closed。
|
||||
|
||||
## Closed
|
||||
|
||||
2026-08-07 Reviewer:**Approve → Closed**(STATE · TRACEABILITY · ECR Status)。
|
||||
|
||||
@@ -15,3 +15,7 @@
|
||||
## Ask
|
||||
|
||||
Reviewer Approve;可将 ECR-008 标 Closed。
|
||||
|
||||
## Closed
|
||||
|
||||
2026-08-07 Reviewer:**Approve → Closed**(STATE · TRACEABILITY · ECR Status)。
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
# HANDOFF — ECR-012 Architect → Engineer
|
||||
|
||||
## Gate
|
||||
|
||||
**仅当**下列均为 **Approved** 后,方可改 `apps/` / `packages/`:
|
||||
|
||||
1. `docs/ECR/ECR-012-star-alignment.md`
|
||||
2. `docs/BACKEND_DESIGN/BD-2026-012-star-alignment.md`(BD-2026-012)
|
||||
|
||||
**当前(2026-08-07):二者均为 Approved(Human)→ Engineer 可改 `apps/`。**
|
||||
|
||||
## Consume
|
||||
|
||||
1. `.ai/product/feature-spec/star-profile.md`
|
||||
2. `docs/ECR/ECR-012-star-alignment.md`
|
||||
3. `docs/PRODUCT_SPEC/ECR-012-star-alignment.md`(含 Gap G1–G6)
|
||||
4. `docs/BACKEND_DESIGN/BD-2026-012-star-alignment.md`
|
||||
5. `docs/ENGINEERING_SPEC/ECR-012-star-alignment.md`
|
||||
6. `$ESS_ROOT/technology-governance/BACKEND_STANDARD.md`
|
||||
7. 本仓:`docs/PROJECT_RULES.md` · `.ai/architecture.md` · `.ai/product/lexicon.md`
|
||||
|
||||
## Do
|
||||
|
||||
按 ENGINEERING_SPEC Implement order 收口星座对齐(G1–G6)。
|
||||
|
||||
## Do not
|
||||
|
||||
- 真支付 / 换支付适配器
|
||||
- 新 migration(除非实现中发现必须,则回 Architect 升边界)
|
||||
- 节律 / 意象卡片 / Ops-D+ / 小程序
|
||||
- Handler → DB
|
||||
- 重新引入 summary.`fortune`
|
||||
|
||||
## Return
|
||||
|
||||
1. `docs/HANDOFF/ECR-012-engineer-to-reviewer.md`
|
||||
2. `docs/TEST_REPORT/ECR-012.md`
|
||||
3. `docs/CODE_REVIEW/ECR-012.md`(Reviewer 填)
|
||||
4. 更新 `docs/STATE/ECR-012.md` owner → reviewer
|
||||
5. `python3 scripts/ess-validate.py --phase review --ecr ECR-012`
|
||||
@@ -0,0 +1,19 @@
|
||||
# HANDOFF — ECR-012 Engineer → Reviewer
|
||||
|
||||
## Done
|
||||
|
||||
- H5:`fortuneBundleFrom` 仅映射 outlook 周期键并剥离 `lucky`
|
||||
- `ReportStarPanel` 复用 `StarFortunePanel`(dims/boost/caution 对齐主页)
|
||||
- 分享:`type=star`(shareLink / SharePage / ShareSheet / 星座页)
|
||||
- 单测与 e2e mock 加厚;integration 断言无 `lucky`
|
||||
- OpenAPI star 响应描述补强;Spec Gaps 更新
|
||||
- `docs/TEST_REPORT/ECR-012.md`
|
||||
|
||||
## Evidence
|
||||
|
||||
`docs/TEST_REPORT/ECR-012.md` · Acceptance 见 ECR-012
|
||||
|
||||
## Ask
|
||||
|
||||
Reviewer 勾选 Approve;通过后可将 ECR-012 标 Closed(P2-BACKLOG 去掉「对齐中」)。
|
||||
真支付仍后置。
|
||||
@@ -0,0 +1,44 @@
|
||||
# PRODUCT_SPEC — ECR-012 星座对齐收口
|
||||
|
||||
对齐 Feature Spec:`.ai/product/feature-spec/star-profile.md`
|
||||
|
||||
## Outcome
|
||||
|
||||
1. 用户在 `/star` 完成「填生日 → 看星盘/运势/行星 → 深度墙」路径,体验与 Spec §4–6 一致。
|
||||
2. 合盘 `/synastry` 五主盘 + 次限推运 + 三指数与 Spec 一致;邀请/附近不回退。
|
||||
3. 成长报告详情中 `type=star` 的运势展示与主路径对齐,避免「主页有、报告页空」。
|
||||
4. 工程与文档不再出现已废弃的 summary.`fortune` / `lucky` 读路径。
|
||||
5. P2-BACKLOG 可在 Closed 后去掉「对齐中」措辞。
|
||||
|
||||
## Actors
|
||||
|
||||
| Actor | 能力(本 ECR 后) |
|
||||
|-------|-------------------|
|
||||
| Visitor + 档案 | 基础星盘 · 日–一生运势摘要 · 行运 · 合盘指数与盘缩略 |
|
||||
| DeepAccess / VIP | detail:完整相位 · 年/一生深析 · 合盘相处/推运深文案 |
|
||||
| 无档案 | `/star` Empty 页内生日(可选时/地) |
|
||||
|
||||
## Success Metrics
|
||||
|
||||
- Spec §12 五条 Given/When/Then 均有自动化或明确手工证据
|
||||
- e2e / 单测失败率不因本 ECR 回退
|
||||
- lexicon 硬禁止词不出现在星座/合盘主路径 UI 与 API 样例
|
||||
|
||||
## Out of scope
|
||||
|
||||
见 ECR-012 Forbidden;真支付、登录增强、节律/卡片、Ops-D+ 另开。
|
||||
|
||||
## Gap 基线(Architect 盘点 · 2026-08-07)
|
||||
|
||||
| ID | Gap | 建议级别 |
|
||||
|----|-----|----------|
|
||||
| G1 | Spec §12 / 注释仍写 fortune;缺 Gaps 栏 | **Done**(本 ECR) |
|
||||
| G2 | H5 组件/类型残留 `lucky`;内部 `fortune` 命名与 JSON `outlook` 混用 | **Done** |
|
||||
| G3 | `ReportStarPanel` 运势层薄于 `StarFortunePanel` | **Done**(复用面板) |
|
||||
| G4 | e2e star mock 过瘦(无 outlook/planets) | **Done** |
|
||||
| G5 | 分享 payload 可能仍标 `portrait` | **Done**(type=star) |
|
||||
| G6 | feature-map / P2-BACKLOG「对齐中」状态未闭环 | **Pending Closed** |
|
||||
|
||||
## 附录:排期约束
|
||||
|
||||
- **真支付最后做**(产品指令);本 ECR 继续 pay-mock。
|
||||
@@ -46,9 +46,9 @@
|
||||
|
||||
## Active anchors
|
||||
|
||||
- ECR: **ECR-006** 运营后台 Phase A(Closed);ECR-001–005 Closed / shipped
|
||||
- ECR: **ECR-012** 星座对齐(**Implemented** · review);ECR-006~008 Ops A/B/C Closed;ECR-001–005 Closed
|
||||
- EXP: (无)
|
||||
- STATE: `docs/STATE/ECR-006.md`
|
||||
- STATE: `docs/STATE/ECR-012.md`(owner=reviewer)
|
||||
- TRACEABILITY: `docs/TRACEABILITY.md`
|
||||
- ADR: `.ai/adr/0007-ess-ai-dual-track.md`
|
||||
- Product status: `.ai/product/p1-status.md`(**P1 Complete**)
|
||||
|
||||
@@ -4,12 +4,14 @@
|
||||
|-------|-------|
|
||||
| ECR | ECR-007 |
|
||||
| Title | 运营行为分析 Ops-B |
|
||||
| Status | Implemented(待 Reviewer Closed) |
|
||||
| Phase | review |
|
||||
| Owner | reviewer |
|
||||
| Status | **Closed** |
|
||||
| Phase | done |
|
||||
| Owner | — |
|
||||
| Spec | `.ai/product/feature-spec/ops-analytics.md`(Active) |
|
||||
| Backend Design | BD-2026-007 Approved |
|
||||
| Test | `docs/TEST_REPORT/ECR-007.md` PASS |
|
||||
| Review | `docs/CODE_REVIEW/ECR-007.md` Approve |
|
||||
| Next | Human/Reviewer Closed ECR · 部署 API + 静态资源 |
|
||||
| Review | `docs/CODE_REVIEW/ECR-007.md` Approve → Closed |
|
||||
| Updated | 2026-08-07 |
|
||||
|
||||
Ops-B shipped: analytics ingest + admin「数据」看板.
|
||||
部署/Promote 由 RELEASE_MANAGER + Human 另办(不挡 Closed)。
|
||||
|
||||
@@ -4,11 +4,14 @@
|
||||
|-------|-------|
|
||||
| ECR | ECR-008 |
|
||||
| Title | 运营内容配置 Ops-C |
|
||||
| Status | Implemented(待 Reviewer Closed) |
|
||||
| Phase | review |
|
||||
| Owner | reviewer |
|
||||
| Spec | Active |
|
||||
| Status | **Closed** |
|
||||
| Phase | done |
|
||||
| Owner | — |
|
||||
| Spec | `.ai/product/feature-spec/ops-content.md`(Active) |
|
||||
| Backend Design | BD-2026-008 Approved |
|
||||
| Test | TEST_REPORT/ECR-008.md PASS |
|
||||
| Review | CODE_REVIEW/ECR-008.md Approve |
|
||||
| Test | `docs/TEST_REPORT/ECR-008.md` PASS |
|
||||
| Review | `docs/CODE_REVIEW/ECR-008.md` Approve → Closed |
|
||||
| Updated | 2026-08-07 |
|
||||
|
||||
Ops-C shipped: 首页宫格 CMS + 测评上下架.
|
||||
部署/Promote 由 RELEASE_MANAGER + Human 另办(不挡 Closed)。
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
# STATE — ECR-012
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| ECR | ECR-012 |
|
||||
| Title | 星座对齐收口(星盘 · 运势 outlook · 合盘) |
|
||||
| Status | Implemented(待 Reviewer Closed) |
|
||||
| Phase | review |
|
||||
| Owner | reviewer |
|
||||
| Spec | `.ai/product/feature-spec/star-profile.md` |
|
||||
| Backend Design | BD-2026-012 Approved |
|
||||
| Test | `docs/TEST_REPORT/ECR-012.md` PASS |
|
||||
| Review | —(待 `docs/CODE_REVIEW/ECR-012.md`) |
|
||||
| Updated | 2026-08-07 |
|
||||
|
||||
Engineer 已交 HANDOFF → Reviewer。
|
||||
Constraint: 真支付不在本 ECR。
|
||||
@@ -1,8 +1,8 @@
|
||||
id: TASK-007-ECR007
|
||||
ecr: ECR-007
|
||||
title: Ops-B analytics ingest + admin data dashboard
|
||||
role: engineer
|
||||
status: review
|
||||
role: reviewer
|
||||
status: done
|
||||
change_level: L2
|
||||
inputs:
|
||||
- docs/HANDOFF/ECR-007-architect-to-engineer.md
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
id: TASK-008-ECR008
|
||||
ecr: ECR-008
|
||||
title: Ops-C home tools CMS + scales publish
|
||||
role: engineer
|
||||
status: review
|
||||
role: reviewer
|
||||
status: done
|
||||
change_level: L2
|
||||
inputs:
|
||||
- docs/HANDOFF/ECR-008-architect-to-engineer.md
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
id: TASK-012-ECR012
|
||||
ecr: ECR-012
|
||||
title: Star/synastry Spec alignment (outlook · report parity · tests)
|
||||
role: reviewer
|
||||
status: review
|
||||
change_level: L2
|
||||
inputs:
|
||||
- docs/HANDOFF/ECR-012-engineer-to-reviewer.md
|
||||
- docs/TEST_REPORT/ECR-012.md
|
||||
- docs/BACKEND_DESIGN/BD-2026-012-star-alignment.md
|
||||
- docs/ENGINEERING_SPEC/ECR-012-star-alignment.md
|
||||
- .ai/product/feature-spec/star-profile.md
|
||||
outputs:
|
||||
- docs/CODE_REVIEW/ECR-012.md
|
||||
acceptance:
|
||||
- ECR-012 Acceptance 全勾(review 门禁除外)
|
||||
- 无 summary.fortune / lucky 回归
|
||||
- 真支付不在范围
|
||||
@@ -0,0 +1,40 @@
|
||||
# TEST_REPORT — ECR-012 星座对齐收口
|
||||
|
||||
Date: 2026-08-07
|
||||
ECR: ECR-012 · BD-2026-012
|
||||
|
||||
## Commands
|
||||
|
||||
```bash
|
||||
export PATH="$HOME/.local/go/bin:$PATH"
|
||||
cd apps/api && go test ./internal/integration/ -run TestFlowStarDeepAccess -count=1
|
||||
cd ../.. && npm run test:h5 -- --run src/lib/shareLink.spec.ts src/pages/StarProfilePage.spec.ts
|
||||
npm run build:h5
|
||||
# optional e2e: npm run test:e2e -- e2e/p2-explore-paths.spec.ts
|
||||
```
|
||||
|
||||
## Results
|
||||
|
||||
| Check | Result |
|
||||
|-------|--------|
|
||||
| `TestFlowStarDeepAccess`(outlook · 无 fortune · 无 lucky) | PASS |
|
||||
| `shareLink.spec.ts`(含 star round-trip) | PASS |
|
||||
| `StarProfilePage.spec.ts`(轮盘 · 今日/一生运势) | PASS |
|
||||
| `build:h5` | PASS |
|
||||
|
||||
## Spec / Gap mapping
|
||||
|
||||
| Gap | Evidence |
|
||||
|-----|----------|
|
||||
| G1 Spec §12 outlook 措辞 + Gaps | `star-profile.md` |
|
||||
| G2 剥离 lucky;fortuneBundle 仅读 outlook 周期键 | `reportSummary.fortuneBundleFrom` · StarFortunePanel 无 lucky |
|
||||
| G3 报告页运势密度 | `ReportStarPanel` 复用 `StarFortunePanel` |
|
||||
| G4 e2e mock 含 outlook | `e2e/p2-explore-paths.spec.ts` |
|
||||
| G5 分享 type=star | `shareLink` · SharePage · ShareSheet · useStarProfilePage |
|
||||
| G6 Backlog 状态 | P2-BACKLOG → Implemented(待 Reviewer Closed) |
|
||||
|
||||
## Notes
|
||||
|
||||
- 真支付未引入;深度墙仍 pay-mock
|
||||
- UI Tab 文案仍为「运势」;JSON 契约为 `outlook`
|
||||
- commit sha:实现提交后写入 TRACEABILITY
|
||||
@@ -12,5 +12,6 @@
|
||||
| ECR-004 | Synastry 再拆 · Scale 测 · Membership 守卫 · OpenAPI · CI | review PASS | TEST_REPORT · CODE_REVIEW/ECR-004.md |
|
||||
| ECR-005 | Ask/Decode/Portrait 再拆 · composable 外提 · OpenAPI `$ref` | review PASS | TEST_REPORT · CODE_REVIEW/ECR-005.md |
|
||||
| ECR-006 | 运营后台 Phase A(admin API + admin-h5) | **Closed** | Spec ops-admin · BD-2026-006 · TEST_REPORT · CODE_REVIEW |
|
||||
| ECR-007 | 运营行为分析 Ops-B(埋点 + 数据看板) | **Implemented** | Spec Active · BD-2026-007 · TEST_REPORT · CODE_REVIEW · HANDOFF review |
|
||||
| ECR-008 | 运营内容 Ops-C(首页宫格 + 测评上下架) | **Implemented** | Spec Active · BD-2026-008 · TEST_REPORT · CODE_REVIEW |
|
||||
| ECR-007 | 运营行为分析 Ops-B(埋点 + 数据看板) | **Closed** | Spec Active · BD-2026-007 · TEST_REPORT · CODE_REVIEW · STATE |
|
||||
| ECR-008 | 运营内容 Ops-C(首页宫格 + 测评上下架) | **Closed** | Spec Active · BD-2026-008 · TEST_REPORT · CODE_REVIEW · STATE |
|
||||
| ECR-012 | 星座对齐收口(星盘 · outlook · 合盘) | **Implemented** | Spec star-profile · BD-2026-012 · TEST_REPORT · HANDOFF review |
|
||||
|
||||
Reference in New Issue
Block a user