Files
digital-psychology/docs/ECR/ECR-013B-account-lifecycle.md
T
jackyu66gitandCursor e25cd94b0c feat(ECR-013B): AccountLifecycle Closed;启用 Loop 连续执行
UserStatus 迁移、DeviceAuth 拒绝非 active、admin-h5 CTA;
Reviewer Closed。Human 授权 LOOP_AUTHORIZATION(免逐闸确认)。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-07 17:47:18 +08:00

2.5 KiB
Raw Blame History

ECR-013B

Title: AccountLifecycleUserStatus 状态机 · 运营启停/封禁 · C 端拒绝)
Status: Closed
Date: 2026-08-07
Approved: 2026-08-07Human
Coding Start Authorization: 2026-08-07Human
Closed: 2026-08-07Reviewer · Loop continuous
Parent: WAVE0-FROZEN (27f27a1)
Predecessor: ECR-013A Closed
Change Level: L2(行为:账户状态强制;栈与分层不变)

Change

  1. Active Feature Spec.ai/product/feature-spec/ops-account-lifecycle.md
  2. Domain:落实 UserStatus · AccountStateTransition
  3. API 意图:POST /admin/users/:id/status · GET .../status-transitions
  4. C 端:非 active → DeviceAuth/Bearer 拒绝
  5. RBAC additiveadmin.users.status.write
  6. contract_diffdocs/CONTRACT_DIFF/ECR-013B.yamlP0
  7. 不含 soft-delete / UGC / 真支付

Motivation

users.status 已存在但无运营迁移与会话阻断;013A 权限门禁就绪后可落地最小风控闭环。

Scope

Allowed

  • Spec L0L4 · Domain 对齐 · BD Draft · AC · feature-map §7 · TRACEABILITY · STATE · TASK

ForbiddenNon-goals

  • (实现轮已授权)soft-delete 仍禁;真支付 · UGC · Prompt
  • soft-delete · GDPR 擦除
  • 真支付 · UGC · Prompt · Crisis 深化

Risk

Risk Mitigation
误封超级用户/自测号 reason 必填;Audit + transitions;可回迁 active
与 session 缓存不一致 每次请求读 User.status(本切片不引入长缓存)
权限码遗漏种子 migration 写入 super_adminintegration 覆盖

Acceptance Criteria

见 Spec ops-account-lifecycle.md L4AC-F-01..04 · AC-S-01..04 · AC-P-01 · AC-O-01..02

契约轮完成标准:

  • L0L4 填满
  • contract_diff 已交
  • BD Draft + HANDOFF(禁 coding
  • Human Approve ECR+BD + Coding Start Authorization
  • Implemented + TEST_REPORT
  • Reviewer Closed

Rollback

  • 契约轮:废弃 Draft
  • 实现轮:down migration + 回退 DeviceAuth 检查

Linked

  • Feature Spec: .ai/product/feature-spec/ops-account-lifecycle.md
  • PRODUCT_SPEC: docs/PRODUCT_SPEC/ECR-013B-account-lifecycle.md
  • ENGINEERING_SPEC: docs/ENGINEERING_SPEC/ECR-013B-account-lifecycle.md
  • BACKEND_DESIGN: docs/BACKEND_DESIGN/BD-2026-013B-account-lifecycle.md
  • CONTRACT_DIFF: docs/CONTRACT_DIFF/ECR-013B.yaml
  • Parent: WAVE0-FROZEN · Predecessor: ECR-013A