复用 admin.explore.write、POST/PUT+审计、C端 GET /cards/decks、 H5 无 active 空态/失败回退;migration 000054。无牌面内容编辑。 ExploreConfig Loop STOP,禁自动 ECR-046。 Co-authored-by: Cursor <cursoragent@cursor.com>
3.0 KiB
3.0 KiB
Feature Spec: ExploreConfig · ImageCardDeck 写面(Ops · ECR-045)
Status:
Active(Implemented · ECR-045 Closed)
Map:§7· Capability:ExploreConfig· BC:Explore_Reports
Auth:docs/WAVE0/ECR-045_WRITE_AUTHORIZATION.md(Human 批准 · 仅 ECR-045)
Predecessor: ECR-037 Closed(只读)· ECR-044 Closed(Rhythm 写)
关联:ops-image-card-deck.md
1. 目标
运营可 创建 / 更新 / 上下架 ImageCardDeck(牌组目录);写操作鉴权 + 审计;C 端可读 active deck 并影响 /cards 可用性;失败回退「现网可抽」。
Closed 后立即 STOP,不自动 ECR-046。
2. In / Out
| In | Out |
|---|---|
Admin POST/PUT /admin/explore/image-card-decks* |
牌面/单卡内容 CRUD · Star / Rhythm / Scale |
复用 admin.explore.write |
SystemPrompt · Knowledge · Chunk |
复用表 image_card_decks |
soft-delete · 真支付 · UGC |
| C 端 GET active decks | Crisis / Handoff 写 |
/cards:无 active → 空态禁抽卡 CTA;失败 → 回退可抽 |
自动 ECR-046 |
| 审计 | 新权限子系统 |
3. Domain
| 字段 | 规则 |
|---|---|
code |
唯一;^[a-z][a-z0-9_]{1,62}$;system=true 不可改 code |
title |
必填 · ≤128 |
active |
false = 下架(唯一下架手段) |
system |
种子行;禁止物理删除 |
4. API
Admin
| Method | Path | 权限 |
|---|---|---|
| GET | /admin/explore/image-card-decks · /{id} |
admin.explore.read |
| POST | /admin/explore/image-card-decks |
admin.explore.write |
| PUT | /admin/explore/image-card-decks/{id} |
admin.explore.write |
无 DELETE。
C 端
| Method | Path | Auth | 语义 |
|---|---|---|---|
| GET | /api/v1/cards/decks |
DeviceAuth | 仅 active=true;按 code 排序 |
5. C 端生效
| 条件 | user-h5 /cards |
|---|---|
| ≥1 active | 保持现网抽卡 |
| 成功且 0 active | 「意象牌组暂未开放」空态;禁用抽卡 CTA |
| 请求失败 | 回退不阻断抽卡 |
6. Permission / Migration
- Migration
000054_ops_image_card_deck_write:幂等确认super_admin→admin.explore.write - 编码时占号(Max=
000053)
7. UI
| 端 | 行为 |
|---|---|
| admin-h5 意象牌组页 | 列表 + 新建/编辑/上下架(仅 Deck) |
user-h5 /cards |
按 §5 |
8. AC
| ID | Then |
|---|---|
| AC-F-01 | POST → list/get 可见 |
| AC-F-02 | PUT active=false → C 端不含 |
| AC-F-03 | 有 active → C 端非空 |
| AC-F-04 | 重复 code → 409 |
| AC-S-01/02 | 401;仅 read → POST 403 |
| AC-A-01 | 写产生审计 |
| AC-C-01 | 全下架后空态/禁 CTA |
| AC-C-02 | API 失败回退可抽 |
| AC-O-01 | 无牌面写路径 · 无 soft-delete |
9. Closed 后
立即 STOP。ECR-046 须新 Candidate Review + Human 拍板。
10. Trace
ECR-045 · BD-2026-045 · CONTRACT_DIFF · ECR-045_WRITE_AUTHORIZATION