feat(ops): ECR-007 行为分析与 ECR-008 内容运营后台
ci / h5 (push) Canceled after 0s
ci / api (push) Canceled after 0s
ci / ess-docs (push) Canceled after 0s

落地埋点 ingest/数据看板、首页宫格 CMS 与测评上下架;含账号引导、问答流式与免责声明去重,以及 review P1 审计同事务修复。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
jackyu66git
2026-08-07 02:26:16 +08:00
co-authored by Cursor
parent 7e9023f0a8
commit 7ab9add5dd
132 changed files with 8276 additions and 491 deletions
+74
View File
@@ -0,0 +1,74 @@
# ECR-007
**Title:** 运营行为分析 Ops-B(自有埋点采集 · 管理端数据看板)
**Status:** Approved
**Date:** 2026-08-07
**Approved:** 2026-08-07Human
**Change Level:** L2(新能力;栈与分层不变)
## Change
1. Active Feature Spec`.ai/product/feature-spec/ops-analytics.md`Ops-B
2. 新增表 `analytics_sessions` / `analytics_events`(可选日汇总表)
3. User API`POST /api/v1/analytics/events`DeviceAuth,批量 ingest
4. Admin API`GET /api/v1/admin/analytics/*`overview / pages / exits / clicks / funnel
5. `user-h5`:扩展 `analytics.ts` — 会话、页停留、点击、退出页;可与 GA4 双写
6. `admin-h5`:侧栏「数据」看板(传统 App 运营看数)
## Motivation
当前埋点仅可选 GA4 + 漏斗事件,管理端无法看停留、退出页、点击排行;运维只能改库或外挂。需按传统 App 运营模式自有采集并在后台展示。
## Scope
### Allowed
- 上列 Spec / 表 / API / H5 SDK / admin「数据」页
- 修订 `ops-admin.md` / `feature-map.md` §7 写入 Ops-B
- OpenAPI 增补 analytics 路径
### ForbiddenNon-goals
- Ops-C 内容 CMS · Ops-D 优惠券/退款工单 · Ops-E RBAC/封禁/推送(另开 ECR
- UGC / 达人 / 真支付网关
- 热力图坐标、会话录像、实时毫秒大屏
- 新基础设施(Kafka/ClickHouse 等)— 首期 Postgres;量级不够不升级 L3
- 采集生日、问答正文、手机号等 PII
## Risk
| Risk | Mitigation |
|------|------------|
| 事件量表膨胀 | 批量 ingest + 日汇总表;索引按日;后续再议 OLAP(新 ECR/ADR |
| 客户端丢数 | sendBeacon 退出冲刷;失败静默不挡 UX |
| 与 GA 双写不一致 | Spec 声明自有管道为运营真相源;GA 可选 |
| Admin 鉴权绕过 | 聚合 API 仅挂 AdminAuth |
## Acceptance Criteria
- [x] Spec `ops-analytics.md` §验收用例通过
- [x] IntegrationH5 形态上报 → 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] Docs + CHANGELOG
## Rollback
- 去掉 analytics 路由注册;H5 关闭自有上报开关
- down migration 删 analytics 表(开发/可接受环境)
## Risk Review
- Path: N/A(非交易策略变更)
## Linked
- Feature Spec: `.ai/product/feature-spec/ops-analytics.md`
- PRODUCT_SPEC: `docs/PRODUCT_SPEC/ECR-007-ops-analytics.md`
- ENGINEERING_SPEC: `docs/ENGINEERING_SPEC/ECR-007-ops-analytics.md`
- BACKEND_DESIGN: `docs/BACKEND_DESIGN/ECR-007-ops-analytics.md`BD-2026-007
- HANDOFF / TASK / STATE:见同号前缀
- EXPERIMENT: N/A
- TRACEABILITY row: updated YesApproved
- 后续分期:Ops-C/D/E 各开独立 ECR(见 PRODUCT_SPEC 附录)
+67
View File
@@ -0,0 +1,67 @@
# ECR-008
**Title:** 运营内容配置 Ops-C(首页宫格 CRUD · 测评上下架)
**Status:** Approved
**Date:** 2026-08-07
**Approved:** 2026-08-07Human
**Change Level:** L2(新能力;栈与分层不变)
## Change
1. Active Feature Spec`.ai/product/feature-spec/ops-content.md`Ops-C
2.`home_tools` + migration `000014_ops_content`(种子=现网宫格)
3. User`GET /api/v1/home/tools`DeviceAuth,仅 enabled
4. Admin`GET|PUT /api/v1/admin/home/tools``GET /api/v1/admin/scales``PATCH /api/v1/admin/scales/:id`
5. `user-h5`:首页宫格改为 API 优先 + 静态回退
6. `admin-h5`:侧栏「内容」页(宫格 + 测评)
7. 变更写 `admin_audit_logs`
## Motivation
首页 12 宫格与测评可见性写死/仅靠库改;运营无法自助调入口与上下架。
## Scope
### Allowed
- 上列 Spec / 表 / API / H5 / admin「内容」
- path/icon 白名单;审计
- OpenAPI · ERD · feature-map §7
### ForbiddenNon-goals
- 首页 Feeds CMS · 探索目录全量 CMS · 量表题目编辑器
- 外链/上传图标 · Ops-D/E · UGC
## Risk
| Risk | Mitigation |
|------|------------|
| 错误 path 打穿站外 | 仅允许以 `/` 开头的站内相对路径,长度上限 |
| 空宫格 | PUT 校验至少 1 个 enabled;或允许空但 H5 回退静态 |
| icon 非法 | 服务端白名单对齐 `HomeToolIconName` |
| 误下架全量表 | PATCH 单条;审计可追溯 |
## Acceptance Criteria
- [x] Spec `ops-content.md` §验收通过
- [x] IntegrationPUT tools → GET home/toolsPATCH scale draft → ListPublished 不含
- [x] `go test` · `build:h5` · `build:admin` 绿
- [x] OpenAPI / TRACEABILITY / STATE / TEST_REPORT / CODE_REVIEW
- [x] `ess-validate --phase review`
- [x] Docs + CHANGELOG
## Rollback
- 关 admin 路由;H5 回退静态 catalog
- down migration(非生产可)
## Risk Review
- Path: N/A
## Linked
- Feature Spec: `.ai/product/feature-spec/ops-content.md`
- PRODUCT / ENGINEERING / BACKEND_DESIGN / HANDOFF / TASK / STATE:同号前缀
- 前序:ECR-006 Ops-A · ECR-007 Ops-B