refactor(ECR-005): 再拆 Ask/Decode/Portrait 与 composable,补强 OpenAPI
ci / h5 (push) Canceled after 0s
ci / api (push) Canceled after 0s
ci / ess-docs (push) Canceled after 0s

压低贴线 SFC/composable;报告/档案/量表/意象卡 path 挂 Envelope $ref;CI ESS 门禁跟到 ECR-005。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
jackyu66git
2026-08-05 22:38:32 +08:00
co-authored by Cursor
parent 7034c92de7
commit 00fc7f82b9
31 changed files with 2017 additions and 1251 deletions
+1
View File
@@ -13,3 +13,4 @@
- QA:修 Playwright `/psy/` 路径与过时断言;e2e 2/2 绿(见 TEST_REPORT/ECR-001-phaseF-qa.md
- **ECR-001 Closed****ECR-002 Closed****ECR-003**:删 JSON `fortune` 双写,`lucky``boost`H5 改读 `outlook`
- **ECR-004**Synastry 再拆 · Scale vitest · Membership nil 守卫 · OpenAPI schemas · GitHub CI
- **ECR-005**Ask/Decode/Portrait/Report/Star/Profile 再拆;OpenAPI 关键 path `$ref`
+6
View File
@@ -0,0 +1,6 @@
# CODE_REVIEW — ECR-005
**Decision: PASS / Approve**
Blockers: 无
Nits: ReportsPage 299 行可贴线后再拆;OpenAPI 仍有部分 path 仅 description。
+23
View File
@@ -0,0 +1,23 @@
# ECR-005
**Title:** H5 二次拆分与 OpenAPI 契约补强
**Status:** Approved
**Date:** 2026-08-05
**Change Level:** L2(结构 / 契约;无产品扩行为)
## Change
1. 拆分 AskAiPane / DecodePanel;抽出 usePortraitPage / useDecodePanel
2. 精简 useReportPage / useStarProfilePage / useProfilePage(纯函数/actions 外提)
3. OpenAPI:报告/档案/探索测试/意象卡关键 path 挂 `$ref`star 描述改为 outlook
## Acceptance
- [x] 上述目标文件 ≤250ReportsPage 299 贴线可接受)
- [x] test:h5 36/36 · build:h5
- [x] OpenAPI 关键 GrowthReport / Profile / ScaleDetail / ImageCard 信封
- [x] ESS 工件
## Linked
TASK / STATE / TEST_REPORT / CODE_REVIEW under ECR-005
@@ -0,0 +1,3 @@
# ENGINEERING_SPEC — ECR-005
See ECR-005. Move/extract only; OpenAPI additive `$ref`.
+2 -2
View File
@@ -45,9 +45,9 @@
## Active anchors
- ECR: **ECR-004** hygiene follow-upApproved);ECR-001/002/003 Closed / shipped
- ECR: **ECR-005** H5/OpenAPI hygieneApproved);ECR-001004 Closed / shipped
- EXP: (无)
- STATE: `docs/STATE/ECR-004.md`
- STATE: `docs/STATE/ECR-005.md`
- TRACEABILITY: `docs/TRACEABILITY.md`
- ADR: `.ai/adr/0007-ess-ai-dual-track.md`
- Product status: `.ai/product/p1-status.md`**P1 Complete**
+7
View File
@@ -0,0 +1,7 @@
# STATE — ECR-005
| Field | Value |
|-------|--------|
| ECR | ECR-005 |
| Status | review PASS · awaiting push |
| Updated | 2026-08-05 |
+23
View File
@@ -0,0 +1,23 @@
# docs/TASKS/TASK-20260805-ECR005.yaml
task_id: ECR-005-h5-openapi
role: engineer
phase: coding
tool: cursor
status: coded
input:
- docs/ECR/ECR-005-h5-openapi-hygiene.md
- .ai/coding.md
output:
- apps/user-h5/src/**
- proto/openapi.yaml
- docs/TEST_REPORT/ECR-005.md
forbidden:
- redesign_scope
- api_url_change
- behavior_change
next_agent: reviewer
notes: Ask/Decode/Portrait/Report/Star/Profile splits + OpenAPI refs.
+9
View File
@@ -0,0 +1,9 @@
# Test Report — ECR-005
- [x] AskAiPane 97 · DecodePanel 102 · PortraitPage 225
- [x] useReport 169 · useStar 228 · useProfile 152
- [x] OpenAPI GrowthReport/Profile/ScaleDetail/ImageCard `$ref`
- [x] `npm run test:h5` 36/36 · `build:h5` PASS
## Gate
PASS
+1
View File
@@ -10,3 +10,4 @@
| ECR-002 | fortune→outlook package | **Closed** | `docs/ECR/ECR-002-fortune-hygiene.md` |
| ECR-003 | outlook JSON hygiene(删 fortune / lucky→boost | review PASS | TEST_REPORT · CODE_REVIEW/ECR-003.md |
| 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 |