feat(ECR-041): OpsCMS Banner 薄写面(Write-Wave 首刀)

Admin POST/PUT + admin.cms.write/审计;C 端 GET /home/banners;首页投影回退静态 homeFeeds;migration 000051;不碰 FeedSlot/支付/UGC。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
jackyu66git
2026-08-13 19:55:27 +08:00
co-authored by Cursor
parent ad45d17dff
commit 9707b72808
35 changed files with 1203 additions and 29 deletions
+54
View File
@@ -0,0 +1,54 @@
# ECR-041
**Title:** OpsCMS · Banner 薄写面(Write-Wave 首刀)
**Status:** **Closed**2026-08-13 · Write-Wave Continuous Loop
**Date:** 2026-08-13
**Change Level:** L2
**Parent:** WAVE0-FROZEN · **Write-Wave:** `docs/WAVE0/WRITE_WAVE_AUTHORIZATION.md`
**Predecessor:** ECR-024 Closed
**Coding:** Done · Migration `000051_ops_banner_write`
## Change
1. Active Spec`.ai/product/feature-spec/ops-banner-write.md`
2. Admin`POST/PUT /admin/cms/banners*` + 权限 `admin.cms.write` + 审计
3. C 端:`GET /home/banners`user-h5 首页推荐区 API 优先、静态 `homeFeeds` 回退
4. admin-h5 CMS Banner 编辑(**不**做 FeedSlot 写)
5. OpenAPI · contract_diff · migration(编码时锁 `Max Migration+1`
## Motivation
只读 Banner 目录无法运营;首页推荐区仍静态。Write-Wave 首刀用最低风险写面验证闭环;支付仍最后。
## Scope
### Allowed
- 上列 Spec / Banner 写读闭环 / 加法权限码 / 审计 / 首页投影
### ForbiddenNon-goals
- **FeedSlot 写**(后续独立 ECR)· ScheduledPublication 写
- UGC · soft-delete · 真支付
- Crisis / Handoff / ContentSafety 高风险写
- 合并 Banner+FeedSlot · 扩大为本 ECR 多 Capability
- 新权限模型(子系统)· 改 ESS/Loop/Adapter
## Acceptance
见 Spec §8 AC-F/S/A/C/O;实现后 TEST_REPORT 映射。
## Trace
Spec `ops-banner-write` · BD-2026-041 · PRODUCT_SPEC/ECR-041 · CONTRACT_DIFF(实现时)· WRITE_WAVE_AUTHORIZATION
## Coding gate
```text
repo-governance-check PASS
→ ess-validate design/implement as required
→ BD Approved
→ THEN Continuous Loop may start coding
```
本文件交付时 **禁止改 `apps/` / `packages/`**